Aktualizacja koszyka [Widget 2.0]

Aktualizacja koszyka [Widget 2.0]

Artykuł zawiera opis metody wykorzystywanej do aktualizacji koszyka.

Na tej stronie:

Opis metody

Metoda służąca tylko do aktualizacji koszyka w aplikacji InPost Pay, nie można nią utworzyć koszyka tak jak to miało miejsce przy koszykach z przeglądarką zaufaną.

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.

Parameters 
 

Nazwa pola 

Opis  

Typ 

Wymagalność 

Dodatkowe uwagi 

basket_id 

Unikalny identyfikator koszyka nadawany przez merchanta 

string 

 

 

Request  

Nazwa pola 

Opis  

Typ 

Wymagalność 

Dodatkowe uwagi 

summary

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

object 

 

summary.basket_base_price

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

object 

 

summary.basket_base_price.net

Cena netto 

Number ($decimal)(10,2) 

 

"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) 

 

summary.basket_base_price.vat

VAT 

Number ($decimal)(10,2) 

 

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 

 

summary.basket_final_price.net

Cena netto 

Number ($decimal)(10,2) 

 

"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) 

 

summary.basket_final_price.vat

VAT 

Number ($decimal)(10,2) 

 

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 

 

summary.basket_promo_price.net

Cena netto 

Number ($decimal)(10,2) 

 

"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) 

 

summary.basket_promo_price.vat

VAT 

Number ($decimal)(10,2) 

 

summary.currency

Waluta koszyka. Obecnie obsługiwana tylko waluta PLN 

string 

"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) 

"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 

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

summary.payment_type

Preferowane formy płatności za koszyk. Merchant przekazuje listę preferowanych form płatności dla koszyka z których następnie klient ma możliwość wybrania form płatności. W przypadku przekazania pustej listy, klientowi zostanie zaprezentowana domyślna lista płatności zgodnie z konfiguracją merchanta w bramce płatniczej z wyłączeniem płatności CASH_ON_DELIVERY. 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 

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

delivery

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

array 

 

delivery.delivery_type

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

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

string 

"delivery_type":"APM"

delivery.delivery_date

Sugerowana data dostawy 

string($date-time) 

"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 odbierze. W przypadku, gdy dla danego koszyka w payment_type zostanie przekazana wartość CASH_ON_DELIVERY, obligatoryjnie należy przekazać COD jako dodatkową opcje dostawy 

 

 array

 

delivery.delivery_options.delivery_name

Nazwa dodatkowej opcji dostawy 

string 

"delivery_name": "Paczka w Weekend"

delivery.delivery_options.delivery_code_value

Kod dodatkowej opcji dostawy. Obecnie dostępne dwa kody: 

PWW – paczka w weekend  

COD – płatność przy odbierze 

 

string 

"delivery_code_value": "PWW"

delivery.delivery_options.delivery_option_price

Obiekt służący do przekazania informacji o koszcie dodatkowych opcji dostawy 

object 

 

delivery.delivery_options.delivery_option_price.net

Cena netto 

Number ($decimal)(10,2) 

 

"delivery_option_price ":{"net":"10.00","gross":"12.30","vat":"2.30"}

delivery.delivery_options.delivery_option_price.gross

Cena brutto (netto + VAT) 

Number ($decimal)(10,2) 

 

delivery.delivery_options.delivery_option_price.vat

VAT 

Number ($decimal)(10,2) 

 

delivery.delivery_price

Obiekt służący do przekazania informacji o koszcie dostawy  

object 

 

delivery.delivery_price.net

Cena netto 

Number ($decimal)(10,2) 

 

"delivery_price":{"net":"10.00","gross":"12.30","vat":"2.30"}

delivery.delivery_price.gross

Cena brutto (netto + VAT) 

Number ($decimal)(10,2) 

 

delivery.delivery_price.vat

VAT 

Number ($decimal)(10,2) 

 

delivery.free_delivery_minimum_gross_price

Minimalna wartość koszyka od jakiej koszt dostawy będzie wynosił 0 PLN 

Number ($decimal)(10,2) 

 

"free_delivery_minimum_gross_price": "100.00"

delivery.estimate_delivery_time

Funkcjonalność wykorzystująca obiekt dostępna w kolejnych wersjach aplikacji

