Synchronizacja koszyka oraz zamówienia
Synchronizacja koszyka inicjalizowana na stronie sklepu Merchanta:
Klient przechodzi na stronę Merchanta.
Merchant buduje stronę sklepu z osadzonym widgetem, na którym prezentuje się informacja:
„Utwórz koszyk z InPost Pay” – widget osadzony na karcie produktu
„Kup z InPost Pay” - widget osadzony w koszyku
Klient przyciska widget “Utwórz koszyk z InPost Pay” lub „Kup z InPost Pay”.
Widget weryfikuje w backend Merchanta, czy wybrany produkt może być dodany do koszyka (iziCanBeBound).
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.
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
).Backend Merchant odświeża stronę sklepu wraz z zaktualizowanym Widget, na który prezentuje się informacja:
Widget dodaje produkt do koszyka w sklepie Merchanta (iziAddToCart).
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, gdybasket_linked=false
. Następnie zwraca informację do backendu Merchanta potwierdzającą zakończenie operacji sukcesem (response 200).Backend Merchanta wywołuje inpost-update-count, który pozwala na zaktualizowanie liczby produktów na przycisku.
Widget prezentuje zaktualizowaną liczbę produktów w koszyku.
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:
Klient w aplikacji InPost Pay będzie miał możliwość aktualizacji koszyka w zakresie:
zmiany ilości produktu w koszyku (
quantity_event_data
)dodania/usunięcia kodu promocyjnego (
promo_codes_event_data
)dodania produktu sugerowanego do koszyka (
related_products_event_data
)
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.
Backend Merchanta rekalkulacje koszyk.
Backend Merchanta po otrzymaniu eventu aktualizującego koszyk klienta, odsyła zaktualizowany koszyk w response POST/v1/izi/basket/{basket_id}/event.
Backend Merchanta wywołuje inpost-update-count, który pozwala na zaktualizowanie liczby produktów na przycisku.
Backend Merchanta przekazuje informacje do frontu sklepu, który prezentuje zaktualizowany koszyk klientowi.
Widget prezentuje:
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:
Merchant w przypadku, gdy:
zmienił status zamówienia lub opis statusu zamówienia prezentowanego w sklepie
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.
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:
InPost Pay w przypadku, gdy klient:
opłacił zamówienie lub
odrzucił zamówienie przed opłaceniem
poinformuje Merchanta o wystąpieniu zdarzenia, z wykorzystaniem metody z POST/v1/izi/order/{order_id}/event.
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