Интеграция UMI.CMS и 1С через Eofferix

Пошаговая настройка обмена 1С, Eofferix и UMI.CMS для каталога: подключение сайта, external_id, торговые предложения, два профиля обмена, тестовая выгрузка и проверка заказа.

Эта инструкция ведет по настройке 1С -> Eofferix -> UMI.CMS для каталога. Идите по шагам сверху вниз: установка модуля, подключение сайта, типы данных и сценарии обмена, идентификация, снапшот, торговые предложения, поля, тестовая выгрузка и проверка заказа.

Подробная базовая установка разобрана в статье «Импорт каталога в UMI.CMS через Eofferix». Здесь установка дана как первый шаг сценария 1С, чтобы порядок настройки был цельным.

Сервис не поддерживает обмен заказами, потому их в 1С нужно передавать средствами штатной интеграции Юми и 1С по заказам. Задача Eofferix - заранее загрузить каталог так, чтобы UMI.CMS могла передать в 1С понятные идентификаторы товара и выбранного торгового предложения.

Шаг 1. Установите модуль UMI.CMS

  1. Скачайте установщик модуля Eofferix для UMI.CMS: eofferix-umi-install.zip.
  2. Распакуйте архив и загрузите папку eofferix-umi-install в корень сайта, рядом с основным index.php.
  3. Откройте адрес вида https://site.com/eofferix-umi-install/install.php.
  4. Дождитесь сообщения об успешной установке.
  5. Проверьте, что в админке UMI.CMS открывается раздел модуля Eofferix.
  6. Удалите папку eofferix-umi-install с сайта.

Результат шага: на сайте установлен модуль Eofferix для UMI.CMS, а установочная папка удалена.

Шаг 2. Подключите сайт UMI.CMS

  1. Откройте профиль Eofferix.
  2. Выберите шаблон UMI.CMS.
  3. Укажите адрес сайта, логин администратора и пароль.
  4. Нажмите Проверить подключение.
  5. Дождитесь, пока Eofferix загрузит типы данных, поля и корневые разделы сайта.
Проверенное подключение профиля к UMI.CMS

Результат шага: настройки импорта открыты, а списки типов и полей пришли с конкретного сайта UMI.CMS.

Шаг 3. Выберите типы данных UMI.CMS

Выберите тип данных, в котором на этом сайте хранятся товары, и тип данных для разделов каталога. После проверки подключения Eofferix показывает доступные типы и поля UMI.CMS, а вы выбираете те, которые реально используются в нужном каталоге.

Если в каталоге есть торговые предложения, проверьте, что в настройках доступны поля предложения: внешний идентификатор, артикул ТП, цена, остаток и свойства варианта. Эти поля дальше привязываются к узлам с ролью Торговое предложение.

Выбор типов данных и полей UMI.CMS для импорта

Выберите корневой раздел UMI.CMS для выгрузки. Если источник содержит разделы, новые ветки будут создаваться внутри этого корня. Если источник не содержит разделов, товары можно выгружать прямо в выбранный корневой раздел.

Выбор корневого раздела UMI.CMS для каталога 1С

Результат шага: Eofferix знает, куда создавать товары, куда создавать разделы и где искать поля торговых предложений.

Рекомендуемая схема для 1С: два профиля обмена

Для 1С обычно удобнее создать два профиля Eofferix. Первый профиль получает полный каталог из 1С и используется для полного обмена: товары, разделы, торговые предложения, цены, остатки, свойства и картинки. Второй профиль получает обмен по изменениям 1С: только измененные цены, остатки, свойства, новые товары или новые предложения.

Профиль полного обмена может быть владельцем своих товаров на сайте и работать с полной синхронизацией источника. Профиль обмена по изменениям лучше не делать владельцем каталога: он должен обновлять пришедшие в текущем обмене данные и не запускать полную очистку по отсутствующим товарам.

Пресеты обмена

Пресет не запускает импорт и не меняет исходный файл. Он заполняет правила ниже: создавать ли новые товары и ТП, обновлять ли найденные, что делать с пустыми значениями, удалять ли пропавшие элементы, запускать ли очистку и какие защитные лимиты применять. После выбора пресета любое правило можно изменить вручную.