Obiekt służący do przekazania informacji o szacowanym czasie dostawy w przypadku zamówienia towarów przez klienta w określonym czasie.

array

O

"estimate_delivery_time": [
{
"description": "Kup do 15:00 - dostawa jutro",
"days_available": [
"MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY"
],
"start_hour": "10:00",
"end_hour": "15:00"
}
]
}
],

delivery.estimate_delivery_time.description

Treść komunikatu prezentowana klientowi aplikacji

string

Y

delivery.estimate_delivery_time.days_available

Dni tygodnia w jakich ma być prezentowany komunikat

array

O

delivery.estimate_delivery_time.start_hour

Godzina od której ma być prezentowany komunikat

string

O

delivery.estimate_delivery_time.end_hour

Godzina do której ma być prezentowany komunikat

string

O

promo_codes

Lista kodów promocyjnych zastosowanych na koszyku 

array 

 

promo_codes.name

Nazwa kodu. W kolejnej wersji aplikacji pole nie wymagalne 

string 

"name": "Promocja 5%"

promo_codes.promo_code_value

Kod promocyjny 

string 

"promo_code_value": "INPOST10"

promo_codes.regulation_type

Typ regulacji lub restrykcji, której kod promocyjny podlega.

UWAGA: W przypadku gdy, kod promocyjny jest kodem w myśl dyrektywy OMNIBUS to należy przekazać wartość „OMNIBUS”.

string

O

"regulation_type": "OMNIBUS"

promotions_available

Lista dostępnych kodów promocyjnych, które klient może wykorzystać w koszyku.

array

O

  "promotions_available": [

    {

      "type": "MERCHANT",

      "promo_code_value": "IZI",

      "description": "Super promocja -- 20 PLN ",

      "start_date": "2024-10-03T07:33:13.942Z",

      "end_date": "2024-11-03T07:33:13.942Z",

      "priority": 0,

      "details": {

        "link": " https://inpostpay.pl/ "

      }

    }

  ],

promotions_available.type

Typ kodu:
Enum:[ MERCHANT, ONLY_IN_APP ]
 
MERCHANT -  kod dostępny w sklepie merchanta i InPost Pay (KOD SKLEPU)

ONLY_IN_APP - kod dostępny tylko w aplikacji InPost Pay (TYLKO W APCE).

string 

Y

promotions_available.promo_code_value

Wartość kodu np. DOSTAWA

string 

Y

promotions_available.description

Opis kodu

Max: 60 znaków

string 

Y

promotions_available.start_date

Data początkowa obowiązywania kodu promocyjnego

string($date-time)

O

promotions_available.end_date

Data końcowa obowiązywania kodu promocyjnego

string($date-time)

O

promotions_available.priority

Priorytet kodu
Priorytet służy do określenia kolejności prezentacji kodów w szczegółach koszyka (najwyższy priorytet ma najniższa wartość).

integer

O

promotions_available.details

Szczegóły kodu promocyjnego

object

Y

promotions_available.details.link

Link do szczegółów informacji o kodzie promocyjnym w sklepie merchanta. 

string 

Y

products

Lista do przekazania informacji o produktach w koszyku 

array 

 

products.product_id

Identyfikator produktu nadany przez merchanta 

string 

"product_id":26

products.product_category

Kategoria produktu nadana przez merchanta 

string 

"product_category":20

products.product_type

Pole nieobligatoryjne określające typ produktu. Przyjmuje wartość:

  • PRODUCT - produkt fizyczny

  • DIGITAL  - produkt cyfrowy.

Jeśli wartość jest null, to aplikacja domyślenie przyjmuje, że produkt jest fizyczny.

string

O

"product_type":"DIGITAL"

products.ean

Ean 

string 

"ean":"0"

products.product_name

Nazwa produktu  

string 

"product_name":"Plecak washpapa"

 

products.product_description

Opis produktu 

string 

"product_description":" \r\n\r\nCzasem masz ochotę rzucić wszystko, spakować się i wyjechać w Bieszczady? Jest to dobry plan na wakacje. A w ciągu roku po prostu odkrywaj swoje miasto na nowo.\r\n\r\nUdana eksploracja nie obędzie się bez solidnego plecaka ze zwijanym zamknięciem i uszytego z wysokiej jakości materiałów, takiego jak nasz.\r\n\r\nBawełniane pasy zapewnią wygodę noszenia, a washpapa wyrazi Twoje przywiązanie do natury. Pamiętaj! Za każdą przygodą stoi dobry plecak."

