WebOrder. Требования к интеграции
Требования для сайтов желающих подключиться к системе Эксперт
Передача клиентов на сайт
Для передачи клиентов на сайт в формате xml нужно отправить их через HTTP POST скрипту catchclient.php
<root>
<client id="12" phone="9991234567" name="Павел Морозов" card="5123587465812745" email="pavlikmor@mail.ru" street="улица" house="дом" block="корпус" building="строение" flat="квартира" entrance="подъезд" floor="этаж" doorcode="1234#" address="Полный адрес со всеми полями" category="Скидка 10%" discount="10" bonus="5" balance="125"/>
<client id="14" phone="9035554433" name="Лаврентий Берия" email="lb@gov.su" street="улица" house="дом" block="корпус" building="строение" flat="квартира" entrance="подъезд" floor="этаж" doorcode="1234#" address="Улица, дом, квартира" category="Доставка" discount="0" bonus="5" balance="0"/>
</root>
Прием новых заказов с сайта
Для получения заказов с сайта в формате xml нужно вызвать скрипт getorders.php
<root>
<order id="265" time="2014-12-10 03:14:54" deliverytime="2014-12-10 06:14:54" pickup="0" subtotal="2580.00" total="2322.00" notice="Пожелания">
<client card=”5123587465812745” phone="79991234567" name="Имя" email="user@mail.ru" street="улица" house="дом" block="корпус" building="строение" flat="квартира" entrance="подъезд" floor="этаж" doorcode="1234#" address=”улица, дом, квартира”/>
<payment type="0" change_from="1000" status="0"/>
<payment type="3" total="1500" status="2"/>
<item id="70" amount="2" price="560" option="шт" discount="Сайт" total="1008"/>
<item id="69" amount="1" price="1110" option="шт" discount="Сайт" total="999">
<child_item id="309" amount="1" price="70" discount="Сайт" total="63"/>
<child_item id="310" amount="1" price="70" discount="Сайт" total="63"/>
<child_item id="326" amount="3" price="70" discount="Сайт" total="189"/>
</item>
</order>
</root>
id – это идентификатор заказа, по нему идет связка счетов
time — дата и время оформления заказа
deliverytime — дата и время доставки заказа (если доставка ко времени), необязательно
pickup — признак самовывоза (0 или 1), необязательно
subtotal — сумма заказа без учета скидки
total — сумма заказа с учетом скидки
notice — комментарий к заказу, необязательно
status — статус заказа, может иметь следующие значения:
1 — принят (сохранен, на проверке)
6 — статус неизвестен (нет информации о заказе)
7 — ошибка (невозможно сохранить счет)
client — информация о покупателе
name — имя клиента, необязательно
email — электронная почта клиента, необязательно
Улица и дом обязательны при заказе с доставкой (pickup = ”0”)
type — тип платежа (0 — наличные, 1 — оплата картой при получении, 2 — оплата картой онлайн, 3 — оплата с баланса, 4 — оплата купоном)
total — сумма платежа (обязательно)
change_from — сумма, с которой нужно привезти сдачу, необязательно, только для type = ”0”
status — статус оплаты (0 — не требуется, 1 — ожидание платежа, 2 — успешно оплачен, 3 — оплата не удалась)
id — идентификатор товара в эксперте (по таблице соответствия)
price — цена (для проверки в эксперте
option — вариант (размерность) товара, передавать нужно то, что пришло из меню, то есть «шт»
При вызове getorders.php без параметров возвращаются только новые заказы (status=”0”). Чтобы получить заказы с другими статусами, нужно передать список статусов через запятую в GET-параметре status. Например, чтобы получить список всех активных заказов (кроме новых и завершенных), нужно вызвать getorders.php?status=1,2,3 или getactiveorders.php
После сохранения новых заказов в Эксперте необходимо изменить их статус на 1 (принят) путем отправки xml скрипту updateorder.php
<root>
<order id="3" status="1"/>
<order id="4" status="1"/>
</root>
Прием сообщений с сайта (формы обратной связи)
Для получения сообщений с сайта в формате xml нужно вызвать скрипт getmessages.php
<root>
<message id="3" title="Заказ звонка" time="2015-12-11 23:35:30" name="Василий Иваныч" phone="9876543210" message="Василий Иваныч, 9876543210" status="0"/>
<message id="4" title="Бронирование столика" time="2015-12-11 23:36:10" name="Аверс Технолоджи" phone="4952212117" scheduletime="2015-12-09 20:30:00" message="Аверс Технолоджи, 4952212117, 2015-12-09 20:30:00, Гостей:12, Корпоратив" status="0"/>
<message id="5" title="Заказ звонка" time="2015-12-11 23:36:37" name="Да никто" phone="9999999999" message="Да никто, 9999999999" status="0"/>
</root>
title — тема сообщения (заголовок формы на сайте)
time — дата и время отправки сообщения
phone — телефон посетителя сайта
scheduletime — запланированные дата и время, указанные посетителем сайта
message — текст сообщения, содержит все поля заполненной формы
status — статус сообщения, может иметь следующие значения.
0 — не принято (новое сообщение)
1 — принято (сохранено в Эксперте)
5 — отменено (удалено из Эксперта)
6 — статус не известен (нет информации в Эксперте)
7 — ошибка (невозможно сохранить сообщение)
При вызове getmessages.php без параметров возвращаются только новые сообщения (status=”0”). Чтобы получить сообщения с другими статусами, нужно передать список статусов через запятую в GET-параметре status. Например, чтобы получить список всех сообщений, кроме удаленных, нужно вызвать getmessages.php?status=0,1,2 или getactivemessages.php
После сохранения сообщений в Эксперте необходимо изменить их статус на 1 (принято) путем отправки xml скрипту updatemessage.php
<root>
<message id="3" status="1"/>
<message id="4" status="1"/>
</root>
Сайт создаёт заказ и ставит ему статус 0. После обращения к списку новых заказов система обмена заносит заказ в базу и вызывает скрипт для обновления статуса этого заказа, где сообщает ID этого заказа и status = 1 (внесён в базу). При следующих запросах списка заказов сайт будет возвращать новый статус.