ПресетКогда использовать для 1СЧто важно
Бережный обменДля регулярного обмена, где файл может быть неполным.Создает новые объекты, обновляет найденные и не удаляет то, что в этот раз не пришло из 1С. Пустые значения обычно не очищают уже заполненные поля.
Полная синхронизация источникаДля профиля полного обмена, если источник каждый раз содержит весь актуальный каталог.Может удалять или деактивировать объекты, пропавшие из полного источника. Используйте только с защитными лимитами удаления.
Обновить найденныеДля обмена по изменениям 1С, когда нужно обновлять уже загруженный ассортимент.Новые товары и предложения не создаются. Подходит для файлов с ценами, остатками или отдельными свойствами.
Добавить только новыеДля дозагрузки нового ассортимента без изменения существующих карточек.Если товар или ТП уже найдены по идентификатору, их данные не перезаписываются.
Настроено вручнуюДля смешанных сценариев.Используйте, если готовый пресет близок, но отдельные правила товаров, ТП, разделов или cleanup нужно изменить вручную.
Корневой раздел, сценарий импорта и защитные настройки UMI.CMS

Результат подпункта: до разметки снапшота понятно, какой профиль отвечает за полный каталог, какой - за изменения 1С, и какой пресет обмена выбран для каждого профиля.

Шаг 4. Выберите поля идентификации

Выберите ключ, по которому ваш источник должен сличаться с уже существующим каталогом UMI.CMS: 1С-идентификатор, артикул, id, связка «Название товара + Артикул» или другое стабильное поле. Лучше всего использовать external_id как для товаров, так и для торговых предложений - в случае обмена заказами именно по этим полям 1С понимает, какой товар был куплен на сайте.

Для разделов отдельное поле идентификации имеет смысл выбирать, если разделы идут отдельным блоком в источнике. Если раздел указан внутри товара как полный путь или простая категория, отдельное сличение разделов обычно не требуется: используйте путь раздела после преобразований. Полный путь надежнее одного названия, если одинаковые разделы встречаются в разных ветках.

Результат шага: товары, разделы и ТП будут искаться строго по выбранным пользователем полям. Если выбрана связка из нескольких полей, сравнение выполняется по этой связке после преобразований.

Шаг 5. Разметьте роли в снапшоте

  1. Откройте снапшот источника 1С.
  2. Если раздел внутри элемента не представлен, а идет отдельным блоком в XML, то отметьте узел раздела ролью Раздел.
  3. Отметьте узел товара ролью Товар.
  4. Отметьте узел варианта ролью Торговое предложение.
  5. Если нужен промежуточный ключ, создайте переменную и преобразуйте значение до выгрузки.

Результат шага: Eofferix понимает, где раздел, где товар, где ТП, и какие значения нужно считать до отправки в UMI.CMS.

Снапшот Eofferix с товаром, торговым предложением и полями источника

Шаг 6. Настройте привязку Торгового Предложения к товару

Если торговые предложения вложены в товар, достаточно правильно отметить роль ТП. Если товары и предложения приходят отдельно, настройте поле связи предложения с товаром: в роли ТП используйте служебное поле product_external_idПривязка ТП к товару.

1С передает собственный ключ товара вида productGuid#offerGuid. Рекомендуем при интеграции использовать его для экспорта в external_id (ключ торгового предложения) и для product_external_id (ключ связки торгового предложения и товара).

Результат шага: торговое предложение обновляется внутри нужного товара и не создается дублем или отдельным товаром.

Шаг 7. Привяжите поля товара, раздела и ТП

Привязывайте каждое значение к роли, к которой оно относится. Свойства товара пишутся в товар. Свойства раздела пишутся в раздел. Свойства ТП, цена ТП, остаток ТП и vendor_code пишутся в конкретное торговое предложение, а не в родительский товар.

Привязка значения источника к полю UMI.CMS