products.product_link

Link do produktu na stronie merchanta 

string 

"product_link":"https://test.outofthebox.pl/product/plecak-washpapa/"

products.product_image

Link do zdjęcia produktu. Preferowane formaty: png, jpg (rekomendacja: png bez tła)  

string 

"product_image":"https://test.outofthebox.pl/img/2022/10/INPOST_aranzacje-z-modelami25-1.jpg"

Preferowane format: png, jpg (rekomendacja: png bez tła)

products.additional_product_images

Obiekt do przekazania dodatkowych zdjęć produktu (lista). Maksymalna ilość zdjęć to 10 (10 obiektów { "normal_size": "string", "small_size": "string" } ).

object

O

-

products.additional_product_images. small_size

Zdjęcie produktu. Preferowany rozmiar 360 x 352

string

Y

-

products.additional_product_images. normal_size

Zdjęcie produktu. Preferowany rozmiar 360 x 504

string

Y

-

products.base_price

Cena podstawowa za produkt 

object 

 

products.base_price.net

Cena netto 

Number ($decimal)(10,2) 

"base_price":{"net":"161.79","gross":"199.00","vat":"37.21"}

products.base_price.gross

Cena brutto (netto + VAT) 

Number ($decimal)(10,2) 

products.base_price.vat

VAT 

Number ($decimal)(10,2) 

products.promo_price 

Cena promocyjna produktu 

object 

 

products.promo_price.net

Cena netto 

number ($decimal)(10,2) 

"promo_price":{"net":"160.98","gross":"198.00","vat":"37.02"}

products.promo_price.gross

Cena brutto (netto + VAT) 

number ($decimal)(10,2) 

products.promo_price.vat

VAT 

Number ($decimal)(10,2) 

products.lowest_price

Obiekt służący do przekazania najniższej ceny produktu z ostatnich 30 dni. Wymagane w celu obsłużenia dyrektywy Omibus. Obiekt należy przekazać obligatoryjnie w przypadku, gdy została przekazania cena promocyjna produktu (obiekt promo_price) oraz został przekazany kod promocyjny z "regulation_type": "OMNIBUS".

object 

 

products.lowest_price.net

Cena netto 

number ($decimal)(10,2) 

"lowest_price ":{"net":"160.98","gross":"198.00","vat":"37.02"}

products.lowest_price.gross 

Cena brutto (netto + VAT) 

number ($decimal)(10,2) 

products.lowest_price.vat

VAT 

number ($decimal)(10,2) 

products.quantity

Obiekt do przekazania informacji o ilości produktu 

object 

 

products.quantity.quantity

Ilość produktu 

number ($decimal) 

"quantity":1

products.quantity.quantity_type

Typ quantity. Dostępne wartości: [ 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 

"quantity_type":"INTEGER"

products.quantity.quantity_unit

Jednostka ilości produktu 

string 

"quantity_unit":"pcs"

products.quantity.available_quantity

Ilość dostępnego produktu sklepie 

number ($decimal) 

"available_quantity":26

products.quantity.min_quantity 

Funkcjonalność wykorzystująca obiekt dostępna w kolejnych wersjach aplikacji

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

number ($decimal) 

 

"min_quantity": 2

products.quantity.max_quantity

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

number ($decimal) 

"max_quantity": 26

products.quantity.quantity_jump

Funkcjonalność wykorzystująca obiekt dostępna w kolejnych wersjach aplikacji

Wartość skoku ilości w przypadku zwiększenia/zmniejszenia ilości produktu przez klienta (np. 0,1 lub 0,5 lub 0,01)

number ($decimal)    

O

"quantity_jump": 0.5

products.product_attributes

Obiekt służący do określenia atrybutów produktu 

array 

 

products.product_attributes.attribute_name

Nazwa atrybutu 

string 

"product_attributes":[{"attribute_name":"Wymiary/Pojemność","attribute_value":"54 cm x 38 cm x 10 cm"},{"attribute_name":"Materiał","attribute_value":"Washable paper standard + kodura + pasy bawełniane tkane"}]

products.product_attributes.attribute_value

Wartość atrybutu 

string