Abrufprozess für Artikellisten
Der Artikellisten-Editor kann die aktuelle Artikelliste von einer Restaurantkasse anfordern. Dies ist ein asynchroner Prozess: Der Browser fordert das Backend auf, einen Abrufbefehl zu erstellen, die Restaurantintegration verarbeitet diesen Befehl und das Backend führt die Antwort in die ausgewählte Konfiguration zusammen.
::: note Verwendung: Admin → Artikellisten-Editor → Konfiguration abrufen. :::
Modus und Ergebnis
Wählen Sie Aktualisieren für Ergänzungen/Änderungen oder Ersetzen für die Übernahme als Artikelliste. Sichern Sie vorher eine Konfigurationsversion. Ersetzen verlangt Bestätigung und kann Artikel entfernen.
Wählen Sie den Quellstandort und starten Sie den Abruf. Ein eingereihter Befehl bestätigt noch keine Menüantwort. Prüfen Sie den Ablauf unter Nachrichten, danach Zusammenfassung und betroffene Menüseiten. Prüfen Sie bei Fehlern API-Schlüssel und Kassenverbindung vor einer Wiederholung.
Prozess
- Wählen Sie den Restaurantstandort in der Komponente Konfiguration abrufen aus.
- Klicken Sie auf Konfiguration abrufen.
- Das Backend erstellt einen
FETCH_REMOTE_MENU-Befehl für diesen Standort und die aktuelle Konfiguration. - Die Restaurantintegration empfängt den Befehl als bestellähnliche Nachricht mit
exportMainDataauftruegesetzt. - Die Restaurantintegration ruft Stammdaten von der Kasse ab.
- Die Integration sendet die abgerufenen JSON-Daten an den Befehlsantwort-Endpunkt des Backends zurück.
- Das Backend konvertiert die Antwort in Referenzdaten, führt die Artikel in die ausgewählte Konfiguration zusammen und benachrichtigt offene Sitzungen über die geänderte Konfiguration.
An die Restaurantintegration gesendeter Befehl
Der Abrufbefehl wird der Integration als externe Bestellung mit exportMainData auf true gesetzt zur Verfügung gestellt.
{
"number": 12345,
"orderTime": "12:00:00",
"state": "PLACED",
"exportMainData": true
}Erwartetes Antwortformat
Die Integration sollte eine JSON-Antwort mit Stammdaten senden, die items, paymentTypes und optional users und timestamp enthält.
{
"items": [
{
"itemNumber": "101",
"name": "Tomato Soup",
"numberOfItems": 1,
"price": 6.5,
"station": "KITCHEN",
"displayName": "Tomato soup with basil",
"itemGroup": 10
}
],
"paymentTypes": [
{
"id": "1",
"name": "Cash"
}
],
"users": [
{
"number": "1",
"name": "Service",
"password": "1234"
}
],
"timestamp": "2026-05-25T12:00:00"
}Antwortfelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
items | Ja | Array von Kassenartikeln. |
items[].itemNumber | Ja | Kassenartikelnummer. Wird zur internen Artikelnummer. |
items[].name | Ja | Artikelname. |
items[].displayName | Nein | Anzeigetext von der Kasse. Wird zur internen Artikelbeschreibung. |
items[].price | Nein | Dezimaler Artikelpreis, mit Punkt als Dezimaltrennzeichen. |
items[].numberOfItems | Nein | Mengenfaktor für den Artikel. Standardmäßig 1, wenn nicht angegeben. |
items[].station | Nein | Kassenstation. Wird zur internen Druckergruppe. |
items[].itemGroup | Nein | Wird vom Antwortparser akzeptiert, aber derzeit nicht auf den internen Artikel abgebildet. |
paymentTypes | Ja | Array von Zahlungsartenobjekten. |
paymentTypes[].id | Ja | Kassenkennung der Zahlungsart. |
paymentTypes[].name | Ja | Name der Zahlungsart. Das Backend speichert Zahlungsarten als name zu id. |
users | Nein | Wird vom Antwortparser akzeptiert. Die aktuelle Artikelzusammenführung verwendet Artikel- und Zahlungsartendaten. |
timestamp | Nein | Zeitstempel von der Integration. |
WARNING
Wichtig: Aktualisieren ändert passende Artikelnummern und ergänzt neue. Ersetzen entfernt zusätzlich nicht gelieferte Artikel und deren Platzierungen auf Menüseiten. Beide Modi aktualisieren Zahlungsarten aus der Antwort.