Aktualizacja koszyka

Aktualizacja koszyka

Metoda przekazująca aktualizacje koszyka jakie klient wykonał w aplikacji InPost Pay. Na otrzymany event informujący Merchanta o zmianie na koszyku, Merchant w response powinien przesłać cały zaktualizowanych koszyk.

W danej metodzie wymagamy implementacji wszystkich pól wymienionych w tabeli, ponieważ składają się na całość usługi InPost Pay. Część poniższych pól w kolumnie 'Wymagalność' jest oznaczona jako 'O' tj. opcjonalna ze względu na to, że nie wszystkie produkty/koszyki w sklepach internetowych mają przypisane wszystkie parametry, więc koszyk może zostać utworzony, a zamówienie złożone bez nich. Jednak implementacja/wdrożenie wszystkich pól jest biznesowo WYMAGANE.

POST /v1/izi/basket/{basket_id}/event

Parameters

Nazwa pola

Opis

Typ

Wymagalność

Dodatkowe uwagi

basket_id

Unikalny identyfikator koszyka nadawany przez merchanta

string

Y

 

 

Request

Nazwa pola

Opis

Typ

Wymagalność

Dodatkowe uwagi

event_id

Id eventu

 string

 Y

 

event_data_time

Data i czas wystąpienia eventu

 string($date-time)

 Y

 

event_type

Typ eventu.

Enum:

[ PRODUCTS_QUANTITY, PROMO_CODES, RELATED_PRODUCTS ]

 

PRODUCTS_QUANTITY - zmiana ilości produktu

PROMO_CODES - dodanie/aktualizacja /usunięcie kodu promocyjnego

RELATED_PRODUCTS - dodanie produktu sugerowanego

 string

 Y

 

phone_number

Informacja o numerze użytkownika, z którym jest powiązany koszyk

 object

 O

 

phone_number.country_prefix

Prefix

 string

 Y

 

phone_number.phone

Numer telefonu

 string

 Y

 

quantity_event_data

Obiekt zwracający szczegóły eventu PRODUCTS_QUANTITY

 

 O

 

quantity_event_data.product_id

Identyfikator produktu nadany przez merchanta

string

Y

"product_id":26

quantity_event_data.quantity

Obiekt do przekazania informacji o ilości produktu

object

Y

 

quantity_event_data.quantity.quantity

Ilość produktu

number ($decimal)  

Y

"quantity":1

quantity_event_data.quantity.quantity_type

Typ pola quantity. Dostępne wartości Enum:[ DECIMAL, INTEGER ]

Jeżeli quantity_type produktu to INTEGER, wtedy Merchant przesyła cenę za 1 sztukę produktu. Jeżeli quantity_type produktu to DECIMAL, wtedy Merchant przesyła cenę za wybraną ilość produktu.  

  • Przykład 1) Mamy 5 sztuk koszul w cenie 10 zł za sztukę. W takim przypadku quantity_type, to INTEGER i cena produktu wynosi 10 zł.

  • Przykład 2) Mamy 0,35 kg mąki w cenie 5 zł. W takim przypadku quantity_type, to DECIMAL i cena produktu wynosi 5 zł.

string

O

"quantity_type":"INTEGER"

quantity_event_data.quantity.quantity_unit

Jednostka ilości produktu

string

O

"quantity_unit":"pcs"

quantity_event_data.quantity.available_quantity

Ilość dostępnego produktu w sklepie

number ($decimal)

O

"available_quantity":26

quantity_event_data.quantity.max_quantity

Maksymalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu

number ($decimal)

O

"max_quantity":26

promo_codes_event_data

Obiekt zwracający szczegóły eventu PROMO_CODES

 object

O

 

promo_codes_event_data.name

Nazwa kodu. W kolejnej wersji aplikacji pole nie wymagalne

string

Y

"name": "Promocja 5%"

promo_codes_event_data.promo_code_value

