Synchronizacja koszyka oraz zamówienia

Synchronizacja koszyka inicjalizowana na stronie sklepu Merchanta: 

  1. Klient przechodzi na stronę Merchanta.

  2. Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja:

    1. Utwórz koszyk z InPost Pay” – widget osadzony na karcie produktu

      image-20240104-142901.png
    2. Kup z InPost Pay” - widget osadzony w koszyku

      image-20240104-142944.png
  3. Klient przyciska widget “Utwórz koszyk z InPost Pay” lub „Kup z InPost Pay”.

  4. Widget weryfikuje w backend Merchanta, czy wybrany produkt może być dodany do koszyka (iziCanBeBound).

  5. Backend Merchanta przy pierwszej wywołanej metodzie przez Widget wywołuje metodę do InPost Pay w celu weryfikacji, czy koszyk klienta jest powiązany z InPost Pay oraz czy przeglądarka, z której klient aktualnie korzysta jest dodana do zaufanych. Weryfikacja następuje poprzez request GET/v1/izi/basket/{basket_id}/binding.

  6. InPost Pay zwraca informacje, że koszyk jest powiązany (basket_linked=true) lub koszyk niepowiązany (basket_linked=false) oraz przeglądarka jest zaufana (browser_trusted=true).

  7. Backend Merchant odświeża stronę sklepu wraz z zaktualizowanym Widget, na który prezentuje się informacja:

  8. Widget dodaje produkt do koszyka w sklepie Merchanta (iziAddToCart).

  9. InPost Pay po otrzymaniu requestu PUT/v1/izi/basket/{basket_id}, aktualizuje istniejący koszyk w przypadku, gdy basket_linked=true lub wiąże go z numerem telefonu przypisanym do przeglądarki zaufanej w przypadku, gdy basket_linked=false. Następnie zwraca informację do backendu Merchanta potwierdzającą zakończenie operacji sukcesem (response 200).

  10. Backend Merchanta wywołuje inpost-update-count, który pozwala na zaktualizowanie liczby produktów na przycisku.

  11. Widget prezentuje zaktualizowaną liczbę produktów w koszyku.

  12. Widget po uzyskaniu informacji, że koszyk jest powiązany, rozpoczyna nasłuchiwać backend Merchanta (z wykorzystaniem iziGetOrderComplete i jednej z metod looping lub websocket), czy nastąpiła realizacja zamówienia za koszyk.

Link do przykładowego wywołania metody: PUT/v1/izi/basket/{basket_id}

Synchronizacja koszyka inicjalizowana przez InPost Pay: 

  1. Klient w aplikacji InPost Pay będzie miał możliwość aktualizacji koszyka w zakresie: 

    1. zmiany ilości produktu w koszyku (quantity_event_data

    2. dodania/usunięcia kodu promocyjnego (promo_codes_event_data

    3. dodania produktu sugerowanego do koszyka (related_products_event_data

  2. W przypadku, gdy użytkownik wykona jedną z powyższych modyfikacji na koszyku, InPost Pay poprzez metodę POST/v1/izi/basket/{basket_id}/event poinformuje Merchanta w formie eventu o wystąpieniu określonego zdarzenia. 

  3. Backend Merchanta rekalkulacje koszyk.

  4. Backend Merchanta po otrzymaniu eventu aktualizującego koszyk klienta, odsyła zaktualizowany koszyk w response POST/v1/izi/basket/{basket_id}/event.

  5. Backend Merchanta wywołuje inpost-update-count, który pozwala na zaktualizowanie liczby produktów na przycisku.

  6. Backend Merchanta przekazuje informacje do frontu sklepu, który prezentuje zaktualizowany koszyk klientowi.

  7. Widget prezentuje:

  8. Aplikacja InPost Pay prezentuje zaktualizowany koszyk.

Link do przykładowego wywołania metody: POST/v1/izi/basket/{basket_is}/event

Synchronizacja zamówienia inicjalizowana na stronie sklepu Merchanta: 

  1. Merchant w przypadku, gdy: 

    1. zmienił status zamówienia lub opis statusu zamówienia prezentowanego w sklepie 

    2. nadał numer referencyjny przesyłki 
      powinien wywołać metodę POST/v1/izi/order/{order_id}/event do aplikacji InPost Pay w celu aktualizacji danych na zamówieniu. 

  2. InPost Pay po otrzymaniu requestu POST/v1/izi/order/{order_id}/event aktualizuje zamówienie i zwraca potwierdzenie zakończenia operacji sukcesem (response 200).

Link do przykładowego wywołania metody: POST/v1/izi/order/{order_id/event

Synchronizacja zamówienia inicjalizowana przez InPost Pay: 

  1. InPost Pay w przypadku, gdy klient: 

    1. opłacił zamówienie lub

    2. odrzucił zamówienie przed opłaceniem 
      poinformuje Merchanta o wystąpieniu zdarzenia, z wykorzystaniem metody z POST/v1/izi/order/{order_id}/event

  2. Merchant po otrzymaniu requestu POST/v1/izi/order/{order_id}/event zwraca potwierdzenie otrzymania informacji (response 200).

Link do przykładowego wywołania metody: POST/v1/izi/order/{order_id}/event

Diagram UC.04 Synchronizacja koszyka oraz zamówienia