Отримання рахунку за номером стола

Для отримання рахунку, Expirenza надсилатиме наступне повідомлення:

getBill
❗️ Обов'язкові елементи запиту: rID,operation та tableNumber або billId.
❗️ Наразі інтеграція підтримує передачу параметру guests.dishes.dishId,
   у якому dishId порожній. 
 
❗️ Ми суворо рекомендуємо передавати dishId і не залишати його порожнім,так як
   варіант с порожнім dishId невдовзі стане застарілим, і якщо ви його
    не передавали у вас можуть виникнути проблеми з інтеграцією, та не буде 
     працювати оцінка блюд.

Переконайтесь, що ваша інтеграція підтримує всі можливі комбінації цих параметрів:

Сценарії :

  1. Тільки з billId:

Сценарій з billId позначає що оплата буде здійснена по QR з пречеку.

{
    "rID" : "2021-03-13 00:32:04.942046#UP57RxE",
    "operation" : "getBill",
    "billId": "079148b1-2824-11ed-8dbd-3c7c3fbcab3c"
}
  1. Тільки з tableNumber:

Сценарій з tableNumber позначає що оплата буде здійснена по QR на столі.

{
    "rID" : "2021-03-13 00:32:04.942046#UP57RxE",
    "operation" : "getBill",
    "tableNumber" : "12",
}

Q. Як ресторану повідомити Expirenza про нове замовлення, як передати згенерований billId до Expirenza?

A. Наразі немає готового callback (він скоро буде) через який ресторан може повідомити Expirenza про нове замовлення.

Зараз Expirenza сама опитує ресторан і отримує від ресторану billId.

Приклад:

Гість ресторану робить замовлення -> замовлення вносять у POS-систему

-> гість ресторану поїв і сканує QR для оплати замовлення -> Expirenza дізнається про billId у момент сканування QR.

У випадку billId це QR на пречеку. У випадку tableNumber QR на столі.

Відповідь обробки операції необхідно надіслати в наступному вигляді:

Payload example: /callback/getBill
JSON
{
  "errorCode": "BILL_NOT_FOUND",
  "errorMessage": "Not found bills by table number 7",
  "orders": [
    {
      "billId": "7A051331-1C99-4DD2-9543-1585A4E21DCA",
      "bonusSum": 60.85,
      "created": "yyyy.MM.dd HH:mm:ss",
      "discounts": {},
      "guests": [
        {
          "dishes": [
            {
              "category": "Кухня",
              "categoryId": "18afdzgu53a",
              "checkNumber": "string",
              "count": 1.3,
              "dishId": "string",
              "linkedTo": "string",
              "name": "Шаурма царська",
              "orderNumber": 12365,
              "positionId": "string",
              "sum": 34.56,
              "taxCategory": "налоги",
              "taxCategoryId": "18afdzgu534",
              "type": "modifier"
            }
          ],
          "name": "Гость 1"
        }
      ],
      "isBanquetOrder": true,
      "isDelivery": true,
      "orderNumber": 256,
      "paymentType": "string",
      "pricingTime": "string",
      "rawSum": 0,
      "rootBillId": "string",
      "splitAvailable": true,
      "state": "string",
      "tableId": "qc7-sdv9",
      "totalSum": 123.35,
      "waiter": "string",
      "waiterId": "string"
    }
  ],
  "rID": "2021-04-01 09:39:06.021078#BpOI0gO",
  "state": "FAIL",
  "substate": "string",
  "tableNumber": 9
}

Таблиця можливих статусів.

❗❗ Для стану FAIL наявність суб-статусу є обов'язковим, суб-статус також не має бути = null.

Це потрібно для правильної комунікації із клієнтами ресторану.

Приклад: Замовлення не було знайдено, але не передано суб-статус - ORDER_NOT_FOUND. Клієнт бачить на боці Expirenza невідому помилку, замість помилки "Рахунок на столику не знайдено".

statesubstateDescription

SUCCESS

-

Рахунок знайдено

FAIL

TABLE_NOT_FOUND

Стіл переданий у пошук не існує в ресторані

FAIL

ORDER_NOT_FOUND

Рахунок на столику не знайдено

Last updated