Розділення рахунку (Split Bill)

Для розділення рахунку необхідно відокремити окремий рахунок від оригінального замовлення з блюдами яки обрав гість для оплати.

Процес розділення рахунку

Для індикації того що конкретний рахунок можна розділити, при передачі /callback/getBill параметр "splitAvailable" має містити значення true. Для коректної роботи сервісу при передачі /callback/getBill також має бути вказаний параметр "positionId": "string"

За замовчуванням для ресторану ця функціональність вимкенна.

Для її активації зверніться до аккаунт-менеджера що веде ресторан.


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

splitOrder
{
  
    "operation": "splitOrder",
    "rID": "manual16",
    "billId":"4afc3774-cc50-4e07-ad81-dd65f166244a",
    "controlSum":  1080.6,
    "positions": [
        {"id": "8e2ad560-938b-4972-ba60-8098aac99f8b", "quantity": 1},
        {"id": "c53e1948-7ffe-4dea-8e25-9e6773fa8768", "quantity": 1},
        {"id": "0e857f96-d53b-4649-bae0-0674c6d59496", "quantity": 1}
    ]
}

При створенні нового рахунку необхідно:

  1. Перенести потрібні позиції

  2. Скопіювати знижки (за наявності) в створене замовлення

  3. Скопіювати деталі оригінального замовлення:

    • Номер столу

    • Офіціант

    • Тип замовлення

У відповідь в коллбек ми очікуємо 2 рахунки (orders): 1) "Parent" - нова версія рахунку після відокремлення страв 2) Дочірній об'єкт - те що обрав юзер при розділенні рахунку.

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

Сервіс для отримання результатів розділення рахунку

post
Header parameters
restoIdstringRequired

restoId

Body
errorCodestringOptional

Код помилки, якщо операція не успішна

errorMessagestringOptional

Текст помилки, якщо операція не успішна

rIDstringOptional

Ідентифікатор запиту в системі Expirenza

Example: Look for payload example: /callback/splitOrder
statestring · enumRequired

Стан

Possible values:
substatestringOptional

Підхід. TABLE_NOT_FOUND|ORDER_NOT_FOUND

Pattern: TABLE_NOT_FOUND|ORDER_NOT_FOUND
tableNumberinteger · int32Optional

Номер столу

Responses
200

OK

No content

post
callback/splitOrder

No content

Payload example: /callback/splitOrder
F.A.Q

Q. Як відпрацьовується ситуація, коли одну і ту ж позицію забрали різні гості?

A. Хто перший забрав позицію - той і оплачує. Решта гостей отримають помилку.


Q. Чи можна поділити блюдо по 0.5 на гостя? Приклад: Один салат розділити на двох.

A. На цей час це зробити не можливо

Last updated