Данный открытый протокол разработан компаниями «1С» и «1С-Битрикс».
Протокол используется штатной процедурой обмена коммерческими данными между системой «1С: Предприятие», с одной стороны, и системой управления сайтом, с другой стороны.
Первый блок обеспечивает публикацию на сайте каталога номенклатурных позиций и данных. Второй блок необходим для передачи с сайта в систему «1С: Предприятие» информации о заказах интернет-магазина, и дальнейшую синхронизацию статусов и параметров заказов.
В обоих случаях инициатором обмена выступает система «1С: Предприятие». Обмен электронными документами осуществляется в соответствии с правилами и форматами, описанными в стандарте CommerceML 2.
При инициализации взаимодействия устанавливается HTTP соединение. Система «1С: Предприятие» запрашивает у сайта необходимые параметры, такие, как максимальный объем пакета, поддержка сжатия и др. На основании этих данных система 1С: Предприятие формирует XML сообщения и передает их на сайт.
Данные для публикации на сайте выгружаются одним пакетом.
Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=checkauth.
Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.
Далее следует запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=init
Затем «1С: Предприятие» запросами с параметрами вида
http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=file& filename=<имя файла>
выгружает на сайт файлы обмена в формате CommerceML 2, посылая содержимое файла или его части в виде POST.
В случае успешной записи файла система управления сайтом выдает строку «success».
На последнем шаге по запросу из «1С: Предприятия» производится пошаговая загрузка данных по запросу с параметрами вида http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=import& filename=<имя файла>
Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса. Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.
<КоммерческаяИнформация ВерсияСхемы="2.03" ДатаФормирования="2008-03-28"> <Документ> <Ид>20Ид> <Номер>20Номер> <Дата>2007-10-16Дата> <ХозОперация>Заказ товараХозОперация> <Роль>ПродавецРоль> <Валюта>RUBВалюта> <Курс>1Курс> <Сумма>9683.42Сумма> <Контрагенты> <Контрагент> <Ид>1#admin#Петров Петр Ид> <Наименование>Петр ПетровНаименование> <Роль>ПокупательРоль> <ПолноеНаименование>Петр ПетровПолноеНаименование> <Фамилия>ПетровФамилия><Имя>ПетрИмя> <АдресРегистрации> <Представление>87698Представление><АдресноеПоле> <Тип>Почтовый индексТип> <Значение>6546Значение> АдресноеПоле><АдресноеПоле> <Тип>УлицаТип> <Значение>87698Значение> АдресноеПоле> АдресРегистрации> <Контакты> Контакты> <Представители> <Представитель> <Контрагент> <Отношение>Контактное лицоОтношение> <Ид>ab7399a8aa62c20e0e9f3ea53c6dac81Ид> <Наименование>Петр ПетровНаименование> Контрагент> Представитель> Представители> Контрагент> Контрагенты> <Время>15:40:40Время> <Комментарий>Комментарий> <Товары> <Товар> <Ид>ORDER_DELIVERYИд> <Наименование>Доставка заказаНаименование> <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">штБазоваяЕдиница> <ЦенаЗаЕдиницу>348.00ЦенаЗаЕдиницу> <Количество>1Количество> <Сумма>348.00Сумма> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатурыНаименование> <Значение>УслугаЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ТипНоменклатурыНаименование> <Значение>УслугаЗначение> ЗначениеРеквизита> ЗначенияРеквизитов> Товар> <Товар> <Ид>cbcf498f-55bc-11d9-848a-00112f43529aИд> <ИдКаталога>bd72d8f9-55bc-11d9-848a-00112f43529aИдКаталога> <Наименование>Комбайн MOULINEX A77 4CНаименование> <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">штБазоваяЕдиница> <ЦенаЗаЕдиницу>9335.42ЦенаЗаЕдиницу> <Количество>1.00Количество> <Сумма>9335.42Сумма> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатурыНаименование> <Значение>ТоварЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ТипНоменклатурыНаименование> <Значение>ТоварЗначение> ЗначениеРеквизита> ЗначенияРеквизитов> Товар> Товары> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>Дата оплатыНаименование> <Значение>2007-10-16 15:44:47Значение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Номер платежного документаНаименование> <Значение>ТК000000026Значение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Метод оплатыНаименование> <Значение>Наличный расчетЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Дата разрешения доставкиНаименование> <Значение>2007-10-16 15:51:27Значение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Заказ оплаченНаименование> <Значение>trueЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Доставка разрешенаНаименование> <Значение>trueЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ОтмененНаименование> <Значение>falseЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Финальный статусНаименование> <Значение>trueЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Статус заказаНаименование> <Значение>[F] ДоставленЗначение> ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>Дата изменения статусаНаименование> <Значение>2007-10-16 15:51:58Значение> ЗначениеРеквизита> ЗначенияРеквизитов> Документ> КоммерческаяИнформация>
Заказы, оформленные на сайте, загружаются в систему «1С: Предприятие».
Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=checkauth.
Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.
Далее следует запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=init
Затем на сайт отправляется запрос вида
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=query.
Сайт передает сведения о заказах в формате CommerceML 2. В случае успешного получения и записи заказов «1С: Предприятие» передает на сайт запрос вида
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=success
Затем система «1С: Предприятие» отправляет на сайт запрос вида
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=file& filename=<имя файла>,
который загружает на сервер файл обмена, посылая содержимое файла в виде POST.
В случае успешной записи файла система управления сайтом передает строку со словом «success». Дополнительно на следующих строчках могут содержаться замечания по загрузке.
Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса.
Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.
<КоммерческаяИнформация ВерсияСхемы="2.03" ДатаФормирования="2008-03-28"> <Документ> <Ид>20 <Номер>20 <Дата>2007-10-16 <ХозОперация>Заказ товара <Роль>Продавец <Валюта>RUB <Курс>1 <Сумма>9683.42 <Контрагенты> <Контрагент> <Ид>1#admin#Петров Петр <Наименование>Петр Петров <Роль>Покупатель <ПолноеНаименование>Петр Петров <Фамилия>Петров<Имя>Петр <АдресРегистрации> <Представление>87698<АдресноеПоле> <Тип>Почтовый индекс <Значение>6546 <АдресноеПоле> <Тип>Улица <Значение>87698 <Контакты> <Представители> <Представитель> <Контрагент> <Отношение>Контактное лицо <Ид>ab7399a8aa62c20e0e9f3ea53c6dac81 <Наименование>Петр Петров <Время>15:40:40 <Комментарий> <Товары> <Товар> <Ид>ORDER_DELIVERY <Наименование>Доставка заказа <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт <ЦенаЗаЕдиницу>348.00 <Количество>1 <Сумма>348.00 <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры <Значение>Услуга <ЗначениеРеквизита> <Наименование>ТипНоменклатуры <Значение>Услуга <Товар> <Ид>cbcf498f-55bc-11d9-848a-00112f43529a <ИдКаталога>bd72d8f9-55bc-11d9-848a-00112f43529a <Наименование>Комбайн MOULINEX A77 4C <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт <ЦенаЗаЕдиницу>9335.42 <Количество>1.00 <Сумма>9335.42 <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры <Значение>Товар <ЗначениеРеквизита> <Наименование>ТипНоменклатуры <Значение>Товар <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>Дата оплаты <Значение>2007-10-16 15:44:47 <ЗначениеРеквизита> <Наименование>Номер платежного документа <Значение>ТК000000026 <ЗначениеРеквизита> <Наименование>Метод оплаты <Значение>Наличный расчет <ЗначениеРеквизита> <Наименование>Дата разрешения доставки <Значение>2007-10-16 15:51:27 <ЗначениеРеквизита> <Наименование>Заказ оплачен <Значение>true <ЗначениеРеквизита> <Наименование>Доставка разрешена <Значение>true <ЗначениеРеквизита> <Наименование>Отменен <Значение>false <ЗначениеРеквизита> <Наименование>Финальный статус <Значение>true <ЗначениеРеквизита> <Наименование>Статус заказа <Значение>[F] Доставлен <ЗначениеРеквизита> <Наименование>Дата изменения статуса <Значение>2007-10-16 15:51:58
<КоммерческаяИнформация ВерсияСхемы="2.03" ДатаФормирования="2007-10-30"> <Документ> <Ид>36 <Номер>36 <Дата>2007-10-30 <ХозОперация>Заказ товара <Роль>Продавец <Валюта>руб <Курс>1 <Сумма>6734.47 <Контрагенты> <Контрагент> <Ид>1#admin# admin <Наименование>admin <Роль>Покупатель <ПолноеНаименование>admin <Фамилия>Иванов <Имя>admin <АдресРегистрации> <Представление>ггг <АдресноеПоле> <Тип>Почтовый индекс <Значение>1111 <АдресноеПоле> <Тип>Улица <Значение>ггг <Контакты/> <Представители> <Представитель> <Контрагент> <Отношение>Контактное лицо <Ид>b342955a9185c40132d4c1df6b30af2f <Наименование>admin <Время>15:19:27 <Комментарий/> <Товары> <Товар> <Ид>ORDER_DELIVERY <Наименование>Доставка заказа <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт <ЦенаЗаЕдиницу>340.00 <Количество>1 <Сумма>340.00 <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры <Значение>Услуга <ЗначениеРеквизита> <Наименование>ТипНоменклатуры <Значение>Услуга <Товар> <Ид>dee6e19a-55bc-11d9-848a-00112f43529a <ИдКаталога>bd72d8f9-55bc-11d9-848a-00112f43529a <Наименование>Телевизор "JVC" <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт <ЦенаЗаЕдиницу>6394.47 <Количество>1.00 <Сумма>6394.47 <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры <Значение>Товар <ЗначениеРеквизита> <Наименование>ТипНоменклатуры <Значение>Товар <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>Метод оплаты <Значение>Наличный расчет <ЗначениеРеквизита> <Наименование>Заказ оплачен <Значение>false <ЗначениеРеквизита> <Наименование>Доставка разрешена <Значение>false <ЗначениеРеквизита> <Наименование>Отменен <Значение>false <ЗначениеРеквизита> <Наименование>Финальный статус <Значение>false <ЗначениеРеквизита> <Наименование>Статус заказа <Значение>[N] Принят <ЗначениеРеквизита> <Наименование>Дата изменения статуса <Значение>2007-10-30 15:19:27
Представленный протокол используется для интеграции системы «1С: Предприятие» с системами «1С-Битрикс: Управление сайтом», «UMI.CMS» и другими.