Kod promocyjny

string

Y

"promo_code_value": "INPOST10"

related_products_event_data

Obiekt zwracający szczegóły eventu RELATED_PRODUCTS

 object

O

 

related_products_event_data.product_id

Identyfikator produktu nadany przez merchanta

string

Y

"product_id":26

related_products_event_data.ean

Ean

string

O

"ean":"0"

related_products_event_data.quantity

Obiekt do przekazania informacji o ilości produktu

object

Y

 

related_products_event_data.quantity.quantity

Ilość produktu

number ($decimal)  

Y

"quantity":1

related_products_event_data.quantity.quantity_type

Typ pola quantity . dostępne wartości Enum: [ DECIMAL, INTEGER ]

string

O

"quantity_type":"INTEGER"

related_products_event_data.quantity.quantity_unit

Jednostka ilości produktu

string

O

"quantity_unit":"pcs"

related_products_event_data.quantity.available_quantity

Ilość dostępnego produktu w sklepie

number ($decimal)

O

"available_quantity":26

related_products_event_data.quantity.max_quantity

Maksymalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu

number ($decimal)

O

"max_quantity":26

 

 

Response

Nazwa pola

Opis

Typ

Wymagalność

Dodatkowe uwagi

summary

Obiekt służący do przekazania podstawowych danych o koszyku

object

Y

 

summary.basket_base_price

Obiekt służący do przekazania ceny podstawowej za koszyk bez kosztów dostawy

object

Y

 

summary.basket_base_price.net

Cena netto

number ($decimal)(10,2)

Y

