Интеграция интернет-магазина и «1С Управление торговлей»

Существует мнение, что для интеграции интернет-магазина и  «1С Управление торговлей» нужна СМС «Битрикс», это большое заблуждение. Программистами нашей студии был разработан пакет для Zend Framework 3, который позволяет интегрировать сайт с «1С Управление торговлей». Сегодня мы рассмотрим принцип взаимодействия 1С и сайта. Для большей универсальности пакета, его работа делится на 2 части, собственно реализация протокола обмена  CommerceML и запись всей поступающей информации в промежуточные таблицы базы данных. По завершении цикла обмена вызывается событие, которое обрабатывает приложение сайта, которое уже должно самостоятельно обрабатывать полученную информацию. Вся работа построена на событиях, благодаря этому, мы можем легко заменить обработчики событий на другие, если требуется интеграция сайта с нестандартной конфигурацией «1С Управление торговлей».

Протокол CommerceML

Мы уже говорили, сайт сам по себе не может обращаться к внешним сервисам, это особенность протокола HTTP, поэтому инициатором обмена всегда является клиент. Для того что бы сайт знал, что данные поступают верные, используется базовая аутентификация, в целом, весь обмен происходит при помощи стандартного протокола HTTP. Допустим интеграция производится через адрес что-то-что-то.рф/1c:

  1. Аутентификация.
    "GET /1c?type=catalog&mode=checkauth
    в этом запросе передается логин и пароль, согласно стандарту базовой аутентификации. Логин и пароль проверяется сайтом, и если все прошло успешно идем далее, в противном случае все прерывается.
  2. Инициализация.
    GET /1c?type=catalog&mode=init
    В этом запросе 1С получает настройки сайта: максимальный объем POST запросов, cookie сессии, если будет загрузка по частям, поддержка ZIP. Формат ответа просто строки.
  3. Передача самого каталога товара в формате XML.
    POST /1c?type=catalog&mode=file&filename=import0_1.xml
    Здесь информация передается как обычный файл из браузера в виде потока, что бы сайт знал имя файла и сохранил его у себя, его передают в параметре filename.
  4. Передача файлов документов и изображений, если они есть.
    POST /1c?type=catalog&mode=file&filename=import_files/5c/5cd46_52ed46.jpg
    Работает аналогично п.3, эти файлы нужно просто сохранить на сайте. Запросы этого типа могут повторяться много раз, для каждого файла.
  5. Обработка файла XML с каталогом.
    GET /1c?type=catalog&mode=import&filename=import0_1.xml
    Это важный запрос, по этому запросу сайт должен интерпретировать файл, который получен в п.3. Наш пакет разбирает всю информацию и загружает в промежуточные таблицы, производится логическое связывание товара (номенклатуры), категорий товара, разных документов, фотографий к товару как есть.
  6. Загрузка информации об остатках, ценах товара.
    POST /1c?type=catalog&mode=file&filename=offers0_1.xml
    Работает аналогично п.3.
  7. Обработка файла с остатками и ценами товара.
    GET /1c?type=catalog&mode=import&filename=offers0_1.xml
    Работает аналогично п.5.

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

Интеграция интернет-магазина и «1С Управление торговлей»

Как описано выше, формат полезной информации это XML, правда разработчики почему-то используют в именах тегов кириллицу, это несколько необычно.  Среди необычности и то, что в файле типа offers.xml так же передается наименование, категории товара, вероятно это связано с совместимостью со старыми версиями, возможно, не удачными в разработке. В будущем мы планируем расширять возможности своего пакета, и будем дополнять эту статью.

Обработка каталога товара

Обработка информации начинается в п.5, программа сайта анализирует файл на предмет флага обновления, и возможно 2 варианта работы: полное замещение всей информации, и обновление/дополнение. В первом случае все таблицы с каталогом очищаются. Строится дерево категорий номенклатуры вновь, производится привязка товара к категориям. В п.7 производится сопоставление идентификаторов товара и дополнение таблиц с товарами. После завершения работы в п.7 вызывается событие «catalogImportComplete», которое вызывает его слушателя, программа слушателя и заносит данные в каталог интернет-магазина.

Формат файлов обмена

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

Возможные проблемы интеграции сайта и 1С

Как правило технические проблемы легко устранимы. Самая главная проблема не техническая, а организационная со стороны владельца магазина. Дело в том, что за все время разработки сайтов мы еще ни разу не видели нормально созданного каталога товара в 1С. У всех товар свален в одну категорию, сам товар имеет только название и цену, остальной информации просто нет, ее никто не хочет вносить. Обращаясь в нашу студию, заказчик часто недоумевает, почему будут сложности, ведь у него есть все, по его мнению. Многие считают, что «Битрикс» это панацея, однако это большое заблуждение, если нет информации, то она из неоткуда не возникнет. Мы писали об этой проблеме ранее.

Вы заказчик, у вас правильно заполняется каталог в 1С, информация актуальна, тогда вы наш клиент, мы с радостью создадим сайт с полной интеграцией интернет магазина и 1С.

Веб-студия "Мастер Флеш"
+7 (928) 416 53 03
ул. Зиповская 5/2 350010 Россия, г.Краснодар

Перейти к списку