Кешування рахунків

Кешування рахунків пидвищує швидкодію в отриманні рахунку для гостя. Expirenza віддає рахунок з "власного кеша", замість того щоб робити запити до POS.

Процес виглядає так:

circle-info
  1. POS система раз в 5 секунд відправляє інформацію з замовленнями що зараз відкриті в POS на cервер Expirenza:

Короткий перелік всіх замовлень

Повна інфо про замовлення що змінились з моменту останнього оновлення

  1. Сервер може запитати у ПОС детальне інфо про будь яке з замовлень у будь який момент.

Пос система має відправити їх повне інфо з наступним вебхуком ORDERS_CACHEarrow-up-right

  1. Про закриті замовлення ПОС система сповіщає сервер окермим вебхукомarrow-up-right


circle-exclamation
circle-exclamation

АПІ для виклику кешування рахунків(ordersCache)

post
Header parameters
restoIdstringRequired

Restaurant ID

Body
webhookTypestringRequiredExample: ORDERS_CACHE
eventTimestring · date-timeRequired

Timestamp in UTC

Example: 2024-09-30T13:47:57Z
Responses
chevron-right
200

Request received and processed successfully

No content

post
//api.shaketopay.com.ua/callback/webhook
200

Request received and processed successfully

No content

chevron-rightPayload example /callback/webhookhashtag
chevron-rightРоз'яснення і деталі.hashtag

Вебхук має 2 додаткових поля:

eventTime” - дата формування івенту в UTC таймзоні "actualOrders " - поточні активні замовлення в системі "orderId" - id замовлення "revision" - long версія замовлення, інкрементальне значення, дає зрозуміти системі поточну “версію замовлення”. Значення має збільшуватись при кожній зміні замовлення. Обмежень на крок або значення немає. Якщо в ПОС відсутне поняття версії, то можна віддавати у якості значення дату останньої зміни замовлення в мілісекундах "changedOrders" - Список замовлень що змінились з моменту останньої відправки вебхука "orderInfo" - оновленний стан про замовлення


Команда ordersCacheUpdate

Команда надсилається з сервера Expirenza в вебсокет, сервер надсилає перелік замовлень по яким треба обов'язково передати розгорнуту інформацію в при наступному виклику /calback/webhook (Той що ORDERS_CACHE).

Відповідати на команду не потрібно.

Команда використовується для синхронізації з інтеграцією у випадку якщо сервер не отримав один або декілька вебхуків і ревізія замовлень які присилає інтеграція відрізняється від тих що є на сервері, сервер “просить” надіслати замовлення по яким є втрачені зміни ще раз.

Сервер надсилатиме повідомлення в такому форматі:


Вебхук фінального статусу замовлення

Структура самого замовлення не відрізняється від ORDERS_CACHE, відрізняється лише назва деяких полів.

Необхідно відправляти при отриманні фінального статуса по рахунку (Closed/Deleted) Якщо сервер не відповів 200, необхідно повторити відправку через деякий час ~1-5 хвилин.

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

post
Header parameters
restoIdstringRequired

Restaurant ID

Body
webhookTypestringRequiredExample: BILL_CLOSED
eventTimestring · date-timeRequiredExample: 2024-09-30T15:29:04.9036828Z
orderIdstringRequiredExample: 492fa768-2fb0-4b30-9f5a-db9c17db3fff
tableNumberintegerRequiredExample: 1
closeTimestringRequiredExample: 2024.09.30 18:28:59
openTimestringRequiredExample: 2024.09.30 18:27:46
orderNumberintegerRequiredExample: 133264
resultSumnumber · floatRequiredExample: 140
orderStatusstringRequiredExample: Closed
totalSumnumber · floatRequiredExample: 140
waiterIdstringRequiredExample: 0ab41df0-f4ae-4fbe-959f-ecaba7c85c85
waiterstringRequiredExample: Максимейко Наталія
isBanquetOrderbooleanRequired
isDeliverybooleanRequired
bonusSumnumber · floatRequired
splitAvailablebooleanRequired
rewardAvailablebooleanRequiredExample: true
billTimestringRequiredExample: 2024.09.30 18:28:59
paidSumnumber · floatRequiredExample: 140
discountSumnumber · floatRequired
tableIdstringRequiredExample: e6ad6ef3-bbdb-41c4-8fd3-dd0691142074
pricingTimestringOptional
versionintegerRequiredExample: 1865768
orderTypestringRequiredExample: Common
Responses
chevron-right
200

Request received and processed successfully

No content

post
//api.shaketopay.com.ua/callback/webhook
200

Request received and processed successfully

No content

chevron-rightPayload example /callback/webhookhashtag

Last updated