"summary":{"basket_base_price":{"net":"250.00","gross":"307.50","vat":"57.5

summary.basket_base_price.gross

Cena brutto (netto + VAT)

number ($decimal)(10,2)

Y

summary.basket_base_price.vat

VAT

number ($decimal)(10,2)

Y

summary.basket_final_price

Obiekt służący do przekazania ostatecznej ceny koszyka z uwzględnioną promocją i kodem rabatowym na koszyku bez kosztów dostawy.
Wartość obniżki na koszyku  wynikająca z zastosowania kodu (kodu promocyjnego, który nie reguluje dyrektywa OMNIBUS), widoczna w podsumowaniu koszyka będzie różnicą pomiędzy promo_price a final_price lub base_price a final_price w przypadku gdy koszyk  nie jest w promocji.

object

O

 

summary.basket_final_price.net

Cena netto

number ($decimal)(10,2)

Y

"basket_final_price":{"net":"220.00","gross":"270.60","vat":"50.60"}

summary.basket_final_price.gross

Cena brutto (netto + VAT)

number ($decimal)(10,2)

Y

summary.basket_final_price.vat

VAT

number ($decimal)(10,2)

Y

summary.basket_promo_price

Obiekt służący do przekazania ceny koszyka z uwzględnioną promocją na koszyku, ale bez zastosowania kodu rabatowego i bez kosztów dostawy.

object

O

 

summary.basket_promo_price.net

Cena netto

number ($decimal)(10,2)

Y

"basket_promo_price":{"net":"220.00","gross":"270.60","vat":"50.60"}

summary.basket_promo_price.gross

Cena brutto (netto + VAT)

number ($decimal)(10,2)

Y

summary.basket_promo_price.vat

VAT

number ($decimal)(10,2)

Y

summary.free_basket

Flaga informująca, czy koszyk bez kosztów dostawy jest darmowy

boolean

O

 

summary.currency

Waluta koszyka. Obecnie obsługiwana tylko waluta PLN

string

Y

"currency":"PLN"

summary.basket_expiration_date

Data wygaśnięcia/ważności koszyka. Jest to data, po której koszyk zostanie automatycznie usunięty z aplikacji InPost Pay (straci ważność). Data nie może być przeszła.

string($date-time)

O

"basket_expiration_date":"2023-09-13T07:40:53.000Z"

summary.basket_additional_information

Pole służy do przekazania dodatkowych informacji o koszyku, które z punktu widzenia merchanta mogą być istotne dla klienta

string

O

"basket_additional_information":"Zamów już dziś, a otrzymasz kod promocyjny na przyszłe zakupy"

summary.payment_type

Preferowane formy płatności dla koszyka. Merchant przekazuje listę preferowanych form płatności dla koszyka z których następnie klient mam możliwość wybrania form płatności przy tworzeniu zamówienia. W przypadku przekazania pustej listy, klientowi zostanie zaprezentowana domyślna lista płatności zgodnie z konfiguracją merchanta w bramce płatniczej oraz CASH_ON_DELIVERY, gdy dla danej formy dostawy w "delivery" został przekazany "delivery_code_value" ="COD".

Lista z możliwymi typami płatności: [ CARD, CARD_TOKEN, GOOGLE_PAY, APPLE_PAY, BLIK_CODE, BLIK_TOKEN, PAY_BY_LINK, SHOPPING_LIMIT, DEFERRED_PAYMENT, CASH_ON_DELIVERY ]

array

Y

"payment_type":["CARD","CARD_TOKEN","APPLE_PAY","BLIK_CODE","BLIK_TOKEN","PAY_BY_LINK","SHOPPING_LIMIT","DEFERRED_PAYMENT","GOOGLE_PAY"],

summary.basket_notice

Obiekt z informacją dodatkową o koszyku, o której merchant chciałby poinformować klienta w aplikacji InPost Pay

object

O

 

summary.basket_notice.type

Typ informacji. Wyróżniamy dwa typy informacji, na podstawie której, aplikacji zaprezentuje odpowiedni format komunikatu Enum: [ ATTENTION, ERROR ]:

ATTENTION - wykorzystujemy w przypadku, gdy chcemy poinformować klient o istotnych informacjach na koszyku, np. zastosowanie kodu promocyjnego, dodanie produktu gratis etc.

ERROR - wykorzystujemy w przypadku, gdy nie udało się wykonać jakiegoś działania na koszyku np. niepoprawny kod promocyjny lub nie udana próba dodania produktu sugerowanego.

 

string

Y

"type":"ATTENTION"

summary.basket_notice.description

Treść komunikatu prezentowana klientowi w aplikacji InPost Pay dla danego notice.type

string

Y

"description":"Kod został aktywowany"

summary.basket_additional_parameters

Obiekt służący do przekazania dodatkowych parametrów koszyka, które są zapisane w szczegółach koszyka podczas tworzenia/aktualizacji koszyka. Merchant może wykorzystać obiekt np. do zapisania parametrów które umożliwią identyfikację/powiązanie koszyka z kampanią. Dodatkowe parametry nie są prezentowane w aplikacji.

array

O

 

summary.basket_additional_parameters.key

Klucz

string

Y

 

summary.basket_additional_parameters.value

Wartość

string

Y

 

delivery

Obiekt służący do przekazania informacji o preferowanych formach dostawy dla danego koszyka

array

Y

 

delivery.delivery_type

Forma dostawy. Enum:[ APM, COURIER, DIGITAL ].  

APM – paczkomat, COURIER – kurier Inpost 
DIGITAL – dostawa cyfrowa

string

Y

"delivery_type":"APM"

delivery.delivery_date

Sugerowana data dostawy

string($date-time)

Y

"delivery_date":"2023-09-14T12:00:00.000Z"

delivery.delivery_options

Obiekt służący do przekazania dodatkowych opcji dostawy.  Obecnie dostępne dwie dodatkowe opcje dostawy:

PWW - paczka w weekend

COD - płatność przy odbiorze. W przypadku, gdy dla danego koszyka w payment_type zostanie przekazana wartość CASH_ON_DELIVERY, obligatoryjnie należy przekazać COD jako dodatkową opcję dostawy

 array