☰ Meniu · Restaurante și cafenele
Restaurante și cafenele
Trei lucruri pe care POS-ul unui local le poate face cu Loyaltyfy: sincronizează meniul QR, preia comenzi de la mese și rulează programul de fidelitate la casă.
Sincronizarea meniului
De obicei POS-ul este sursa de adevăr pentru prețuri și pentru ce s-a terminat. Dă fiecărui preparat SKU-ul tău în external_id, apoi adresează preparatele după acest SKU; nu trebuie să păstrezi id-urile noastre.
- 1Citește ce există
GET /v1/menuîntoarce categoriile, preparatele și modificatorii în toate limbile. Adaugă?lang=enca să primești texte simple, într-o singură limbă. - 2Creează ce lipsește
POST /v1/menu/itemscucategory(id-ul categoriei sau codul tău de categorie; un cod necunoscut creează categoria),external_id,nameîn una sau mai multe limbi șiprice. Dacă trimiți din nou acelașiexternal_id, primești preparatul existent. - 3Trimite modificările
La fiecare modificare sau la câteva minute, trimite
POST /v1/menu/items/bulkcu prețurile și disponibilitatea. Până la 500 de preparate per apel; SKU-urile necunoscute apar înnot_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": []
}Stop-list: available: false lasă preparatul vizibil, cu eticheta "epuizat", și scoate butonul de comandă; visible: false îl ascunde. Modificatorii au propriul comutator, așa că poți dezactiva laptele de ovăz fără să dezactivezi cafeaua:
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 }'Comenzi de la masă
Când comenzile sunt activate (Meniu → Comenzi în panou), oaspeții care scanează QR-ul de pe masă își pot trimite coșul către local. Fiecare masă are propriul link, cu numărul mesei:
https://loyaltyfy.io/m/your-venue?table=12Calculăm prețul fiecărei comenzi la noi, din meniul curent, așa că POS-ul se poate baza pe sume. Comenzile cu un preparat sau un modificator din stop-list sunt refuzate înainte să ajungă la tine.
- 1Primește comenzile noi
Abonează-te la webhook-ul
order.createdsau interogheazăGET /v1/orders?status=newo dată la 10 până la 15 secunde. - 2Acceptă
Creează comanda în POS, apoi apelează
POST /v1/orders/{id}/acceptcu id-ul tău de comandă înexternal_id. Foloseșteexternal_idde pe fiecare linie ca să potrivești SKU-urile tale. - 3Trece-o mai departe
PATCH /v1/orders/{id}cupreparing,ready,served,completed. SauPOST /v1/orders/{id}/rejectcu un motiv, dacă bucătăria nu o poate prelua.
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" }'Statusurile merg doar înainte: new → accepted → preparing → ready → served → completed; new poate deveni și rejected, iar orice comandă deschisă poate deveni cancelled. Pașii pot fi săriți (direct din accepted în completed este în regulă). O mutare înapoi primește 409 invalid_status_transition. Localurile fără integrare POS gestionează aceleași statusuri pe ecranul Comenzi, așa că e în regulă dacă POS-ul tău doar acceptă și finalizează comenzile.
Fidelitate la casa cafenelei
La fel ca la orice integrare POS: caută oaspetele când cardul este scanat și trimite bonul după plată. În cafenelele cu card de ștampile („a 6-a cafea gratuită”), ștampila se acordă pentru bon. Trimite line_items cu codurile tale de produs, ca localul să vadă ce cumpără oaspeții.