Przejdź do głównej zawartości

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

  1. 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.