Statusy dostawy
Po wysłaniu zamówienia do Syrve Live API, może zostać mu przypisany jeden z następujących statusów:
Success - gdy front-end pomyślnie utworzył zamówienie;
Error - gdy front-end odpowiedział błędem;
InProgress - we wszystkich innych przypadkach, czyli gdy nie otrzymaliśmy odpowiedzi od front-endu. Innymi słowy, zawsze „oczekujemy” odpowiedzi od front-endu.
TransportToFrontTimeOut to okres czasu, w którym Syrve Live API powinno próbować utworzyć zamówienie, tj. dotrzeć do front-endu. Możesz zasadniczo regulować czas, przez jaki zamówienie będzie znajdować się w kolejce tworzenia zamówienia oraz kiedy zadanie zostanie z niej usunięte.
Syrve POS, czyli kasa, odpowiada Syrve Live API z określoną częstotliwością, informując, że punkt sprzedaży jest aktywny i może przyjmować zamówienia.
Zaleca się sprawdzanie statusu tworzenia zamówienia, jak również powodzenia każdego innego żądania, za pomocą metody /api/1/commands/status (wersja 7.7.6 lub wyższa) oraz /api/1/deliveries/by_id (dla wcześniejszych wersji).
Schemat działania
Schemat działania, gdy funkcja automatycznej dystrybucji zamówień jest włączona
1. Sprawdź dostępne i odpowiednie terminale dla „Harmonogramu pracy i mapowania”, wywołując metodę /api/1/delivery_restrictions/allowed
- Zwracana jest lista pasujących terminali i warunków. Jeśli nie ma odpowiedniego punktu sprzedaży, zamówienie nie może zostać utworzone. Jeśli jest odpowiedni terminal, rozpocznij tworzenie zamówienia, wywołując metodę /api/1/deliveries/create
3. Jeśli front-end jest dostępny przez cały czas:
-
W czasie określonym w TransportToFrontTimeOut, Syrve Live API próbuje dotrzeć do front-endu i utworzyć zamówienie. W tym czasie zamówienie ma status inProgress
-
Front-end akceptuje zamówienie, tj. odpowiada sukcesem - status w Syrve Live API zmienia się na Success, lub front-end odrzuca zamówienie, wtedy status w API zmienia się na Error
4. Jeśli front-end działał normalnie, ale w momencie tworzenia zamówienia stał się niedostępny:
-
W czasie określonym w TransportToFrontTimeOut, Syrve Live API próbuje dotrzeć do front-endu i utworzyć zamówienie. W tym czasie zamówienie ma status inProgress
-
Przydzielony czas minął, do przydzielonego czasu dodawane są kolejne 3 minuty, a po tym czasie status zmienia się na Error. Należy anulować zamówienie lub utworzyć zamówienie przez alternatywny kanał.
5. Jeśli front-end był online podczas tworzenia zamówienia, zdążył je zaakceptować, ale potem przeszedł offline (brak połączenia z front-endem przez jakiś czas), a następnie ponownie wrócił online:
-
W czasie określonym w TransportToFrontTimeOut, Syrve Live API próbuje dotrzeć do front-endu i utworzyć zamówienie. W tym czasie zamówienie ma status inProgress
-
Przydzielony czas minął, do przydzielonego czasu dodawane są kolejne 3 minuty, a po tym czasie status zmienia się na Error. Należy anulować zamówienie lub utworzyć zamówienie przez alternatywny kanał.
-
Front-end ostatecznie wraca i akceptuje zamówienie, tj. odpowiada sukcesem - status w Syrve Live API zmienia się na Success, lub front-end odrzuca zamówienie, wtedy status w Syrve Live API zmienia się na Error
-
Syrve Live API wysyła webhook o aktualizacji statusu zamówienia z inProgress na Success. Webhook musi być wstępnie skonfigurowany zgodnie z dokumentacją
-
Restauracja otrzymuje zamówienie, które zostało anulowane dla gościa w punkcie 2
-
Należy anulować zamówienie za pomocą metody /api/1/deliveries/cancel
-
W przypadku pomyślnego anulowania, zamówienie jest usuwane z front-endu.
Schemat działania, gdy automatyczna dystrybucja zamówień jest wyłączona
Są to pilne zamówienia, wysyłane do konkretnego terminala z wskazaniem w treści terminalGroupId.
1. Sprawdź dostępność terminala. Należy to zrobić PRZED utworzeniem zamówienia, wywołując metodę /api/1/terminal_groups/is_alive
2. Jeśli terminal nie jest dostępny, nie można utworzyć zamówienia. Jeśli terminal jest dostępny, możesz rozpocząć tworzenie, wywołując metodę /api/1/deliveries/create
3. Jeśli front-end jest dostępny przez cały czas:
-
W czasie określonym w TransportToFrontTimeOut, Syrve Live API próbuje dotrzeć do front-endu i utworzyć zamówienie. W tym czasie zamówienie ma status inProgress
-
Front-end akceptuje zamówienie, tj. odpowiada sukcesem - status w Syrve Live API zmienia się na Success, lub front-end odrzuca zamówienie, wtedy status w API zmienia się na Error
4. Jeśli front-end działał normalnie, ale w momencie tworzenia zamówienia stał się niedostępny:
-
W czasie określonym w TransportToFrontTimeOut, Syrve Live API próbuje dotrzeć do front-endu i utworzyć zamówienie. W tym czasie zamówienie ma status inProgress
-
Przydzielony czas minął, do przydzielonego czasu dodawane są kolejne 3 minuty, a po tym czasie status zmienia się na Error. Należy anulować zamówienie lub utworzyć zamówienie przez alternatywny kanał.
5. Jeśli front-end był online podczas tworzenia zamówienia, zdążył je zaakceptować, ale potem przeszedł offline (brak połączenia z front-endem przez jakiś czas), a następnie ponownie wrócił online:
-
W czasie określonym w TransportToFrontTimeOut, Syrve Live API próbuje dotrzeć do front-endu i utworzyć zamówienie. W tym czasie zamówienie ma status inProgress
-
Przydzielony czas minął, do przydzielonego czasu dodawane są kolejne 3 minuty, a po tym czasie status zmienia się na Error. Należy anulować zamówienie lub utworzyć zamówienie przez alternatywny kanał.
-
Front-end ostatecznie wraca online i akceptuje zamówienie, tj. odpowiada sukcesem - status w Syrve Live API zmienia się na Success, lub front-end odrzuca zamówienie, wtedy status w Syrve Live API zmienia się na Error
-
Syrve Live API wysyła webhook o aktualizacji statusu zamówienia z inProgress na Success. Webhook musi być wstępnie skonfigurowany zgodnie z dokumentacją
-
Restauracja otrzymuje zamówienie, które zostało anulowane dla gościa w punkcie 2
-
Należy anulować zamówienie za pomocą metody /api/1/deliveries/cancel
-
W przypadku pomyślnego anulowania, zamówienie jest usuwane z front-endu.