CommerceBridge1C — двусторонняя интеграция 1С с MODX 3 и miniShop3 по CommerceML 2.



CommerceBridge1C подходит для интернет-магазинов на MODX 3 + miniShop3, которым нужен штатный HTTP-обмен с 1С. В MODX появляется отдельная панель с ручной загрузкой XML/ZIP, историей сеансов, журналом и сопоставлением полей и статусов.

Каталог импортируется с устойчивой привязкой по GUID. Отдельные выгрузки `offers.xml` обновляют цены и остатки без повторного импорта всей номенклатуры. Обмен может работать автономно по регламенту 1С.

## Возможности

— категории и подразделы любой вложенности;
— наименование, артикул, код 1С, краткое и полное описание;
— производители, свойства, вес, длина, ширина и высота;
— изображения из 1С и стандартные ресайзы miniShop3;
— фильтр вложений: PDF, XLS, DOC и другие неразрешённые файлы не импортируются;
— основная цена и дополнительные типы цен в автоматически создаваемых TV;
— остаток по всем или выбранным складам;
— связи свойств 1С с полями MODX, miniShop3, TV и опциями;
— SEO description и отбор товаров/категорий по GUID;
— публикация и видимость товара по остатку, скрытие пустых групп;
— выгрузка заказов и контрагентов в 1С;
— ручное или автоматическое сопоставление статусов 1С и miniShop3;
— журнал, отчёты, режим отладки, просмотр и очистка лога;
— ручной импорт XML/ZIP из админ-панели;
— HTTP Basic Auth с хранением пароля в виде хеша.

## Требования

— MODX Revolution 3.2+;
— miniShop3;
— PHP 8.2+;
— XMLReader, SimpleXML, XMLWriter, ZIP, Fileinfo, OpenSSL;
— GD или Imagick;
— HTTPS.

Первый обмен

Рекомендуемый порядок:
  1. включите режим отладки в CommerceBridge1C;
  2. ограничьте выгрузку одной категорией и несколькими товарами;
  3. выполните полную выгрузку каталога и предложений;
  4. проверьте категории, шаблоны, артикулы, цены, остатки и изображения;
  5. настройте сопоставление нестандартных свойств;
  6. повторите тестовый обмен;
  7. отключите подробную отладку;
  8. снимите временное ограничение номенклатуры.


Журнал

Обычный режим записывает начало и итог обмена, предупреждения и ошибки. Режим отладки заметно увеличивает объём файла core/cache/logs/commerceml.log, поэтому после диагностики его следует отключить.



## Важно перед покупкой

— Конфигурация 1С должна поддерживать CommerceML 2.
— Характеристики предложений сохраняются как свойства базового товара; отдельные SKU miniShop3 не создаются.
— TV с ценами хранят данные; выбор цены по группе покупателя настраивается в шаблонах сайта.
— Валюта выгружаемых заказов в версии — RUB.
— Перед первым обменом нужны резервная копия и тестовая выгрузка небольшой группы.






Mishiko
Mishiko
21 июня 2026, 21:49
modx.pro
689

Комментарии: 8

Артур Шевченко
21 июня 2026, 23:18
Создание категорий, товар происходит через процессоры?
    Mishiko
    21 июня 2026, 23:36
    Нет. Сейчас категории и товары создаются напрямую через xPDO-модели:
    — категории: newObject(msCategory::class)save();
    — товары: newObject(msProduct::class)save();
    — данные товара: msProductDatasave().

    Через процессоры это быстрее для массового импорта, но часть процессорной валидации, событий и сторонних обработчиков может не сработать.

    В планах сделать и синхронизацию через REST API там можно будет предусмотреть два режима direct и processor
      Артур Шевченко
      22 июня 2026, 11:12
      Через процессоры как раз наоборот дольше, но есть события, что важно, так как на них может быть навешена какая-то кастомная логика. Кстати, как в пакете дела с событиями, они есть?
        Mishiko
        22 июня 2026, 11:22
        Нет, собственных событий CommerceBridge 1C сейчас нет,
        • отсутствуют вызовы $modx->invokeEvent();
        • transport-пакет не регистрирует modPlugin;
        • импорт выполняется прямыми сохранениями моделей;
        • смена статуса идёт через сервис miniShop3, поэтому там могут срабатывать штатные события miniShop3
          Артур Шевченко
          22 июня 2026, 23:07
          Стоит подумать и добавить, так как 100% потребуется как-то модифицировать данные из 1С. Частый кейс это не соответствие категорий на сайте и категорий в 1С, через событие можно будет на лету менять родителя.
    Николай Савин
    22 июня 2026, 20:23
    Чтение и разбор выгрузки идут напрямую из XML? Если да, рекомендую как следует изучить вот эту статью, нашего бывшего коллеги Павла
      Mishiko
      22 июня 2026, 21:54
      Почитал. У меня сейчас
      XMLReader → SimpleXML-узел → немедленный save() в MODX
      Попробую реализовать
      XMLReader
         ↓
      CommerceMlParser
         ↓
      DTO: CategoryData, ProductData, OfferData
         ↓
      Normalizer + Validator
         ↓
      ImportService
         ↓
      CategoryWriter / ProductWriter / OfferWriter
      Mishiko
      26 июня 2026, 09:30
      Все рекомендации учтены
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        8