Данная статья является продолжением предыдущей статьи об обмене данными с Web-сайтом. Теперь речь пойдет о приеме информации о заказах.
Прием заказов с сайта.
Все поступившие с сайта заказы, загружаются в систему "1С:Предприятие 8".
Правила загрузки заказов:
1. В заказе устанавливается категория "Заказ с сайта".
2. Номер и дата заказа будут такими же, как на сайте.
3. Поиск контрагента осуществляется по ИНН или наименованию.
4. При загрузке заказа производится поиск договора с контрагентом. Договор ищется среди существующих договоров с клиентом, с признаком ведения взаиморасчетов по заказам. Если не находится ни один договор, то создается новый.
5. При загрузке заказа загружаются все его свойства, переданные с сайта. Свойства ищутся по наименованию.
6. Заказ может быть изменен в системе "1С:Предприятие 8", при этом его изменения будут выгружаться на сайт.
7. Если заказ оплачивается или отгружается в системе "1С:Предприятие 8", то "состояния" заказа по оплате и по отгрузке выгружаются на сайт только при полной оплате и полной отгрузке.
8. После каждой выгрузки заказа на сайт на стороне сайта определяются значения его категорий (ссылка на категории). Эти значения устанавливаются в системе "1С:Предприятие 8" так, как они присвоены заказу на сайте.
Начало сеанса
Выгрузка каталога на сайт начинается с отправки системой "1С:Предприятие 8" http-запроса следующего вида:
http://<сайт>/<путь>/1c_exchange.php?type=sale&mode=checkauth.
В ответ система управления сайтом передает системе "1С:Предприятие 8" три строки (используется разделитель строк "\n"):
слово "success", имя Cookie, значение Cookie.
Все последующие запросы к системе управления сайтом со стороны "1С:Предприятия 8" содержат в заголовке запроса имя и значение Cookie.
Далее следует запрос следующего вида:
http://<сайт>/<путь>/1c_exchange.php?type=sale&mode=init
В ответ система управления сайтом передает две строки:
1. zip=yes, если сервер поддерживает обмен в zip-формате - в этом случае на следующем шаге файлы должны быть упакованы в zip-формате, или zip=no - в этом случае на следующем шаге файлы не упаковываются и передаются каждый по отдельности.
2. file_limit=<число>, где <число> - максимально допустимый размер файла в байтах для передачи за один запрос. Если системе "1С:Предприятие 8" понадобится передать файл большего размера, его следует разделить на фрагменты.
Получение файла обмена с сайта
На сайт отправляется запрос вида:
http://<сайт>/<путь>/1c_exchange.php?type=sale&mode=query.
Сайт передает сведения о заказах в формате CommerceML. В случае успешного получения и записи заказов "1С:Предприятие 8" передает на сайт запрос вида:
http://<сайт>/<путь>/1c_exchange.php?type=sale&mode=success
Отправка файла обмена на сайт
Система "1С:Предприятие 8" отправляет на сайт запрос вида:
http://<сайт>/<путь>/1c_exchange.php?type=sale&mode=file&filename=<имя файла>
который загружает на сервер файл обмена, посылая содержимое файла в виде POST.
В случае успешной записи файла система управления сайтом передает строку со словом "success".
Если в ходе запроса произошла ошибка, то в первой строке ответа будет содержаться слово "failure", а в следующих строках - описание ошибки. Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.