Selbstbedienung und Online-Bestellung (Self-Order & Pickup)
Wozu dient das?#
Das Selbstbedienungsmodul ermöglicht es Gästen, Speisen und Getränke eigenständig zu bestellen. Dies erfolgt entweder direkt am Tisch durch Scannen eines QR-Codes mit dem eigenen Smartphone (Self-Order / QR-Ordering) oder vorab von zu Hause über die Online-Abholseite (Online Pickup Ordering). Eingehende Bestellungen fließen ohne Kellner-Zwischenschritt direkt in die Küche und werden auf Abhol-Monitoren angezeigt.
Rollen#
- Gast: Scannt am Tisch den QR-Code oder ruft die Abholseite auf, wählt Produkte, Varianten und optional den Sitzplatz aus und sendet die Bestellung ab.
- Servicepersonal / Kellner: Greift bei Fehleingaben des Gastes am POS-Terminal ein (z. B. Umbuchung, Stornierung, Nachbestellung) und kassiert die Rechnungsbeträge vor Ort ab.
- Restaurant-Administrator: Generiert im Backoffice Tisch-QR-Codes, erstellt Online-Storefront-Tokens und definiert die zulässigen Bestell-Öffnungszeiten.
Voraussetzungen#
- Für Tisch-QR-Ordering: Generierte und am Tisch angebrachte QR-Codes mit gültigem Tisch-Token (
qr_token) aus dem Backoffice (→ Kapitel 21c). - Für Online-Abholung: Ein vom Administrator erstelltes Online-Storefront-Token (
OnlineOrderToken) sowie eingerichtete Öffnungszeiten (OpeningHour). - Ein aktiver Kassenbetrieb und betriebsbereite Küchenmonitore (KDS) oder Bondrucker (→ Kapitel 15 & 22).
Bildschirm für Bildschirm#
Die Kasse liefert für dieses Kapitel keine eigene Bedienoberfläche: Es gibt in diesem Frontend weder eine Gast-Seite zum Bestellen am Tisch noch einen Kunden-Abholmonitor noch einen Online-Abholshop, und im Backoffice keine Masken für Storefront-Tokens oder Öffnungszeiten. Das Modul liegt als Schnittstelle der Plattform vor (→ Kapitel 37): Speisekarte (/public/menu), Bestellung, Kunden-Abholanzeige (/public/display-board) und Online-Bestellung. Eine Gast-Seite dafür bringt Ihr Betreuer oder der Anbieter einer Bestell-App mit.
Was die Kasse in diesem Zusammenhang selbst zeigt:
- Tisch-QR-Codes erzeugen und drucken Sie im Backoffice unter QR-CODES (→ Kapitel 21c).
- Die Bezahlseite für Gäste am Smartphone (Rechnung bezahlen mit Trinkgeld) beschreibt Kapitel 14d.
- Eine Bestellung des Gastes erscheint am Terminal wie jede andere (→ Kapitel 13) und in der Küche (→ Kapitel 15). Die Bedienung am Terminal ist unverändert.
Schritt für Schritt#
Teil A: Tisch-Ordering per QR-Code (Gast-Ablauf)#
1. QR-Code am Tisch scannen und Sitzplatz wählen#
- Der Gast scannt den QR-Code am Tisch mit der Smartphone-Kamera.
- Die Selbstbedienungsseite öffnet sich im Browser. Das System erkennt automatisch Tisch und Standort.
- Bei Gruppen-Tischen kann der Gast optional seine Sitzplatznummer eingeben (z. B. Sitzplatz 2).
2. Speisen auswählen und Bestellung absenden#
- Der Gast wählt Gerichte, Varianten (z. B.
groß) und Extras aus. - Der Gast öffnet den Warenkorb, prüft die Zusammenstellung und sendet die Bestellung ab (in der Gast-Seite des Anbieters, nicht in der Kasse).
- Das System prüft die Gültigkeit des Tokens und legt die Bestellung mit der Quelle
order_source = "self_order"an. - Die Bestellung wechselt automatisch in den Status gesendet (
SENT) und erscheint ohne Kellner-Freigabe direkt auf dem KDS in der Küche.
3. Status auf dem Kunden-Display verfolgen#
- Die Tages-Bestellnummer des Gastes (z. B. Nr. 08) erscheint auf dem Abholmonitor unter In Zubereitung.
- Sobald die Küche die Speisen fertigstellt, rückt die Nummer auf Abholbereit vor.
- Der Gast holt seine Bestellung an der Ausgabetheke ab oder bekommt sie vom Service an den Tisch serviert.
Teil B: Online-Abholbestellung (Home Pickup Ablauf)#
1. Speisekarte aufrufen und Öffnungszeiten prüfen#
- Der Kunde ruft den Online-Shop des Restaurants auf.
- Das System prüft das Storefront-Token und die hinterlegten Öffnungszeiten (
OpeningHour).
2. Abholbestellung aufgeben#
- Der Kunde stellt seine Speisen zusammen und gibt Name sowie Telefonnummer ein.
- Das Backend führt eine Echtzeit-Bestandsprüfung mit Datenbank-Sperre durch (
with_for_update) und zieht die Zutaten ab. - Die Bestellung wird mit
order_source = "online"erfasst und der Küche übermittelt.
Teil C: Personal-Intervention am POS-Terminal#
1. Kellner-Eingriff bei Gast-Fehlbestellungen#
- Vertippt sich ein Gast beim QR-Ordering (z. B. falsches Gericht bestellt) oder möchte den Tisch wechseln, öffnet die Servicekraft den Tisch am POS-Terminal.
- Self-Order-Bons sind am POS als solche gekennzeichnet. Die Servicekraft kann Positionen stornieren (Bestellung stornieren), Artikel umbuchen oder zusätzliche Artikel manuell ergänzen (→ Kapitel 13).
2. Abrechnung und Bezahlung#
- Haben die Gäste nicht online vorab bezahlt, schließt das Servicepersonal die Bestellung am Tisch oder an der Kasse mit der gewünschten Zahlungsart (Bar, Karte, Gutschein) ab (→ Kapitel 14).
TODO: unverified — Eine direkte Online-Kreditkartenzahlung im Smartphone-Browser des Gastes während des QR-Ordering-Vorgangs erfordert die Integration eines externen Zahlungsdienstleisters (Payment Gateway), die im Grundsystem vorbereitet, aber projektspezifisch zu konfigurieren ist.
Was passiert im Hintergrund#
Bei Selbstbedienungs-Bestellungen authentifiziert das System Anfragen über kryptografische Tisch-Tokens (Table.qr_token) oder Storefront-Tokens (OnlineOrderToken). QR-Bestellungen überspringen den Entwurfsmodus (draft) und schalten direkt auf SENT. Zur Vermeidung von Missbrauch gilt ein automatisches Schutz-Limit (Rate Limiting): Pro Tisch bzw. Client-IP sind maximal 3 gleichzeitig aktive, unbezahlte Bestellungen erlaubt (429 Too Many Requests). Die Anzeige auf dem Kundendisplay verwendet tagesbezogene fortlaufende Nummern (display_number), die jede Nacht um 00:00 Uhr zurückgesetzt werden und rechtlich strikt von den gap-freien TSE-Abschlussnummern getrennt sind.
Häufige Probleme#
1. Table not found / Token not found#
- Ursache: Der gescannte QR-Code enthält ein ungültiges oder abgelaufenes Tisch-Token, zum Beispiel nach einer Neu-Generierung im Backoffice.
- Lösung: Drucken Sie im Backoffice unter QR-CODES die aktuellen QR-Code-Blätter neu aus und ersetzen Sie den Aufkleber am Tisch (→ Kapitel 21c).
2. Too many active orders for this table / Too many active orders#
- Ursache: Es liegen bereits 3 offene, unbezahlte Bestellungen für diesen Tisch oder diese IP-Adresse vor. Das System blockiert weitere Bestellungen zum Schutz vor Missbrauch.
- Lösung: Kassieren oder schließen Sie die offenen Alt-Bestellungen des Tisches am POS-Terminal ab (→ Kapitel 14).
3. Seat {seat} is not valid for this table (1-{table.capacity})#
- Ursache: Der Gast hat beim QR-Ordering eine Sitzplatznummer eingegeben, die höher ist als die im Backoffice eingetragene Kapazität des Tisches.
- Lösung: Korrigieren Sie im Backoffice unter RAUMPLAN-EDITOR die Sitzplatz-Kapazität des Tisches (→ Kapitel 21b).
4. No open order found for this table / No open bill found for this table#
- Ursache: Der Service hat versucht, eine Zuzahlung oder Stornierung für einen Tisch aufzurufen, auf dem aktuell keine aktive Bestellung existiert.
- Lösung: Prüfen Sie am POS-Terminal, ob der Tisch korrekt ausgewählt wurde.
5. Cart is empty / Cannot send an empty order#
- Ursache: Der Gast hat die Bestellung abgesendet, ohne dass sich Artikel im digitalen Warenkorb befanden.
- Lösung: Wählen Sie mindestens einen Artikel aus der digitalen Speisekarte aus.
6. Restaurant is closed#
- Ursache: Eine Online-Abholbestellung wird außerhalb der im Backoffice hinterlegten Öffnungszeiten (
OpeningHour) aufgerufen. - Lösung: Die Öffnungszeiten für Online-Bestellungen haben keine Maske in der Kasse; sie lassen sich über die Schnittstelle prüfen (→ Kapitel 37).
7. Product {product.name} is currently unavailable / Product not found in your catalog#
- Ursache: Ein im digitalen Menü angezeigter Artikel wurde im Backoffice als ausverkauft markiert oder aus dem Sortiment gelöscht.
- Lösung: Aktualisieren Sie die Produktverfügbarkeit im Backoffice unter MENÜ-EDITOR (→ Kapitel 21).
8. Forged tip_cents does not match requested preset percentage / amount_cents must cover tip_cents#
- Ursache: Bei einer Online-Zahlung stimmte der übermittelte Trinkgeldbetrag rechnerisch nicht mit der gewählten Prozentstufe überein oder war negativ.
- Lösung: Wiederholen Sie den Bezahlvorgang mit einer Standard-Trinkgeldstufe.
Grenzen#
- Selbstbedienungs-Bestellungen durchlaufen keine Kellner-Freigabe, sondern gehen direkt in die Küche. Stornierungen von Gast-Fehlbestellungen müssen vom Personal am POS durchgeführt werden.
- Die Eingabe von Sitzplatznummern (
seat_number) dient der Zuordnung auf dem Bon, begründet aber noch keine automatische Rechnungsaufteilung pro Gast beim Bezahlen. - Ein öffentliches Kundendisplay zeigt aus Datenschutzgründen ausschließlich Bestellnummern und niemals Gastnamen oder Bestellinhalte an.
Dieses Kapitel gehört zum Merkuron-Handbuch für Inhaber und Servicepersonal.