Замовлення в меню
Операція дозволяє зробити замовлення самостійно в меню (без виклику офіціанта, або з номера у готелі)
Last updated
Операція дозволяє зробити замовлення самостійно в меню (без виклику офіціанта, або з номера у готелі)
Last updated
Схема роботи команди
createOrderOnTable
Перевірка чи вже існує подібне замовлення, у разі якщо це замовлення на якомусь з етапів було відхилене, або чи вже існує декілька подібних замовлень (що є результатом розділення замовлення за місцями оплати).
Якщо замовлення ще не існує -> перевіряємо наявність блюд-> якщо блюд немає -> отримуємо помилку.
Якщо замовлення ще не існує -> перевіряємо наявність блюд-> якщо наявність блюд підтверджується -> створюємо замовлення.
Якщо замовлення створено або існувало(и) -> намагаємось роздрукувати нероздруковані .
Якщо замовлення має статус "New
" або "Bill
" - намагаємось сплатити його.
Якщо замовлення мають id від rootOrder, що виник у результаті розділення після попередньої спроби оплати, то спроба оплатити замовлення буде проходити через нього.
Expirenza приймає наступні стани рахунку:
NEW
- Замовлення створено, ПреЧек не роздруковано
BILL
- Замовлення створено, ПреЧек роздруковано
PAYED
Операції getBill
та payBill
не використовуються
Опис параметрів запиту
createOrderOnTable
Опис параметрів відповіді
createOrderOnTable
Дана команда потрібна для попередньої перевірки наявності блюд у POS-системі, перед створенням інвойсу.
Приклад: Блюдо за якихось причин (як приклад: у POS-ситемі блюдо знаходиться у stop-list) не доступне до замовлення, виключити ситуацію коли гість закладу оплачує замовлення, а ресторан не може приготувати дану страву.
Логіка роботи команди checkProductsRestrictions
Якщо в позиції є modifiers, то визначаємо їх загальну кількість.
Кількість = кількість модифікаторів у позиції * кількість страв, до якого прив'язан modifiers
Перевіряємо доступність блюд для замовлення і записуємо недостатню кількість у exceedQuantity
Якщо exceedQuantity = 0, то available = true.
Якщо exceedQuantity > 0, то available = false.
Опис команди - checkProductsRestrictions
Опис параметрів відповіді checkProductsRestrictions
Name | Type | Required | Description |
---|---|---|---|
Name | Type | Required | Description |
---|---|---|---|
Name | Type | Required | Description |
---|---|---|---|
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
✔️
rID
string
✔️
Ідентифікатор
запиту
result
object
✔️
none
success
boolean
✔️
Ознака успіху
stage
string
✔️
Стадія
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
✔️
Код блюда
rID
string
✔️
Код запиту
items
[object]
✔️
none
id
string
✔️
Код блюда
quantity
integer
✔️
Кількість
modifiers
[object]
❌
Модифікатори
id
string
✔️
Код блюда
quantity
integer
✔️
Кількість
result
object
✔️
none
rID
string
✔️
Ідентификатор запиту
checkResult
string
✔️
Результат перевірки . Можливі значення описано тут.
itemResults
[object]
✔️
none
available
boolean
✔️
Ознака доступності
exceedQuantity
integer
✔️
Недостатня кількість
id
string
✔️
Код продукту (блюда або модифікатора)
name
string
✔️
Найменування продукту