Замовлення в меню

Операція дозволяє зробити замовлення самостійно в меню (без виклику офіціанта, або з номера у готелі)

Створення замовлення

Створення та оплата замовлення в меню

Схема роботи команди createOrderOnTable

  1. Перевірка чи вже існує подібне замовлення, у разі якщо це замовлення на якомусь з етапів було відхилене, або чи вже існує декілька подібних замовлень (що є результатом розділення замовлення за місцями оплати).

  2. Якщо замовлення ще не існує -> перевіряємо наявність блюд-> якщо блюд немає -> отримуємо помилку.

  3. Якщо замовлення ще не існує -> перевіряємо наявність блюд-> якщо наявність блюд підтверджується -> створюємо замовлення.

  4. Якщо замовлення створено або існувало(и) -> намагаємось роздрукувати нероздруковані бігунки.

  5. Якщо замовлення має статус "New" або "Bill" - намагаємось сплатити його.

Expirenza приймає наступні стани(state) рахунку:

  • NEW - Замовлення створено, ПреЧек не роздруковано

  • BILL- Замовлення створено, ПреЧек роздруковано

  • PAYED-Замовлення сплачене

Операції getBill та payBill не використовуються

Опис параметрів запиту createOrderOnTable

Приклад запиту команди createOrderOnTable
Name
Type
Required
Description

operation

String

✔️

Назва команди

rID

String

✔️

Ідентифікатор запиту

externalId

String

✔️

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

originName

String

✔️

Ідентифікатор зовнішньої системи

tableId

String

✔️

Ідентифікатор столу

items

[object]

✔️

Блюда

id

String

Ідентифікатор

quantity

Integer

Кількість

modifiers

[object]

Модифікатори

id

String

✔️

Ідентифікатор модифікатору

groupId

String

Ідентифікатор групи модифікатору, якщо модифікатору має групу

quantity

Integer

✔️

Кількість модифікаторів

fiscalData

[object]

Дані для фіксального чеку

key

String

✔️

value

String

✔️

Опис параметрів відповіді createOrderOnTable

Приклад відповіді команди createOrderOnTable
Name
Type
Required
Description

rID

string

✔️

Ідентифікатор

запиту

result

object

✔️

none

success

boolean

✔️

Ознака успіху

stage

string

✔️

Можуть бути стани: STARTED,CHECKED,CREATED,

PRINTED,PAYED,UNKNOWN_ERROR

paySubstate

string

Під-статус з процесу оплати

errorMessage

string

Сповіщення про помилку

rootOrder

object

✔️

Інформація про початкове замовлення

orderId

string

✔️

Ід замовлення

orderNumber

integer

✔️

Номер

resultSum

number

✔️

Сума замовлення

orderStatus

string

✔️

Статус

tableNumber

integer

✔️

Номер столу

waiterId

string

✔️

Ід офіціанта

waiter

string

✔️

Ім'я офіціанта

ordersSummary

[object]

✔️

Інфо о замовленнях, отриманих у результаті оплати

orderId

string

✔️

ід

orderNumber

integer

✔️

Номер

resultSum

integer

✔️

Сума

orderStatus

string

✔️

Статус

closed

string

Дата закриття

tableNumber

integer

✔️

Номер столу

waiterId

string

✔️

Ід офіціанта

waiter

string

✔️

Ім'я офіціанта

guests

[object]

✔️

Деталіровка

name

string

✔️

Ім'я гостя

dishes

[object]

✔️

Позиції замовлення

categoryId

string

✔️

Ід категорії

category

string

✔️

Категорія

name

string

✔️

Найменування блюда

count

integer

✔️

Кількість

sum

integer

✔️

Сума

orderNumber

integer

✔️

Номер замовлення

type

string

✔️

Тип блюда

dishId

string

✔️

Код блюда


Перевірка наявності блюд

Дана команда потрібна для попередньої перевірки наявності блюд у POS-системі, перед створенням інвойсу.

Приклад: Блюдо за якихось причин (як приклад: у POS-ситемі блюдо знаходиться у stop-list) не доступне до замовлення, виключити ситуацію коли гість закладу оплачує замовлення, а ресторан не може приготувати дану страву.

Логіка роботи команди checkProductsRestrictions

  1. Якщо в позиції є modifiers, то визначаємо їх загальну кількість.

    1. Кількість = кількість модифікаторів у позиції * кількість страв, до якого прив'язан modifiers

  2. Перевіряємо доступність блюд для замовлення і записуємо недостатню кількість у exceedQuantity

  3. Якщо exceedQuantity = 0, то available = true.

  4. Якщо exceedQuantity > 0, то available = false.

Опис команди - checkProductsRestrictions

Приклад запиту команди checkProductsRestrictions
Name
Type
Required
Description

rID

string

✔️

Код запиту

items

[object]

✔️

none

id

string

✔️

Код блюда

quantity

integer

✔️

Кількість

modifiers

[object]

Модифікатори

id

string

✔️

Код блюда

quantity

integer

✔️

Кількість

Опис параметрів відповіді checkProductsRestrictions

Приклад відповіді команди checkProductsRestrictions
Name
Type
Required
Description

result

object

✔️

none

rID

string

✔️

Ідентификатор запиту

checkResult

string

✔️

Результат перевірки . Можливі значення описано тут.

itemResults

[object]

✔️

none

available

boolean

✔️

Ознака доступності

exceedQuantity

integer

✔️

Недостатня кількість

id

string

✔️

Код продукту (блюда або модифікатора)

name

string

✔️

Найменування продукту


Last updated