Search for a command to run...
В этом руководстве вы узнаете, как установить плагин 1С:Предприятие, подключить его к Medusa и настроить обмен в 1С.
Плагин опубликован в закрытом реестре пакетов Gorgo. Чтобы установить его, подайте заявку на участие в бете. Когда заявку одобрят, вы получите лицензионный ключ для доступа к реестру.
Пакеты опубликованы не в общем реестре npm, а в реестре . Укажите менеджеру пакетов этот реестр для пакетов и передайте ему лицензионный ключ. Yarn 2 и новее читает настройки из , npm и pnpm из :
1npmScopes:2 gorgo-store:3 npmRegistryServer: "https://registry.gorgojs.com"4 npmAuthToken: "${GORGO_LICENSE}"Для Yarn и npm ключ берётся из переменной окружения , поэтому сам ключ не попадает в репозиторий проекта. Задайте эту переменную на своей машине и в CI, то есть везде, где устанавливаются зависимости.
Начиная с версии 11.5.3, pnpm не подставляет переменные окружения в адреса реестров и ключи из проекта. Поэтому в для pnpm указан только адрес реестра, а ключ сохраните в пользовательских настройках pnpm. Выполните эту команду на своей машине и в CI до установки зависимостей:
pnpm config set //registry.gorgojs.com/:_authToken "$GORGO_LICENSE"
Команда записывает ключ в настройки pnpm вашего пользователя, а не в проект, так что в репозиторий он тоже не попадает.
Установите плагин вместе с Модулем интеграций:
yarn add @gorgo/medusa-integration @gorgo-store/medusa-erp-1cЗарегистрируйте плагин и его провайдер интеграции в вашего приложения Medusa:
medusa-config.ts1// ...23module.exports = defineConfig({4 // ...5 plugins: [6 // ...7 {8 resolve: "@gorgo/medusa-integration",9 options: {10 providers: [11 {12 resolve: "@gorgo-store/medusa-erp-1c/providers/integration-1c",13 options: {},14 },15 ],16 },17 },18 {19 resolve: "@gorgo-store/medusa-erp-1c",20 options: {},21 },22 ],23})
Конфигурация регистрирует две вещи:
У плагина нет параметров в . Канал продаж, регион, типы цен и остальные настройки вы задаёте в Medusa Admin, как описано на странице Управление настройками 1С:Предприятие в Medusa Admin. Секретных полей у плагина тоже нет, поэтому задавать Модулю интеграций ради него не нужно.
Модуль интеграций хранит настройки в собственных таблицах. Выполните следующую команду, чтобы применить миграции базы данных:
yarn medusa db:migrateОбмен запускает сама 1С, поэтому настраивать его нужно на её стороне. В настройках обмена с сайтом в вашей конфигурации 1С укажите:
Плагин проверяет логин и пароль так же, как Medusa Admin при входе. Создайте для обмена отдельного пользователя. Тогда в 1С не будет храниться пароль сотрудника, а этого пользователя можно будет удалить или сменить ему пароль, не затрагивая остальных.
Сжатие и размер частей файла настраивать не нужно. Плагин сам сообщает 1С, что принимает zip-архивы и части файла до 1 МБ. Из полученных файлов он сначала импортирует каталог (), затем предложения () и заказы ().
Плагин хранит сессию обмена в памяти процесса Medusa. Если сервер перезапустится во время обмена, обмен прервётся и его придётся запустить заново. Если бэкенд запущен в нескольких инстансах, направляйте все запросы к на один из них. Иначе запрос, попавший на другой инстанс, получит отказ в авторизации, хотя логин и пароль верны.
Обмен публикует каждый товар из выгрузки, в том числе снятый с публикации вручную. Если в вашей базе 1С часть номенклатуры скрыта от сайта, например свойством «Удалить с сайта», до первого обмена зарегистрируйте обработчик из примера Черновик для скрытых от сайта товаров. Иначе первая же выгрузка выставит эти товары на витрину.
Плагин узнаёт запись Medusa по из 1С, а не по названию или артикулу:
Поэтому переименование товара или смена артикула в 1С не создают дублей в Medusa.
Артикул предложения плагин записывает в SKU варианта, пока этот SKU не занят другим вариантом. В 1С артикул не обязан быть уникальным, а в Medusa SKU уникален, поэтому вариант с занятым артикулом плагин сохраняет без SKU и пишет об этом в журнал. Сам артикул вариант хранит всегда, в , и именно его плагин отправляет в при выгрузке каталога и заказов в 1С. Чтобы заполнять SKU по-своему, используйте хук , как в примере Свой SKU при занятом артикуле.
Ярлык () нового товара плагин собирает из названия транслитом и части . У в виде GUID это первая группа, другой идёт целиком. Например, товар «Фильтр масляный» с получит ярлык , поэтому у товаров с одинаковым названием ярлыки не совпадают. Ярлык существующего товара плагин не меняет, пока не включена настройка Обновлять ярлык при переименовании товара в 1С, подробнее в разделе Редактирование правил обмена.
Записи обмена в журнале Medusa начинаются с . После каждой порции каталога и предложений плагин пишет строку прогресса:
Плагин фиксирует каждую порцию отдельно, поэтому порции, обработанные до прерывания обмена, остаются в базе. Повторять обмен целиком безопасно, потому что плагин сопоставляет товары и варианты по 1С, как описано в разделе Сопоставление записей.
Если артикул предложения уже занят SKU другого варианта, плагин пишет предупреждение:
Тот же конфликт на следующих обменах плагин пишет на уровне , чтобы журнал не повторял одни и те же предупреждения.
Если обмен завершается ошибкой, 1С получает ответ с причиной, и та же причина попадает в журнал. Чтобы видеть длительность каждого шага импорта, включите уровень журнала , например переменной окружения .