Если 1С передает не сами значения свойств, а ID значений из классификатора, сначала используйте настройки сборки источника 1С: включите расшифровку свойств и ссылок из классификатора. Тогда в рабочем XML появятся понятные названия свойств и расшифрованные значения. Если в рабочем источнике все равно остался ID, настройте Сопоставить по справочнику: где лежит ID у товара или ТП, где такой же ID лежит в справочнике, и из какого поля справочника брать название или значение.

Если свойства приходят повторяющимися парами «название свойства + значение свойства», используйте кнопку Характеристики на узле с ролью товара, ТП или раздела. В блоке Характеристики из источника включите создание характеристик, выберите повторяющийся узел свойства, путь до названия, путь до значения и при необходимости путь до типа. При импорте Eofferix отправит такие поля как dynamic_fields, а модуль UMI.CMS создаст недостающие поля и заполнит значения.

Если из общего блока характеристик нужно вытащить одно конкретное значение в отдельный узел, создайте новый узел в нужной роли, оставьте его исходное содержимое пустым и откройте для него Преобразования. В правилах замените пустое содержимое на значение нужной характеристики, а в Условия выгрузки добавьте проверку, чтобы узел выгружался только когда нужная характеристика найдена. Так можно, например, отдельно получить цвет, размер или внешний код из повторяющегося блока свойств и дальше использовать это значение в маппинге или идентификации.

Результат шага: размер, цвет, цена и остаток варианта лежат на ТП, а не в родительском товаре.

Шаг 8. Запустите тестовую выгрузку и проверьте UMI.CMS

На шаге запуска профиля нажмите Тестовая выгрузка. Тестовая выгрузка отправляет ограниченную выборку - 5 товаров - и позволяет проверить настройки до полного обмена. Это не бесплатный предпросмотр: тест тоже потребляет кредиты, потому что сервис реально готовит данные и отправляет их в модуль UMI.CMS, просто ограничивает объем.

После завершения теста откройте админку UMI.CMS и проверьте фактический результат: товар создан или обновлен в нужном разделе, у товара записан external_id, торговые предложения находятся внутри товара, у каждого ТП есть свой external_id, vendor_code, цена и остаток, а свойства варианта записаны в само торговое предложение, а не в родительский товар.

Результат шага: до полного обмена видно, что Eofferix отправляет данные в правильные сущности UMI.CMS, а выбранные идентификаторы реально сохраняются на сайте.

Обычная тестовая выгрузка не запускает очистку пропавших объектов. Если включить «Тест как полный запуск», к ограниченной выборке применяются правила полного запуска: очистка может затронуть отсутствующие товары, торговые предложения, разделы и изображения в выбранной области.

Модуль Eofferix для UMI.CMS не удаляет свойства, характеристики и значения справочников. Он может сопоставить существующее свойство или значение либо создать недостающее, но не удаляет и не отвязывает созданные свойства и значения при последующих запусках. Правила для отсутствующих товаров, торговых предложений, разделов и изображений работают отдельно.

Импорт в UMI.CMS не поддерживает откат к состоянию предыдущего запуска и не создаёт точек отката. Остановленный запуск можно продолжить только при наличии подтверждённой точки продолжения; иначе после исправления причины запустите обычный новый импорт. Перед полным запуском с удаляющими правилами сделайте резервную копию сайта и базы данных.

Проверка заказа в 1С

Eofferix не передает заказы в 1С. Заказы нужно передавать штатной интеграцией UMI.CMS и 1С, но для этого каталог должен быть загружен с правильными 1С-идентификаторами.

В снапшоте обязательно укажите, куда и как загружать external_id товара и external_id торгового предложения. Для товара используйте 1С-идентификатор номенклатуры, для ТП - 1С-идентификатор конкретного предложения. В заказе 1С ожидает связку выбранного товара и предложения; артикул ТП vendor_code не заменяет external_id.

Если у предложения идентификатор приходит как productGuid#offerGuid, используйте эту связку в настройках из шага 6. После тестового заказа в 1С позиция должна сопоставиться с существующим товаром и выбранным торговым предложением, а не создать новую номенклатуру.