☰ Меню · Ресторани та кафе
Ресторани та кафе
Три речі, які POS закладу може робити з Loyaltyfy: синхронізувати QR-меню, приймати замовлення зі столів і вести лояльність на касі.
Синхронізація меню
Зазвичай саме POS є джерелом правди щодо цін і того, чого немає в наявності. Передайте для кожної страви ваш артикул у external_id і далі звертайтеся до страв за ним. Зберігати наші id не потрібно.
- 1Прочитайте, що вже є
GET /v1/menuповертає категорії, страви та модифікатори всіма мовами. Додайте?lang=en, щоб отримати звичайні рядки однією мовою. - 2Створіть те, чого бракує
POST /v1/menu/itemsзcategory(id категорії або ваш код категорії; невідомий код створює категорію),external_id,nameоднією чи кількома мовами таprice. Повторний запит із тим самимexternal_idповертає наявну страву. - 3Надсилайте зміни
Після кожної зміни або раз на кілька хвилин надсилайте
POST /v1/menu/items/bulkіз цінами та наявністю. До 500 страв за запит. Невідомі артикули повертаються вnot_found.
curl https://loyaltyfy.io/api/v1/menu/items/bulk \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "item": "1001", "price": 4800 },
{ "item": "2040", "available": false },
{ "item": "3017", "price": 9900, "old_price": 12000 }
]
}'{
"object": "menu_bulk_result",
"updated": ["1001", "2040"],
"unchanged": [],
"not_found": ["3017"],
"failed": []
}Стоп-лист: available: false залишає страву видимою з позначкою «немає в наявності» та прибирає кнопку замовлення, visible: false приховує її. Модифікатори мають власний перемикач, тож можна вимкнути вівсяне молоко, не вимикаючи каву:
curl -X PATCH https://loyaltyfy.io/api/v1/menu/option_values/MOD-OAT \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{ "available": false }'Замовлення зі столу
Якщо замовлення ввімкнено (Меню → Замовлення у кабінеті), гості, які сканують QR на столі, можуть надіслати свій кошик закладу. Кожен стіл має власне посилання з номером столу:
https://loyaltyfy.io/m/your-venue?table=12Ми розраховуємо вартість кожного замовлення на своєму боці за актуальним меню, тому POS може довіряти сумам. Замовлення зі стравою чи модифікатором зі стоп-листа відхиляються ще до того, як потраплять до вас.
- 1Отримуйте нові замовлення
Підпишіться на вебхук
order.createdабо опитуйтеGET /v1/orders?status=newкожні 10-15 секунд. - 2Прийміть замовлення
Створіть замовлення в POS, потім викличте
POST /v1/orders/{id}/acceptз вашим id замовлення вexternal_id. Для зіставлення з вашими артикулами використовуйтеexternal_idкожної позиції. - 3Ведіть його далі
PATCH /v1/orders/{id}зі статусамиpreparing,ready,served,completed. АбоPOST /v1/orders/{id}/rejectіз причиною, якщо кухня не може його прийняти.
curl "https://loyaltyfy.io/api/v1/orders?status=new" \
-H "Authorization: Bearer sk_test_..."{
"object": "order",
"id": "0c69a81c-0fbc-4333-b26c-789566b9bea4",
"number": 10,
"status": "new",
"table": "7",
"note": "No onions, please",
"currency": "MDL",
"subtotal": 14000,
"item_count": 2,
"items": [
{
"item_id": "a48343bd-9f6e-424a-b003-fe790617f4d6",
"external_id": "2040",
"name": "Zeamă",
"quantity": 2,
"unit_price": 7000,
"total": 14000,
"options": []
}
],
"external_id": null,
"reject_reason": null,
"guest_language": "en",
"source": "qr_menu",
"livemode": true,
"created_at": "2026-10-06T18:14:48.233+00:00",
"accepted_at": null,
"completed_at": null,
"updated_at": "2026-10-06T18:14:48.233+00:00"
}curl -X POST https://loyaltyfy.io/api/v1/orders/0c69a81c-0fbc-4333-b26c-789566b9bea4/accept \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{ "external_id": "POS-ORDER-55821" }'Статуси змінюються лише вперед: new → accepted → preparing → ready → served → completed. Зі статусу new замовлення може також перейти в rejected, а будь-яке відкрите замовлення можна перевести в cancelled. Кроки можна пропускати (наприклад, одразу з accepted у completed). Спроба повернутися назад отримає 409 invalid_status_transition. Заклади без інтеграції з POS керують тими самими статусами на екрані Замовлення, тож цілком нормально, якщо ваш POS лише приймає та завершує замовлення.
Лояльність на касі кафе
Так само, як у будь-якій інтеграції з POS: шукайте гостя під час скану картки, надсилайте чек після оплати. У кав'ярнях зі штамп-карткою («кожна 6-та кава безкоштовно») штамп нараховується за чек. Передавайте line_items з вашими артикулами, щоб заклад бачив, що купують гості.