☰ Menü · Restoran ve kafeler
Restoran ve kafeler
İşletmenin POS sisteminin Loyaltyfy ile yapabileceği üç şey: QR menüyü senkron tutmak, masadan sipariş almak ve kasada sadakat programını çalıştırmak.
Menü senkronizasyonu
Fiyatlar ve tükenen ürünler için genellikle esas kaynak POS'tur. Her ürüne external_id alanında kendi stok kodunuzu (SKU) verin ve ürünlere bu kodla erişin. Bizim id'lerimizi saklamanız gerekmez.
- 1Mevcut menüyü okuyun
GET /v1/menutüm dillerde kategorileri, ürünleri ve opsiyonları döndürür. Tek dilde düz metin almak için?lang=enekleyin. - 2Eksikleri oluşturun
POST /v1/menu/itemsisteğinicategory(kategori id'si veya kendi kategori kodunuz, bilinmeyen kod yeni kategori oluşturur),external_id, bir veya daha fazla dildenamevepriceile gönderin. Aynıexternal_idtekrar gönderilirse mevcut ürün döner. - 3Değişiklikleri gönderin
Her değişiklikte veya birkaç dakikada bir, fiyat ve stok durumuyla
POST /v1/menu/items/bulkgönderin. İstek başına en fazla 500 ürün. Bilinmeyen SKU'larnot_foundiçinde döner.
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": []
}Tükenenler listesi: available: false ürünü "tükendi" etiketiyle görünür bırakır ve sipariş butonunu kaldırır. visible: false ürünü gizler. Opsiyonların kendi anahtarı vardır, böylece kahveyi kapatmadan yulaf sütünü kapatabilirsiniz:
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 }'Masadan siparişler
Sipariş özelliği açıkken (panelde Menü → Siparişler) masadaki QR'ı okutan misafirler sepetlerini işletmeye gönderebilir. Her masanın, masa numarasını içeren kendi bağlantısı vardır:
https://loyaltyfy.io/m/your-venue?table=12Her siparişin tutarını güncel menüye göre kendi tarafımızda hesaplarız, bu yüzden POS tutarlara güvenebilir. Tükenenler listesindeki bir ürün veya opsiyon içeren siparişler size ulaşmadan reddedilir.
- 1Yeni siparişleri alın
order.createdwebhook'una abone olun veya 10 ila 15 saniyede birGET /v1/orders?status=newile sorgulayın. - 2Kabul edin
Siparişi POS'ta oluşturun, ardından kendi sipariş numaranızı
external_idolarak vererekPOST /v1/orders/{id}/acceptçağırın. SKU'larınızla eşleştirmek için her satırınexternal_iddeğerini kullanın. - 3İlerletin
preparing,ready,served,completeddeğerleriylePATCH /v1/orders/{id}gönderin. Mutfak siparişi alamıyorsa gerekçeyle birliktePOST /v1/orders/{id}/rejectçağırın.
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" }'Durumlar yalnızca ileri gider: new → accepted → preparing → ready → served → completed. new ayrıca rejected olabilir, açık her sipariş cancelled olabilir. Adım atlanabilir (accepted durumundan doğrudan completed durumuna geçmek sorun değil). Geriye doğru geçiş 409 invalid_status_transition alır. POS entegrasyonu olmayan işletmeler aynı durumları Siparişler ekranından yönetir, bu yüzden POS'unuzun yalnızca kabul etmesi ve tamamlaması yeterlidir.
Kafe kasasında sadakat
Her POS entegrasyonunda olduğu gibi: kart okutulunca misafiri bulun, ödeme alınınca fişi gönderin. Damga kartlı kafelerde ("her 6. kahve bedava") damgayı fiş kazandırır. İşletme misafirlerin hangi ürünleri aldığını görsün diye ürün kodlarınızla birlikte line_items gönderin.