☰ Μενού · Εστιατόρια και καφέ
Οδηγοί

Εστιατόρια και καφέ

Τρία πράγματα που μπορεί να κάνει το POS μιας επιχείρησης με το Loyaltyfy: να κρατά συγχρονισμένο το QR μενού, να δέχεται παραγγελίες από τα τραπέζια και να τρέχει το πρόγραμμα επιβράβευσης στο ταμείο.

Συνήθως το POS είναι η πηγή αλήθειας για τις τιμές και για ό,τι έχει εξαντληθεί. Δώστε σε κάθε πιάτο το SKU σας στο external_id και αναφερθείτε στα πιάτα με αυτό το SKU· δεν χρειάζεται ποτέ να αποθηκεύετε τα δικά μας id.

  1. 1
    Διαβάστε τι υπάρχει

    Το GET /v1/menu επιστρέφει κατηγορίες, πιάτα και τροποποιητές σε όλες τις γλώσσες. Προσθέστε ?lang=en για απλά strings σε μία γλώσσα.

  2. 2
    Δημιουργήστε ό,τι λείπει

    POST /v1/menu/items με category (id κατηγορίας ή τον δικό σας κωδικό κατηγορίας· ένας άγνωστος κωδικός δημιουργεί την κατηγορία), external_id, name σε μία ή περισσότερες γλώσσες και price. Αν στείλετε ξανά το ίδιο external_id, επιστρέφεται το υπάρχον πιάτο.

  3. 3
    Στείλτε τις αλλαγές

    Σε κάθε αλλαγή, ή κάθε λίγα λεπτά, στείλτε POST /v1/menu/items/bulk με τιμές και διαθεσιμότητα. Έως 500 πιάτα ανά κλήση· τα άγνωστα SKU επιστρέφονται στο not_found.

curl
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 }
    ]
  }'
Απάντηση · 200
{
  "object": "menu_bulk_result",
  "updated": ["1001", "2040"],
  "unchanged": [],
  "not_found": ["3017"],
  "failed": []
}

Λίστα εξαντλημένων: με available: false το πιάτο μένει ορατό με την ένδειξη «εξαντλήθηκε» και χωρίς κουμπί παραγγελίας· με visible: false κρύβεται. Οι τροποποιητές έχουν δικό τους διακόπτη, οπότε μπορείτε να απενεργοποιήσετε το γάλα βρώμης χωρίς να απενεργοποιήσετε τον καφέ:

curl
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 }'
Φωτογραφίες, περιγραφές και μεταφράσεις συνήθως τις επεξεργάζεται η επιχείρηση στον επεξεργαστή μενού του Loyaltyfy. Συγχρονίζετε μόνο ό,τι ανήκει πραγματικά στο POS (τιμές, διαθεσιμότητα, ίσως ονόματα), ώστε τα δύο συστήματα να μην αντικαθιστούν το ένα τις αλλαγές του άλλου.

Παραγγελίες από το τραπέζι

Όταν οι παραγγελίες είναι ενεργοποιημένες (Μενού → Παραγγελίες στον πίνακα ελέγχου), οι πελάτες που σαρώνουν το QR του τραπεζιού μπορούν να στείλουν το καλάθι τους στην επιχείρηση. Κάθε τραπέζι έχει δικό του σύνδεσμο με τον αριθμό του τραπεζιού:

curl
https://loyaltyfy.io/m/your-venue?table=12

Τιμολογούμε κάθε παραγγελία από τη δική μας πλευρά με βάση το τρέχον μενού, οπότε το POS μπορεί να εμπιστεύεται τα ποσά. Παραγγελίες για πιάτο ή τροποποιητή που είναι στη λίστα εξαντλημένων απορρίπτονται πριν φτάσουν σε εσάς.

  1. 1
    Λάβετε νέες παραγγελίες

    Εγγραφείτε στο webhook order.created ή καλείτε GET /v1/orders?status=new κάθε 10 με 15 δευτερόλεπτα.

  2. 2
    Αποδεχτείτε

    Δημιουργήστε την παραγγελία στο POS και μετά καλέστε POST /v1/orders/{id}/accept με το δικό σας id παραγγελίας ως external_id. Χρησιμοποιήστε το external_id κάθε γραμμής για να αντιστοιχίσετε τα SKU σας.

  3. 3
    Προχωρήστε την

    PATCH /v1/orders/{id} με preparing, ready, served, completed. Ή POST /v1/orders/{id}/reject με αιτιολογία, αν η κουζίνα δεν μπορεί να την αναλάβει.

curl
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
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 με τους κωδικούς σας, ώστε η επιχείρηση να βλέπει ποια προϊόντα αγοράζουν οι πελάτες.

Ερωτήσεις για μια σύνδεση: api@loyaltyfy.io. Απαντάμε μέσα σε μία εργάσιμη ημέρα.