Обмен данными между системой 1С:Предприятие 8 и 5CMS

Данный открытый протокол разработан компаниями «1С» и «1С-Битрикс».

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

Функционально обмен делится на два блока:

  • выгрузка на сайт торговых предложений – каталогов продукции;
  • обмен информацией о заказах.

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

В обоих случаях инициатором обмена выступает система «1С:Предприятие». Обмен электронными документами осуществляется в соответствии с правилами и форматами, описанными в стандарте CommerceML 2.

При инициализации взаимодействия устанавливается HTTP соединение. Система «1С:Предприятие» запрашивает у сайта необходимые параметры, такие, как максимальный объем пакета, поддержка сжатия и др.. На основании этих данных система 1С:Предприятие формирует XML сообщения и передает их на сайт.

Выгрузка каталогов продукции

Каталоги для публикации на сайте выгружаются одним пакетом.

а) Начало сеанса

Выгрузка каталога начинается с того, что система «1С:Предприятие» отправляет http-запрос следующего вида:

http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=catalog&mode=checkauth.

В ответ система управления сайтом передает системе «1С:Предприятие» три строки (используется разделитель строк «\n»):
слово «success»;
имя Cookie;
значение Cookie.

Примечание. Все последующие запросы к системе управления сайтом со стороны «1С:Предприятия» содержат в заголовке запроса имя и значение Cookie.

б) Запрос параметров от сайта

Далее следует запрос следующего вида:

http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=catalog&mode=init

В ответ система управления сайтом передает две строки:

1. zip=yes, если сервер поддерживает обмен в zip-формате — в этом случае на следующем шаге файлы должны быть упакованы в zip-формате
или
zip=no — в этом случае на следующем шаге файлы не упаковываются и передаются каждый по отдельности.

2. file_limit=<число>, где <число> — максимально допустимый размер файла в байтах для передачи за один запрос. Если системе «1С:Предприятие» понадобится передать файл большего размера, его следует разделить на фрагменты.

в) Выгрузка на сайт файлов обмена

Затем «1С:Предприятие» запросами с параметрами вида
http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=catalog&mode=file&filename=<имя файла>
выгружает на сайт файлы обмена в формате CommerceML 2, посылая содержимое файла или его части в виде POST.

В случае успешной записи файла система управления сайтом выдает строку «success».

г) Пошаговая загрузка каталога

На последнем шаге по запросу из «1С:Предприятия» производится пошаговая загрузка каталога по запросу с параметрами вида http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=catalog&mode=import&filename=<имя файла>

Во время загрузки система управления сайтом может отвечать в одном из следующих вариантов.

1. Если в первой строке содержится слово «progress» — это означает необходимость послать тот же запрос еще раз. В этом случае во второй строке будет возвращен текущий статус обработки, объем загруженных данных, статус импорта и т.д.

2. Если в ответ передается строка со словом «success», то это будет означать сообщение об успешном окончании обработки файла.

Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса.
Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.

Обмен информацией о заказах

Заказы, оформленные на сайте, загружаются в систему «1С:Предприятие».

Последовательность действий при работе с заказом

1. Заказ оформляется на сайте

2. При передаче в систему «1С:Предприятие» в заказе устанавливается категория «Заказ с сайта».
При формировании заказа в системе «1С:Предприятие» записываются номер и дата заказа, с которыми он оформлен на сайте. 

3. Заказ может модифицироваться в системе «1С:Предприятие», при этом его изменения будут выгружаться на сайт

4. Если заказ оплачивается или отгружается в системе «1С:Предприятие», то состояния заказа по оплате и по отгрузке выгружаются на сайт только при полном выполнении операции (полной оплате и полной отгрузке). До этого момента заказ считается не оплаченным и не отгруженным.

5. При попытке в системе «1С:Предприятие» изменить заказ, по которому произведена оплата или отгрузка, заказ на сайт не загрузится как измененный. При этом пользователь получит об этом сообщение.

6. После каждой выгрузка заказа на сайт, на стороне сайта определяются значения его категорий (ссылка на категории). Эти значения устанавливаются в системе «1С:Предприятие» так, как они присвоены заказу на сайте

а) Начало сеанса

Выгрузка каталога начинается с того, что система «1С:Предприятие» отправляет http-запрос следующего вида:

http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=sale&mode=checkauth.

В ответ система управления сайтом передает системе «1С:Предприятие» три строки (используется разделитель строк «\n»):
слово «success»;
имя Cookie;
значение Cookie.

Примечание. Все последующие запросы к системе управления сайтом со стороны «1С:Предприятия» содержат в заголовке запроса имя и значение Cookie.

б) Уточнение параметров сеанса

Далее следует запрос следующего вида:

http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=sale&mode=init

В ответ система управления сайтом передает две строки:

1. zip=yes, если сервер поддерживает обмен в zip-формате — в этом случае на следующем шаге файлы должны быть упакованы в zip-формате
или
zip=no — в этом случае на следующем шаге файлы не упаковываются и передаются каждый по отдельности.

2. file_limit=<число>, где <число> — максимально допустимый размер файла в байтах для передачи за один запрос. Если системе «1С:Предприятие» понадобится передать файл большего размера, его следует разделить на фрагменты.

в) Получение файла обмена с сайта

Затем на сайт отправляется запрос вида

http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=sale&mode=query.

Сайт передает сведения о заказах в формате CommerceML 2. В случае успешного получения и записи заказов «1С:Предприятие» передает на сайт запрос вида

http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=sale&mode=success

г) Отправка файла обмена на сайт

Затем система «1С:Предприятие» отправляет на сайт запрос вида
http://ваш_сайт/fivecms/cml/1c_exchange2.php?type=sale&mode=file&filename=<имя файла>,
который загружает на сервер файл обмена, посылая содержимое файла в виде POST.

В случае успешной записи файла система управления сайтом передает строку со словом «success». Дополнительно на следующих строчках могут содержаться замечания по загрузке.

Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса.
Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.

UPD: обновлено 09.05.2023

Еще нет своего сайта? Запустите интернет-магазин на платформе 5CMS - Все для продаж уже внутри!

Рекомендуем прочитать