Przejdź do głównej zawartości

Zamawianie przy stoliku z późniejszą płatnością

Gdy klient skanuje kod QR stolika, OpenApp mapuje kod QR na lokalizację restauracji i identyfikator stolika w POS. OpenApp tworzy lub dołącza do sesji stolika, w której klienci mogą dodawać wybrane produkty.

Ten przepływ jest postpaid: klienci mogą wysłać jedną lub wiele batchy pozycji do POS podczas sesji stolika, a płatność następuje później przez Płatność rachunku postpaid. OrderSubmissionRequested nie zawiera payment w tym przepływie.

Dla zamówień prepaid w dowolnym kontekście realizacji, także przy stoliku, zobacz Zamawianie prepaid.

OpenApp pyta POS o bieżący stan stolika lub otwartego rachunku przy rozpoczęciu sesji, gdy stan musi zostać odświeżony oraz przed działaniami wpływającymi na płatność. POS zwraca bieżący stan stolika albo powód odrzucenia.

Ten diagram jest logiczny. Pomija szczegóły trybu dostarczania; model dostarczania opisuje Architektura.

Typy wiadomości:

Typ wiadomościKierunekCel
TableOrderSnapshotRequestedOpenApp -> POSZażądaj bieżącego stanu stolika POS lub otwartego rachunku.
TableOrderSnapshotResolutionResultPOS -> OpenAppZwróć ustalony stan stolika albo szczegóły odrzucenia.
OrderSubmissionRequestedOpenApp -> POSWyślij wybrane produkty postpaid z sesji stolika do zamówienia POS.
OrderSubmissionResultPOS -> OpenAppPotwierdź zaakceptowane produkty albo odrzuć je z powodów biznesowych.

Typowe powody odrzucenia to brak towaru, niewystarczający stan magazynowy, produkt wycofany z listy, zamknięte zamówienie i zmiana ceny. Zobacz Powody odrzucenia mutacji.

Zmiany zamówienia w POS

POS powinien powiadamiać OpenApp o istotnych zmianach zamówienia przy stoliku po stronie POS. Obejmuje to pozycje dodane przez kelnera, anulacje kuchni, wydane pozycje, rabaty, usunięte pozycje i zamknięcie zamówienia.

OpenApp aktualizuje sesję widoczną dla klienta i samodzielnie wyprowadza powiadomienia klienta. POS nie musi kierować powiadomień bezpośrednio do użytkowników OpenApp.

Udane TableOrderSnapshotRequested jednocześnie zwraca bieżący stan stolika i aktywuje dostarczanie push TableOrderSnapshotChanged dla tego stolika. Pierwszy snapshot musi zawierać każdą pozycję zamówienia obecną aktualnie na rachunku POS, w tym pozycje dodane przez kelnera przed skanowaniem przez klienta; OpenApp dowiaduje się o aktywności sprzed skanowania tylko z tego początkowego snapshotu. POS utrzymuje jeden strumień na stolik; kolejne żądania snapshotu są idempotentnymi odczytami. Strumień kończy się, gdy POS wyśle TableOrderSnapshotChanged z changeType=ORDER_CLOSED, po czym POS przestaje wysyłać zmiany dla stolika do czasu otwarcia nowej sesji przez nowe TableOrderSnapshotRequested.

Typ wiadomościKierunekCel
TableOrderSnapshotChangedPOS -> OpenAppPowiadom OpenApp o zmianach stanu zamówienia po stronie POS.

Zobacz Typy zmian, aby poznać zestaw powodów zmian po stronie POS.