Koszyk powiązany z InPost Pay

Weryfikacja powiązania koszyka z InPost Pay

  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-20240108-101930.png
    2. Kup z InPost Pay” - widget osadzony w koszyku.

      image-20240108-101957.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) oraz przeglądarka jest zaufana (browser_trusted=true) lub przeglądarka niezaufana (browser_trusted=false).

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

    image-20240108-102305.png
  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 lub wiąże go z numerem telefonu przypisanym do przeglądarki zaufanej. 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.

Połączenie koszyka z innym numerem telefonu (Usunięcie/desynchronizacja koszyka powiązanego z InPost Pay)

  1. Klient przyciska “Produkty w koszyku InPost Pay”.

  2. Widget prezentuje ekran “Twoje zakupy czekają już na Ciebie w aplikacji InPost Mobile” wraz z prezentacją zamaskowanego numeru telefonu, z którym koszyk jest powiązany w aplikacji InPost Pay. 

  3. Klient wybiera “Połącz te zakupy z innym kontem”. 

  4. Widget prezentuje popup “Czy na pewno chcesz powiązać te zakupy z numerem telefonu innym niż..”. 

  5. Klient wybiera “Połącz z innym numerem telefonu”.

  6. Widget wywołuje iziBindingDelete do backendu Merchanta.

  7. Backend Merchanta wywołuje DELETE/v1/izi/basket/{basket_id}/binding do InPost Pay. 

  8. InPost Pay usuwa powiązanie koszyka z numerem telefonu oraz przekazuje informacje do backendu Merchanta o poprawnym wykonaniu zadania. 

  9. Backend Merchanta wywołuje DELETE/v1/izi/browser/{browser_id}/binding do InPost Pay.

  10. InPost Pay usuwa powiązanie przeglądarki z numerem telefonu oraz przekazuje informacje do backendu Merchanta o poprawnym wykonaniu zadania.

  11. Merchant przekazuje informacje do widget (Promise.resolve w response iziBindingDelete), który następnie prezentuje klientowi ekran z wiązaniem koszyka z wykorzystaniem zaktualizowanego/zmienionego numeru telefonu. 

 

Diagram UC.01 Koszyk powiązany z InPost Pay