external:qr_меню:04_оповещения_для_персонала:09_api

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
external:qr_меню:04_оповещения_для_персонала:09_api [2022/02/03 09:46] alexander_troyanexternal:qr_меню:04_оповещения_для_персонала:09_api [2022/02/03 12:08] (текущий) alexander_troyan
Строка 10: Строка 10:
 Пример запроса: Пример запроса:
  
-''GET https://ip:port/api/v4/events?hash=hash +<code> 
-token: token''+GET https://ip:port/api/v4/events?hash=hash 
 +token: token 
 +</code>
  
-**hash** - это уникальный номер события, благодаря которому сервер QR меню понимает, какие события клиент уже получил и какие для него являются новыми. Передается query параметром. +**hash** - это идентификатор события, благодаря которому сервер QR меню понимает, какие события клиент уже получил и какие для него являются новыми. Передается query параметром. 
 Для того чтобы получить все события в качестве hash передается значение none.  Для того чтобы получить все события в качестве hash передается значение none. 
  
Строка 22: Строка 24:
 Пример ответа: Пример ответа:
  
 +<code>
 +{
 + "result": true,
 + "data": {
 + "updates": [
 + {
 + "hash": "0xd8833dd3",
 + "code": "waiter_call",
 + "table": 1000028,
 + "invoice": null,
 + "order": null,
 + "table_repr": {
 + "id": 1000028,
 + "name": "6",
 + "max_guests": 50
 + }
 + }
 + ]
 + }
 +}
 +</code>
  
 +В ключе 'updates' содержится список из событий в хронологическом порядке. 
 +Каждое событие представляет собой:
  
 +**hash** - идентификатор события
 +**code** - название события
 +**table** - идентификатор стола
 +**invoice** - текущий счет (id, id стола, сумма к оплате, информация о добавленных блюдах)
 +**order** - полное представление заказа (сумма, информация об официанте, столе, скидках и блюдах)
 +**table_repr** - информация о столе(id, имя, максимальное кол-во гостей)
  
 Далее сторонний клиент самостоятельно отправляет оповещения в нужный канал. Например, на электронную почту. Далее сторонний клиент самостоятельно отправляет оповещения в нужный канал. Например, на электронную почту.
 +
 +==== Примеры ответов и виды событий ====
 +
 +=== Сохранение заказа (save_order) ===
 +
 +<code>
 +{
 + "hash": "0xd11f09a7",
 + "code": "save_order",
 + "table": 1000028,
 + "invoice": {
 + "id": 121,
 + "order_guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}",
 + "table_id": 1000028,
 + "unpaid_sum": 186.0,
 + "session_id": 121,
 + "status": 0,
 + "error": null,
 + "session": {
 + "items": [
 + {
 + "id": 1000041,
 + "type": "dish",
 + "count": 1.0,
 + "modifiers": [],
 + "name": "Блюдо с модификатором"
 + },
 + {
 + "id": 1000062,
 + "type": "dish",
 + "count": 3.0,
 + "modifiers": [],
 + "name": "Блюдо"
 + }
 + ],
 + "payments": null
 + }
 + },
 + "order": {
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}",
 + "sum": 186.0,
 + "pricelist_sum": 186.0,
 + "table": {
 + "id": 1000028,
 + "name": "6"
 + },
 + "waiter": {
 + "id": 9001,
 + "name": "Система"
 + },
 + "discounts": [],
 + "payments": [],
 + "dishes": [
 + {
 + "id": 1000041,
 + "type": "dish",
 + "name": "Блюдо с модификатором",
 + "price": 150.0,
 + "count": 1.0,
 + "sum": 150.0,
 + "modifiers": []
 + },
 + {
 + "id": 1000062,
 + "type": "dish",
 + "name": "Блюдо",
 + "price": 12.0,
 + "count": 3.0,
 + "sum": 36.0,
 + "modifiers": []
 + }
 + ]
 + }
 +}
 +</code>
 +
 +=== Вызов официанта (waiter_call) ===
 +
 +<code>
 +{
 + "result": true,
 + "data": {
 + "updates": [
 + {
 + "hash": "0xd8833dd3",
 + "code": "waiter_call",
 + "table": 1000028,
 + "invoice": null,
 + "order": null,
 + "table_repr": {
 + "id": 1000028,
 + "name": "6",
 + "max_guests": 50
 + }
 + }
 + ]
 + }
 +}
 +</code>
 +
 +=== Дозаказ (additional_order)===
 +
 +<code>
 +{
 + "hash": "0xb22ce428",
 + "code": "additional_order",
 + "table": 1000028,
 + "invoice": {
 + "id": 122,
 + "order_guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}",
 + "table_id": 1000028,
 + "unpaid_sum": 336.0,
 + "session_id": 122,
 + "status": 0,
 + "error": null,
 + "session": {
 + "items": [
 + {
 + "id": 1000041,
 + "type": "dish",
 + "count": 1.0,
 + "modifiers": [],
 + "name": "Блюдо с модификатором"
 + }
 + ],
 + "payments": null
 + }
 + },
 + "order": {
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}",
 + "sum": 336.0,
 + "pricelist_sum": 336.0,
 + "table": {
 + "id": 1000028,
 + "name": "6"
 + },
 + "waiter": {
 + "id": 9001,
 + "name": "Система"
 + },
 + "discounts": [],
 + "payments": [],
 + "dishes": [
 + {
 + "id": 1000041,
 + "type": "dish",
 + "name": "Блюдо с модификатором",
 + "price": 150.0,
 + "count": 1.0,
 + "sum": 150.0,
 + "modifiers": []
 + },
 + {
 + "id": 1000062,
 + "type": "dish",
 + "name": "Блюдо",
 + "price": 12.0,
 + "count": 3.0,
 + "sum": 36.0,
 + "modifiers": []
 + },
 + {
 + "id": 1000041,
 + "type": "dish",
 + "name": "Блюдо с модификатором",
 + "price": 150.0,
 + "count": 1.0,
 + "sum": 150.0,
 + "modifiers": []
 + }
 + ]
 + }
 +}
 +</code>
 +
 +Вся информация о добавленных в заказ блюдах содержится в ключе "invoice" - "session".
 +
 +=== Онлайн оплата (online_payment) ===
 +
 +<code>
 +{
 + "hash": "0xa1fb9fc1",
 + "code": "online_payment",
 + "table": 1000028,
 + "invoice": null,
 + "order": {
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}",
 + "sum": 186.0,
 + "pricelist_sum": 186.0,
 + "table": {
 + "id": 1000028,
 + "name": "6"
 + },
 + "waiter": {
 + "id": 9001,
 + "name": "Система"
 + },
 + "discounts": [],
 + "payments": [],
 + "dishes": [
 + {
 + "id": 1000041,
 + "type": "dish",
 + "name": "Блюдо с модификатором",
 + "price": 150.0,
 + "count": 1.0,
 + "sum": 150.0,
 + "modifiers": []
 + },
 + {
 + "id": 1000062,
 + "type": "dish",
 + "name": "Блюдо",
 + "price": 12.0,
 + "count": 3.0,
 + "sum": 36.0,
 + "modifiers": []
 + }
 + ]
 + },
 + "table_repr": {
 + "id": 1000028,
 + "name": "6",
 + "max_guests": 50
 + }
 +}
 +</code>
 +
 +=== Запрос счета (bill_request) ===
 +
 +<code>
 +{
 + "hash": "0xa1fb9fc1",
 + "code": "bill_request",
 + "table": 1000028,
 + "invoice": null,
 + "order": {
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}",
 + "sum": 186.0,
 + "pricelist_sum": 186.0,
 + "table": {
 + "id": 1000028,
 + "name": "6"
 + },
 + "waiter": {
 + "id": 9001,
 + "name": "Система"
 + },
 + "discounts": [],
 + "payments": [],
 + "dishes": [
 + {
 + "id": 1000041,
 + "type": "dish",
 + "name": "Блюдо с модификатором",
 + "price": 150.0,
 + "count": 1.0,
 + "sum": 150.0,
 + "modifiers": []
 + },
 + {
 + "id": 1000062,
 + "type": "dish",
 + "name": "Блюдо",
 + "price": 12.0,
 + "count": 3.0,
 + "sum": 36.0,
 + "modifiers": []
 + }
 + ]
 + },
 + "table_repr": {
 + "id": 1000028,
 + "name": "6",
 + "max_guests": 50
 + }
 +}
 +</code>
  
 ===== Как получить токен QR меню ===== ===== Как получить токен QR меню =====
  • external/qr_меню/04_оповещения_для_персонала/09_api.1643870786.txt.gz
  • Последнее изменение: 2022/02/03 09:46
  • alexander_troyan