Протокол обміну з сайтом, Стандарти та формати, 1C Підприємство 8
Даний відкритий протокол розроблений компаніями "1С" та "1С-Бітрікс".
Протокол використовується штатною процедурою обміну комерційними даними між системою "1С:Підприємство", з одного боку, та системою управління сайтом, з іншого боку.
Функціонально обмін ділиться на два блоки:
Перший блок забезпечує публікацію на сайті каталогу номенклатурних позицій та даних. Другий блок необхідний для передачі з сайту в систему "1С:Підприємство" інформації про замовлення інтернет-магазину та подальшу синхронізацію статусів і параметрів замовлень.
В обох випадках ініціатором обміну виступає система "1С:Підприємство". Обмін електронними документами здійснюється відповідно до правил та форматів, описаних у стандарті CommerceML 2.
При ініціалізації взаємодії встановлюється з'єднання HTTP. Система "1С:Підприємство" запитує у сайту необхідні параметри, такі, як максимальний обсяг пакету, підтримка стиснення та ін. На підставі цих даних система 1С:Підприємство формує XML повідомлення та передає їх на сайт.
Вивантаження на сайт
A. Початок сеансу
Вивантаження даних починається з того, що система "1С:Підприємство" відправляє http-запит наступного виду: http:// //1c_exchange.php?type=catalog&mode=checkauth.
У відповідь система управління сайтом передає системі «1С:Підприємство» три рядки (використовується роздільник рядків "\n"):
- слово "success";
- ім'я Cookie;
- значення cookie.
Примітка. Всі наступні запити до системи керування сайтом з боку "1С:Підприємства" містять в заголовку запиту ім'я та значення Cookie.
B. Запит параметрів від сайту
Далі слідує запитнаступного виду: http:// //1c_exchange.php?type=catalog&mode=init
У відповідь система управління сайтом передає два рядки:
1. zip=yes , якщо сервер підтримує обмін у zip-форматі - у разі на наступному кроці файли мають бути упаковані у zip-форматі або zip=no - у разі на наступному кроці файли не упаковуються і передаються кожен окремо.
2. file_limit= , де - максимально допустимий розмір файлу в байтах передачі за запит. Якщо системі "1С:Підприємство" потрібно передати файл більшого розміру, його слід розділити на фрагменти.
C. Вивантаження на сайт файлів обміну
Потім "1С:Підприємство" запитами з параметрами виду http:// / /1c_exchange.php?type=catalog&mode=file&filename= вивантажує на сайт файли обміну у форматі CommerceML 2, посилаючи вміст файлу або його частини у вигляді POST.
У разі успішного запису файлу система керування сайтом видає рядок "success".
D. Покрокове завантаження даних
На останньому кроці на запит з "1С:Підприємства" проводиться покрокове завантаження даних за запитом з параметрами виду http:// //1c_exchange.php?type=catalog&mode=import&filename=
Під час завантаження система керування сайтом може відповідати в одному з наведених нижче варіантів.
1. Якщо в першому рядку міститься слово "progress" - це означає необхідність надіслати той же запит ще раз. У цьому випадку в другому рядку буде повернено поточний статус обробки, обсяг завантажених даних, статус імпорту тощо.
2. Якщо у відповідь передається рядок зі словом "success", це означатиме повідомлення про успішне закінчення обробки файла.
Примітка. Якщо під час будь-якого запиту сталася помилка, то у першому рядку відповіді системиуправління сайтом буде міститися слово "failure", а в наступних рядках опис помилки, що відбулася в процесі обробки запиту. Якщо сталася необроблена помилка рівня ядра продукту або SQL-запиту, то буде повернено html-код.
Приклади файлів вивантаження
Обмін інформацією про замовлення
Замовлення, оформлені на сайті, завантажуються у систему "1С:Підприємство".
Послідовність дій під час роботи із замовленням
1. Замовлення оформляється на сайті
3. При завантаженні замовлення здійснюється пошук договору з контрагентом. Договір шукається серед існуючих договорів із клієнтом, з ознакою ведення взаєморозрахунків на замовлення (за вказаним у налаштуваннях завантаження Організації). Якщо немає жодного договору, то створюється новий.
4. При завантаженні замовлення завантажуються всі властивості, передані з сайту. Властивості шукаються у системі "1С:Підприємство" за назвою. Якщо з такою назвою властивості немає, то заводиться нова властивість зі значеннями типу рядок чи число.
5. Замовлення може модифікуватися в системі "1С:Підприємство", при цьому його зміни вивантажуватимуться на сайт
6. Якщо замовлення оплачується або відвантажується в системі "1С:Підприємство", то стани замовлення з оплати та відвантаження вивантажуються на сайт тільки при повному виконанні операції (повній оплаті та повному відвантаженні). До цього моменту замовлення вважається не оплаченим та не відвантаженим.
7. При спробі в системі "1С:Підприємство" змінити замовлення, за яким здійснено оплату або відвантаження, замовлення на сайт не завантажиться як змінене. При цьому користувач отримає повідомлення.
A. Початок сеансу
Вивантаження даних починається з того, що система "1С:Підприємство" відправляє http-запити наступного виду: http:// //1c_exchange.php?type=sale&mode=checkauth.
У відповідь система управління сайтом передає системі «1С:Підприємство» три рядки (використовується роздільник рядків "\n"):
- слово "success";
- ім'я Cookie;
- значення cookie.
Примітка. Всі наступні запити до системи керування сайтом з боку "1С:Підприємства" містять в заголовку запиту ім'я та значення Cookie.
B. Уточнення параметрів сеансу
Далі слідує запит наступного виду: http:// //1c_exchange.php?type=sale&mode=init
У відповідь система управління сайтом передає два рядки:
1. zip=yes , якщо сервер підтримує обмін у zip-форматі - у разі на наступному кроці файли мають бути упаковані у zip-форматі або zip=no - у разі на наступному кроці файли не упаковуються і передаються кожен окремо.
2. file_limit= , де - максимально допустимий розмір файлу в байтах передачі за запит. Якщо системі "1С:Підприємство" потрібно передати файл більшого розміру, його слід розділити на фрагменти.
C. Отримання файлу обміну із сайту
Потім на сайт надсилається запит виду http:// //1c_exchange.php?type=sale&mode=query.
Сайт передає відомості про замовлення у форматі CommerceML 2. У разі успішного отримання та запису замовлень "1С:Підприємство" передає на сайт запит виду http:// //1c_exchange.php?type=sale&mode=success
D. Надсилання файлу обміну на сайт
Потім система "1С:Підприємство" відправляє на сайт запит виду http:// / /1c_exchange.php?type=sale&mode=file&filename= , який завантажує на сервер файл обміну, посилаючи вміст файлу в вигляді POST.
У разі успішного запису файлу система керування сайтом передає рядок зі словом"success". Додатково на наступних рядках можуть бути зауваження щодо завантаження.
Примітка. Якщо під час будь-якого запиту відбулася помилка, то першому рядку відповіді системи управління сайтом буде міститися слово "failure", а наступних рядках - опис помилки, що сталася у процесі обробки запиту. Якщо сталася необроблена помилка рівня ядра продукту або SQL-запиту, то буде повернено html-код.