Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Artykuł zawiera opis metody wykorzystywanej do aktualizacji koszyka wraz z przykładem implementacji metody w języku PHP.
Na tej stronie:
Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Opis metody
Metoda służąca do aktualizacji koszyka w aplikacji InPost Pay. W przypadku, gdy klient korzysta z przeglądarki zaufanej oraz posiada koszyk niepowiązany z aplikacją InPost Pay metoda wykorzystywana również do utworzenia i powiązania koszyka z InPost Pay.
Status | ||||
---|---|---|---|---|
|
/v1/izi/basket/{basket_id}
Parameters
Info |
---|
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 |
---|---|---|---|---|
| Unikalny identyfikator koszyka nadawany przez merchanta | string | Y |
|
Request
Nazwa pola | Opis | Typ | Wymagalność | Dodatkowe uwagi | ||||
| Unikalny identyfikator przeglądarki zaufanej nadawany przez aplikacje InpostInPost. Pole wykorzystywane tylko w przypadku, gdy klient korzysta z przeglądarki zaufanej i nie ma powiązanego koszyka. W takiej sytuacji po wybraniu „Kup z Inpost InPost Pay” powinna być wywołana metoda PUT z parametrem browser_id. | string | O |
| ||||
| Obiekt służący do przekazania podstawowych danych o koszyku | object | Y | |||||
| Obiekt służący do przekazania ceny podstawowej za koszyk bez kosztów dostawy | object | Y | |||||
| Cena netto | Number ($decimal)(10,2)
| Y |
| ||||
| Cena brutto (netto + VAT) | Number ($decimal)(10,2)
| Y | |||||
| VAT | Number ($decimal)(10,2)
| Y | |||||
| Obiekt służący do przekazania ostatecznej ceny koszyka z uwzględnionym uwzględnioną promocją i kodem rabatowym na koszyku bez kosztów dostawy. Jeśli nie ma zastosowanego kodu rabatowego: final_price = promo_price | object | O | object | O | |||
| Cena netto | Number ($decimal)(10,2)
| Y |
| ||||
| Cena brutto (netto + VAT) | Number ($decimal)(10,2)
| Y | |||||
| VAT | Number ($decimal)(10,2)
| Y | |||||
| Obiekt służący do przekazania ceny koszyka z uwzględnioną promocją na koszyku, ale bez zastosowania kodu rabatowego i bez kosztów dostawy dostawy. | object | O | |||||
| Cena netto | Number ($decimal)(10,2)
| Y |
| ||||
| Cena brutto (netto + VAT) | Number ($decimal)(10,2)
| Y | |||||
| VAT | Number ($decimal)(10,2)
| Y | |||||
| Waluta koszyka. Obecnie obsługiwana tylko waluta PLN | string | Y |
| ||||
| 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 |
| ||||
| Pole służy do przekazania dodatkowych informacji o koszyku, które z punktu widzenia merchanta mogą być istotne dla klienta | string | O |
| ||||
| 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ą merchnata. 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 ] | object array | Y |
| ||||
| Obiekt służący do przekazania informacji o preferowanych formach dostawy dla danego koszyka | array | Y | |||||
| Forma dostawy. Enum:[ APM, COURIER ]. APM – paczkomat, COURIER – kurier Inpost | string | Y |
| ||||
| Sugerowana data dostawy | string($date-time) | O Y |
| ||||
| Obiekt służący do przekazania dodatkowych opis dostawy. Obecnie dostępne dwie dodatkowe opcje dostawy: PWW – paczka w weekend COD – płatność przy odbierze. W przypadku, gdy dla danego koszyk w payment_type zostanie przekazana wartość CASH_ON_DELIVERY, obligatoryjnie należy przekazać COD jako dodatkową opcje dostawy
| array | O | |||||
| Nazwa dodatkowej opcji dostawy | string | Y |
| ||||
| Kod dodatkowej opcji dostawy. Obecnie dostępne dwa kody: PWW – paczka w weekend COD – płatność przy odbierze
| string | Y |
| ||||
| Obiekt służący do przekazania informacji o koszcie dodatkowych opcji dostawy | object | Y | |||||
| Cena netto | Number ($decimal)(10,2)
| Y |
| ||||
| Cena brutto (netto + VAT) | Number ($decimal)(10,2)
| Y | |||||
| VAT | Number ($decimal)(10,2)
| Y | |||||
| Obiekt służący do przekazania informacji o koszcie dostawy | object | Y | |||||
| Cena netto | Number ($decimal)(10,2)
| Y |
| ||||
| Cena brutto (netto + VAT) | Number ($decimal)(10,2)
| Y | |||||
| VAT | Number ($decimal)(10,2)
| Y | |||||
| Minimalna wartość koszyka od jakiej koszt dostawy będzie wynosił 0 PLN | Number ($decimal)(10,2)
| O |
|
| Lista kodów promocyjnych zastosowanych na koszyku | array | O |
| Nazwa kodu. W kolejnej wersji aplikacji pole nie wymagalne | string | Y |
| ||||
| Kod promocyjny | string | Y |
|
| Lista do przekazania informacji o produktach w koszyku | array | Y |
| Identyfikator produktu nadany przez merchanta | string | Y |
| ||||
| Kategoria produktu nadana przez merchanta | string | O |
| ||||
| Ean | string | O |
|
| Nazwa produktu | string | Y |
| Opis produktu | string | O |
| ||||
| Link do produktu na stronie merchanta | string | O |
| ||||
| Link do zdjęcia produktu. Preferowane formaty: png, jpg (rekomendacja: png bez tła) | string | O |
Preferowane format: png, jpg (rekomendacja: png bez tła) |
| Cena podstawowa z produkt | object | Y |
| Cena netto | Number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | Number ($decimal)(10,2) | Y | |||||
| VAT | Number ($decimal)(10,2) | Y |
| Cena promocyjna produktu | object | O | |
| Cena netto | number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |||||
| VAT | Number ($decimal)(10,2) | Y |
| Obiekt służący do przekazania najniższej ceny produktu z ostatnich 30 dni. Wymagane w celu obsłużenia dyrektywy Omibus | object | O | |
| Cena netto | number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |||||
| VAT | number ($decimal)(10,2) | Y |
| Obiekt do przekazania informacji o ilości produktu | object | Y | |
| Ilość produktu | number ($decimal) | Y |
| ||||
| Typ quantity. Dostępne wartości: [ DECIMAL, INTEGER ] Jeżeli
| string | Y |
| ||||
| Jednostka ilości produktu | string | O |
| ||||
| Ilość dostępnego produktu sklepie | number ($decimal) | O |
| ||||
| Maksymalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu | number ($decimal) | O |
|
| Obiekt służący do określenia atrybutów produktu | array | O |
| Nazwa atrybutu | string | Y |
| ||||
| Wartość atrybutu | string | Y |
| Obiekt obecnie nie wykorzystywany. Funkcjonalność będzie wdrażana w kolejnych wersjach aplikacji. | object | O |
| Id wariantu | string | Y |
| Nazwa wariantu | string | Y |
| Opis szczegółowy wariantu | string | O |
| Typ wariantu | string | O |
| Wartość wariantu | string | O |
| Obiekt służący do przekazania listy produktów sugerowanych dla danego koszyka, które klient może dodać z poziomu aplikacji Inpost Pay | array | O |
| Identyfikator produktu nadany przez merchanta | string | Y |
| ||||
| Kategoria produktu nadana przez merchanta | string | O |
| ||||
| Ean | string | O |
| ||||
| Nazwa produktu | string | Y |
| ||||
| Opis produktu | string | O |
| ||||
| Link do produktu na stronie merchanta | string | O |
| ||||
| Link do zdjęcia produktu. Preferowane formaty: png, jpg (rekomendacja: png bez tła) | string | O |
Preferowane format: png, jpg (rekomendacja: png bez tła) |
| Cena podstawowa z produkt | object | Y |
| Cena netto | number ($decimal)(10,2)
| Y |
| ||||
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |||||
| VAT | number ($decimal)(10,2) | Y |
| Cena promocyjna produktu | object | O | |
| Cena netto | number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |||||
| VAT | number ($decimal)(10,2) | Y |
| Obiekt służący do przekazania najniższej ceny produktu z ostatnich 30 dni. Wymagane w celu obsłużenia dyrektywy Omibus | object | O | |
| Cena netto | number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |||||
| VAT | number ($decimal)(10,2) | Y |
| Obiekt do przekazania informacji o ilości produktu | object | Y | |
| Ilość produktu | number ($decimal)
| Y |
| ||||
| Typ quantity. Dostępne wartości: [ DECIMAL, INTEGER ]
| string | Y |
| ||||
| Jednostka ilości produktu | string | O |
| ||||
| Ilość dostępnego produktu sklepie | number($decimal)
| O |
| ||||
| Maksymalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu | number($decimal)
| O |
|
| Obiekt służący do określenia atrybutów produktu | array | O |
| Nazwa atrybutu | string | Y |
|
| Wartość atrybutu | string | Y |
| Obiekt obecnie nie wykorzystywany. Funkcjonalność będzie wdrażana w kolejnych wersjach aplikacji. | object | O |
| Id wariantu | string | Y |
| Nazwa wariantu | string | Y |
| Opis szczegółowy wariantu | string | O |
| Typ wariantu | string | O |
| Wartość wariantu | string | O |
| Obiekt służący do przekazania listy zgód dla danego koszyka | array | Y |
| Id zgody nadawane przez merchanta | string | Y |
| ||||
| Link przekierowujący do pełnej treści zgodny np. do strony merchanta | string | Y | "consent_link
| 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 |
|
| Treść komunikatu prezentowana klientowi aplikacji | string | Y | |||||
| Dni tygodnia w jakich ma być prezentowany komunikat | array | O | |||||
| Godzina od której ma być prezentowany komunikat | string | O | |||||
| Godzina do której ma być prezentowany komunikat | string | O | |||||
| Lista kodów promocyjnych zastosowanych na koszyku | array | O | |||||
| Nazwa kodu. W kolejnej wersji aplikacji pole nie wymagalne | string | Y |
| ||||
| Kod promocyjny | string | Y |
| ||||
| 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 |
| ||||
| Funkcjonalność wykorzystująca obiekt promotions_available dostępna w kolejnych wersjach aplikacji. Obiekt służący do przekazania listy dostępnych promocji dla koszyka | array | O |
| ||||
| Nazwa kodu promocyjnego | string | O | |||||
| Opis promocji, który będzie prezentowany w aplikacji InPost Pay | string | O | |||||
| Link do zdjęcia lub loga | string | O | |||||
| Data startu promocji | string($date-time) | O | |||||
| Data końca promocji | string($date-time) | O | |||||
| Priorytet prezentacji oferty na koszyku w aplikacji InPost Pay | integer | O | |||||
| Obiekt służący do przekazania dokumentów/regulaminów promocji | array | O | |||||
| Nazwa dokumentu | string | O | |||||
| Link do dokumentu | string | O | |||||
| Lista do przekazania informacji o produktach w koszyku | array | Y | |||||
| Identyfikator produktu nadany przez merchanta | string | Y |
| ||||
| Kategoria produktu nadana przez merchanta | string | O |
| ||||
| Ean | string | O |
| ||||
| Nazwa produktu | string | Y |
| ||||
| Opis produktu | string | O |
| ||||
| Link do produktu na stronie merchanta | string | O |
| ||||
| Link do zdjęcia produktu. Preferowane formaty: png, jpg (rekomendacja: png bez tła) | string | O |
Preferowane format: png, jpg (rekomendacja: png bez tła) | ||||
| Obiekt do przekazania dodatkowych zdjęć produktu (lista) | object | O |
| ||||
| Zdjęcie produktu. Preferowany rozmiar 360 x 352 | string | Y |
| ||||
| Zdjęcie produktu. Preferowany rozmiar 360 x 504 | string | Y |
| ||||
| Cena podstawowa z produkt | object | Y | |||||
| Cena netto | Number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | Number ($decimal)(10,2) | Y | |||||
| VAT | Number ($decimal)(10,2) | Y | |||||
| Cena promocyjna produktu | object | O | |||||
| Cena netto | number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |||||
| VAT | Number ($decimal)(10,2) | Y | |||||
| 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 | O | |||||
| Cena netto | number ($decimal)(10,2) | Y |
| ||||
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |||||
| VAT | number ($decimal)(10,2) | Y | |||||
| Obiekt do przekazania informacji o ilości produktu | object | Y | |||||
| Ilość produktu | number ($decimal) | Y |
| ||||
| Typ quantity. Dostępne wartości: [ DECIMAL, INTEGER ] Jeżeli
| string | Y |
| ||||
| Jednostka ilości produktu | string | O |
| ||||
| Ilość dostępnego produktu sklepie | number ($decimal) | O |
| ||||
| Minimalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu | number ($decimal)
| O |
| ||||
| Maksymalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu | number ($decimal) | O |
| ||||
| 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 |
| ||||
| Obiekt służący do określenia atrybutów produktu | array | O | |||||
| Nazwa atrybutu | string | Y |
| ||||
| Wartość atrybutu | string | Y | |||||
| Obiekt służący do przekazania informacji o dostępnych formach dostawy dla produktu. Jeśli brak obiektu delivery_product, to oznacza że dostawa dostępna wszystkimi typami | object | O | |||||
| Typ dostawy | string | O | |||||
| Flaga informująca czy typ dostawy jest dostępny. | boolean | O | |||||
| Obiekt służący do przekazania listy produktów sugerowanych dla danego koszyka, które klient może dodać z poziomu aplikacji InPost Pay | array | O | |||||
| Identyfikator produktu nadany przez merchanta | string | Y |
| ||||
| Kategoria produktu nadana przez merchanta | string | O |
| ||||
| Ean | string | O |
| ||||
| Nazwa produktu | string | Y |
| ||||
| Opis produktu | string | O |
| ||||
| Link do produktu na stronie merchanta | string | O |
| ||||
| Link do zdjęcia produktu. Preferowane formaty: png, jpg (rekomendacja: png bez tła) | string | O |
| ||||
| Opis zgody, nie więcej niż 500 znaków | string | Y |
| ||||
| Wersja zgody | string | Y |
| ||||
| Typ zgody. Dostępne wartości: Enum: [OPTIONAL, REQUIRED_ONCE, REQUIRED_ALWAYS ] OPTIONAL – Zgoda opcjonalna REQUIRED_ONCE - wymagana jednorazowo. Zgoda o takim typie i wersji będzie zapisana w profilu użytkownika, z informacją, że klient wyraził zgodę i w przypadku kolejnych koszyków będzie domyślnie zaznaczona. REQUIRED_ALWAYS - wymagana zawsze. Zgoda o takim typie i wersji nie jest zapisywana w profilu użytkownika. Klient za każdym razem musi wyrazić zgodę. | string | Y |
|
Response
Nazwa pola | Opis | Typ | Wymagalność | Dodatkowe uwagi |
| Identyfikator koszyka nadawany przez aplikacje Inpost Pay Dana nie wykorzystywana przez merchanta. Identyfikator docelowo wykorzystywany przez widget w celu umożliwienia prawidłowego przekierowania z poziomu widget do aplikacji Inpost Pay | string | Y |
|
Przykładowy request
language | json |
---|
Preferowane format: png, jpg (rekomendacja: png bez tła) | ||||
| Obiekt do przekazania dodatkowych zdjęć produktu (lista) | object | O |
|
| Zdjęcie produktu. Preferowany rozmiar 360 x 352 | string | Y |
|
| Zdjęcie produktu. Preferowany rozmiar 360 x 504 | string | Y |
|
| Cena podstawowa z produkt | object | Y | |
| Cena netto | number ($decimal)(10,2)
| Y |
|
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |
| VAT | number ($decimal)(10,2) | Y | |
| Cena promocyjna produktu | object | O | |
| Cena netto | number ($decimal)(10,2) | Y |
|
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |
| VAT | number ($decimal)(10,2) | Y | |
| 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 | O | |
| Cena netto | number ($decimal)(10,2) | Y |
|
| Cena brutto (netto + VAT) | number ($decimal)(10,2) | Y | |
| VAT | number ($decimal)(10,2) | Y | |
| Obiekt do przekazania informacji o ilości produktu | object | Y | |
| Ilość produktu | number ($decimal)
| Y |
|
| Typ quantity. Dostępne wartości: [ DECIMAL, INTEGER ]
| string | Y |
|
| Jednostka ilości produktu | string | O |
|
| Ilość dostępnego produktu sklepie | number($decimal)
| O |
|
| Minimalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu | number ($decimal) | O |
|
| Maksymalna ilość produktu jaką klient może zamówić np. przy jednym zamówieniu | number($decimal)
| O |
|
| 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 |
|
| Obiekt służący do określenia atrybutów produktu | array | O | |
| Nazwa atrybutu | string | Y |
|
| Wartość atrybutu | string | Y | |
| Obiekt służący do przekazania informacji o dostępnych formach dostawy dla produktu. Jeśli brak obiektu delivery_product, to oznacza że dostawa dostępna wszystkimi typami | object | O | |
| Typ dostawy | string | O | |
| Flaga informująca czy typ dostawy dostępna | boolean | O | |
| Flaga informująca czy po dodaniu produktu sugerowanego do koszyka, klient będzie miał darmową dostawę. W przypadku, gdy if_delivery_free=true jest na danym produkcie sugerowanym, klientowi zostanie zaprezentowany odpowiedni komunikat na tym produkcie | boolean | O | |
| Obiekt służący do przekazania listy zgód dla danego koszyka. | array | Y | |
| Id zgody nadawane przez merchanta | string | Y |
|
| Link przekierowujący do pełnej treści zgodny np. do strony merchanta | string | Y |
|
| Label do linku przekazanego w label_link | string | O |
|
| Obiekt służący do przekazania dodatkowego linku do zgody/regulaminu | object | O |
|
| Id zgody nadawane przez merchanta | string | O |
|
| Link przekierowujący do pełnej treści zgodny np. do strony merchanta | string | O |
|
| Label do linku przekazanego w label_link | string | O |
|
| Opis zgody, nie więcej niż 500 znaków | string | Y |
|
| Wersja zgody | string | Y |
|
| Typ zgody. Dostępne wartości: Enum: [OPTIONAL, REQUIRED_ONCE, REQUIRED_ALWAYS ] OPTIONAL – Zgoda opcjonalna REQUIRED_ONCE - wymagana jednorazowo. Zgoda o takim typie i wersji będzie zapisana w profilu użytkownika, z informacją, że klient wyraził zgodę i w przypadku kolejnych koszyków będzie domyślnie zaznaczona. REQUIRED_ALWAYS - wymagana zawsze. Zgoda o takim typie i wersji nie jest zapisywana w profilu użytkownika. Klient za każdym razem musi wyrazić zgodę. | string | Y |
|
| Obiekt służący do przekazania cookie koszyka klienta w celu umożliwienia przejścia ze aplikacji InPost Pay do koszyka w sklepie merchanta | object | O |
|
| url sklepu | string | Y |
|
| Obiekt do przekazania cookie | object | Y |
|
| Domena pliku cookie reprezentowana przez parę key-value | string | Y |
|
| Cookie key | string | Y |
|
| Cookie value | string | Y |
|
| Cookie path | string | O |
|
| Czas wygaśnięcia pliku cookie lub maxAge | string($date-time) | O |
|
| Informacje o bezpieczeństwie plików cookie | string | O |
|
| Informacje http o plikach cookie | string | O |
|
| Informacje o pliku cookie sameSite [ STRICT, LAX, NONE ] | string | O |
|
| Priorytet plików cookie [ LOW, MEDIUM, HIGH ] | string | O |
|
| Maksymalny czas cookie | number ($decimal) | O |
|
Response
Nazwa pola | Opis | Typ | Wymagalność | Dodatkowe uwagi |
| Identyfikator koszyka nadawany przez aplikacje InPost Pay Dana nie wykorzystywana przez merchanta. Identyfikator docelowo wykorzystywany przez widget w celu umożliwienia prawidłowego przekierowania z poziomu widget do aplikacji InPost Pay | string | Y |
|
Status | ||||
---|---|---|---|---|
|
/v1/izi/basket/{basket_id}
Przykładowy request
Code Block | ||
---|---|---|
| ||
{
"browser_id": "xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"summary": {
"basket_base_price": {
"net": "80.49",
"gross": "99.00",
"vat": "18.51"
},
"basket_final_price": {
"net": "80.49",
"gross": "99.00",
"vat": "18.51"
},
"basket_promo_price": {
"net": "80.49",
"gross": "99.00",
"vat": "18.51"
},
"currency": "PLN",
"basket_expiration_date": "2023-08-24T07:58:30.062Z",
"basket_additional_information": "string",
"payment_type": ["CARD","CARD_TOKEN","APPLE_PAY","BLIK_CODE","BLIK_TOKEN","PAY_BY_LINK","SHOPPING_LIMIT","DEFERRED_PAYMENT","GOOGLE_PAY","CASH_ON_DELIVERY"],
"basket_notice": null
},
"delivery": [
{
"delivery_type": "APM",
"delivery_date": "2023-08-24T07:58:30.062Z",
"delivery_options": [],
"delivery_price": {
"net": "0.00",
"gross": "0.00",
"vat": "0.00"
}
}
],
"promo_codes": [],
"products": [
{
"product_id": "585",
"product_category": "20",
"ean": "0",
"product_name": "Drewniane bule",
"product_description": " \r\n\r\nCo to są bule? Na mieście mówią, że „bule to kule na nudy bóle". To gra, w której zasady są proste, a emocje sięgają 10 piętra. Bule to kule. W tym przypadku -- drewniane, z twardego drewna bukowego. Jedna z nich to świnka zwana prosiaczkiem. Taka kruszynka-wieprzowinka.\r\n\r\nCo trzeba mieć, żeby zagrać w bule? Przynajmniej jednego przyjaciela. Albo przyjaciółkę. Albo sąsiada, wujka, kuzynkę, znajomego, brata, siostrę, kolegę. Trzeba też mieć kawałek trawnika, może być bez trawy. Bule to rzucanie kulami w świnkę. Kto rzuci najbliżej, ten wygrywa. Gra w bule jest prosta, choć kule są okrągłe. Dziwne, co nie?",
"product_link": "https://outofthebox.pl/product/drewniane-bule/",
"product_image": "https://outofthebox.pl/app/uploads/2022/10/INPOST_aranzacje3-1.jpg",
"base_price": {
"net": 80.49,
"gross": 99.00,
"vat": 18.51
},
"quantity": {
"quantity": 1,
"quantity_type": "INTEGER",
"quantity_unit": "pcs",
"available_quantity": 275,
"max_quantity": 275
},
"product_attributes": []
}
],
"related_products": [
{
"product_id": "567",
"product_category": "20",
"ean": "0",
"product_name": "Mata do ćwiczeń",
"product_description": " \r\n\r\nNie wiemy, ile korków wystrzelonych w Sylwestra potrzeba do stworzenia korkowej maty do jogi. Ale wiemy, że dzięki niej możesz zacząć całkiem nowy czas w swoim życiu.\r\n\r\nĆwiczenia na niej to prawdziwy body & soul balance.\r\n\r\nZatem rusz swe "body" po naturalny zastrzyk energii i zadbaj o relaks swojej "soul". Warto wiedzieć, że mata korkowa z naturalnego kauczuku ma najlepsze właściwości antypoślizgowe.",
"product_link": "https://outofthebox.pl/product/mata-do-cwiczen/",
"product_image": "https://outofthebox.pl/app/uploads/2022/10/INPOST_aranzacje25.jpg",
"base_price": {
"net": 202.44,
"gross": 249.00,
"vat": 0.00
},
"quantity": {
"quantity": 1,
"quantity_type": "INTEGER",
"quantity_unit": "pcs",
"available_quantity": 197485,
"max_quantity": 197485
},
"product_attributes": [
{
"attribute_name": "Wymiary/Pojemność",
"attribute_value": "183x61 cm, 4 mm grubości"
},
{
"attribute_name": "Materiał",
"attribute_value": "Korek i naturalny kauczuk"
},
{
"attribute_name": "Waga",
"attribute_value": "2.6 kg"
}
]
},
{
"product_id": "554",
"product_category": "20",
"ean": "0",
"product_name": "Paryżanka",
"product_description": " \r\n\r\nCzy wiesz, co tak naprawdę widzą ludzie, kiedy idziesz sobie z paryżanką?\r\n\r\nWidzą, że jesteś EKO. Nie używasz foliowych woreczków jednorazowego użytku.\r\n\r\nWidzą, że jesteś modna. W końcu Paryż to miejsce, w którym od dawna decyduje się o tym, co warto ze sobą nosić.\r\n\r\nParyżanka nie kryje się z tym, że wygląda rewelacyjnie, kiedy jest wypełniona świeżymi owocami.\r\n\r\nWidzą też, że lubisz naturalne materiały, bo paryżanka wykonana jest w 100 procentach z bawełny.\r\n\r\nI że w swoim życiu działasz zgodnie z zasadą out of the box.\r\nPo swojemu. Jak InPost.",
"product_link": "https://outofthebox.pl/product/paryzanka/",
"product_image": "https://outofthebox.pl/app/uploads/2022/10/INPOST_aranzacje11-1.jpg",
"base_price": {
"net": 23.58,
"gross": 29.00,
"vat": 0.00
},
"quantity": {
"quantity": 1,
"quantity_type": "INTEGER",
"quantity_unit": "pcs",
"available_quantity": 468,
"max_quantity": 468
},
"product_attributes": []
}
],
"consents": [
{
"consent_id": "3",
"consent_link": "https://outofthebox.pl/zwroty-i-reklamacje/",
"consent_description": "zwroty i reklamacje",
"consent_version": "1",
"requirement_type": "OPTIONAL"
}
]
} |
Response
Code Block | ||
---|---|---|
| ||
{
"inpost_basket_id": "866e5bf6-4e8a-443e-98f5-f9b0c5c149dd"
} |
Przykład implementacji w języku PHP
Podanie kodu -
View file name implementacjaKlienta.txt
Info |
---|
W pliku implementacjaKlienta.txt została dodana tylko funkcja putBasket. |
Code Block | ||
---|---|---|
| ||
/** * Client symfony implementation used for communication between Merchant and InPost Pay application. * * @param InpostPayBearerServiceInterface $inpostPayBearerService <p> Bearer service interface, * with contains creating bearer token which is required for communication with Inpost Pay </p> * */ final class InpostPayClient implements InpostPayClientInterface { private ClientInterface $client; private InpostPayURLCreatorInterface $URLCreator; private InpostPayBearerServiceInterface $bearerService; public function __construct( ClientInterface $client, InpostPayURLCreatorInterface $URLCreator, InpostPayBearerServiceInterface $bearerService ) { $this->client = $client; $this->URLCreator = $URLCreator; $this->bearerService = $bearerService; } public function putBasket(string $basketId, Basket $basket): InpostBasketId { $path = sprintf('basket/%s', $basketId); $uri = new Uri($this->buildUri($path)); /** @var string $body */ $body = json_encode($basket); $request = new Request( |
'PUT', |
$uri, |
$this->provideDefaultClientHeaders(), $body |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
try |
{ |
|
|
|
|
|
|
|
|
|
|
|
|
$response |
= $this->client- |
>sendRequest($request); $content = $response->getBody()->getContents(); /** * @var array{inpost_basket_id: string} $responseData */ $responseData = |
json_decode($content, true, 512, JSON_THROW_ON_ERROR); return |
InpostBasketId::fromArray($responseData); } catch (\Throwable |
$throwable) { throw InpostPayPutBasketException::createResponseException($throwable); |
|
} } public |
function deleteBasketBinding(string $basketId, bool $ifBasketRealized = |
null): void { |
|
$path = sprintf('basket/%s/binding', $basketId); |
$uri = (new Uri($this->buildUri($path))) |
|
->withQuery(Psr7\Query::build(['if_basket_realized' => $ifBasketRealized])); $request |
= new Request( 'DELETE', |
|
$uri, |
|
$this->provideDefaultClientHeaders() ); |
|
try { |
|
$response = $this->client->sendRequest($request); |
$statusCode = $response->getStatusCode(); |
|
$content = $response->getBody()->getContents(); |
|
} catch (\Throwable $throwable) { |
|
|
throw InpostPayDeleteBasketBindingException::createResponseException($throwable); |
} |
if (HttpResponseStatus::NO_CONTENT()->getValue() === $statusCode) { |
|
return; } |
|
throw InpostPayDeleteBasketBindingException::createBadStatusCodeException($statusCode, $content); |
} public function |
deleteBrowserBinding(string $browserId): void { $path = sprintf('browser/%s/binding', $browserId); $uri = new Uri($this->buildUri($path)); $request = new Request( 'DELETE', $uri, |
$this->provideDefaultClientHeaders() ); |
try { |
$response = $this->client->sendRequest($request); $statusCode = |
$response->getStatusCode(); $content = $response->getBody()->getContents(); |
|
} catch (\Throwable $throwable) { |
|
throw InpostPayDeleteBrowserBindingException::createResponseException($throwable); } |
if (HttpResponseStatus::NO_CONTENT()->getValue() === $statusCode) { |
|
return; |
} throw InpostPayDeleteBrowserBindingException::createBadStatusCodeException($statusCode, $content); } |
|
public function getSigningKey(string $version): SigningKeyResponse |
{ $path = sprintf('signing-keys/public/%s', $version); |
|
$uri = new Uri($this->buildUri($path)); $request |
= new Request( |
'GET', |
$uri, $this->provideDefaultClientHeaders() |
); try { |
|
$response = $this->client->sendRequest($request); |
$statusCode = $response->getStatusCode(); $content = $response->getBody()->getContents(); |
if (HttpResponseStatus::OK()->getValue() |
=== $statusCode) { /** |
|
* @var SigningKeyResponseArray $data |
|
|
|
|
*/ |
$data = json_decode($content, true, 512, JSON_THROW_ON_ERROR); |
return SigningKeyResponse::fromArray($data); |
|
} } catch |
(\Throwable $throwable) { throw InpostPayGetSigningKeyException::createResponseException($throwable); |
} |
throw InpostPayGetSigningKeyException::createBadStatusCodeException($statusCode, $content); } |
|
public function getSigningKeys(): SigningKeysResponse |
{ |
$path = 'signing-keys/public'; |
$uri = new Uri($this->buildUri($path)); |
$request = new Request( |
'GET', |
$uri, |
$this->provideDefaultClientHeaders() ); try { $response = $this->client->sendRequest($request); $statusCode = $response->getStatusCode(); $content = $response->getBody()->getContents(); if (HttpResponseStatus::OK()->getValue() === $statusCode) { |
|
|
/** |
|
* @var |
SigningKeysResponseArray $data */ |
|
$data |
= json_decode($content, true, 512, JSON_THROW_ON_ERROR); |
return SigningKeysResponse::fromArray($data); } |
} catch (\Throwable $throwable) { |
|
throw InpostPayGetSigningKeysException::createResponseException($throwable); |
|
} throw InpostPayGetSigningKeysException::createBadStatusCodeException($statusCode, $content); |
} /** * @return array{ |
|
* Authorization: string, * |
|
Content-Type: string * } * |
|
* @throws InpostPayEndpointException */ |
private function provideDefaultClientHeaders(): array { |
|
return [ |
|
|
'Authorization' => sprintf('Bearer |
%s', $this->bearerService->getBearerToken()), |
|
|
'Content-Type' => 'application/json', |
]; } private function |
buildUri(string $path): string { return sprintf( |
'%s%s', |
$this->URLCreator->create()->getUrl(), |
$path ); |
|
} } |
Response
language | json |
---|
W SDK.zip zawiera się kod zawierający obiekt requestu oraz response endpointu.
View file | ||
---|---|---|
|