Przejdź do głównej zawartości

Inicjacja koszyka

Gdy merchant ma zintegrowane pobieranie katalogu i włączoną funkcję wyświetlania katalogu w aplikacji, użytkownicy mogą przeglądać produkty merchanta bezpośrednio w aplikacji OpenApp. Po wybraniu produktów OpenApp inicjuje koszyk w systemie merchanta przed kontynuacją standardowego procesu checkout.

Żądanie

OpenApp wykonuje żądanie HTTP POST do endpointu skonfigurowanego w panelu merchanta:

POST <initiate-url>

Treść żądania zawiera produkty wybrane przez użytkownika w aplikacji - każdy produkt zawiera id i ean z katalogu oraz ilość i ceny znane OpenApp w danym momencie. Jeśli użytkownik jest znany merchantowi (na przykład jest zalogowany we własnej aplikacji merchanta), opcjonalne pole loggedUser zawiera stabilny identyfikator użytkownika po stronie merchanta.

{
"basket": {
"products": [
{
"ean": "12312",
"id": "id123",
"quantity": 2,
"unitPrice": 7000,
"linePrice": 14000
}
]
}
}

Odpowiedź

Merchant weryfikuje żądane produkty pod kątem aktualnego stanu magazynowego i cen, a następnie odpowiada autorytatywnym koszykiem w standardowym formacie OpenPayBasket - takim samym, jaki jest zwracany przez pobieranie koszyka i przeliczanie koszyka. Jeśli produkt nie może zostać zrealizowany (na przykład brak w magazynie lub ilość przekracza dostępny stan), merchant zwraca go z odpowiednim kodem error zamiast go pomijać, aby OpenApp mógł poinformować użytkownika.

{
"id": "basket-id",
"expiresAt": "2022-03-23T21:00:00Z",
"price": {
"currency": "PLN",
"discounts": [
{
"code": "discount-code-text",
"value": 1000
}
],
"basketValue": 13000
},
"deliveryOptions": [
{
"key": "INPOST_APM",
"cost": 0
},
{
"key": "DPD_COURIER",
"cost": 1000,
"timing": "next business day"
}
],
"products": [
{
"ean": "12312",
"id": "id123",
"name": "Superb product",
"images": [
"http://cdn.merchant.com/static/products/id123/1",
"http://cdn.merchant.com/static/products/id123/2"
],
"quantity": 2,
"unitPrice": 7000,
"linePrice": 14000,
"originalUnitPrice": 7000,
"originalLinePrice": 14000,
"policies": [
{
"type": "AGE",
"criteria": {
"minAge": 18
}
}
]
}
],
"loggedUser": "user-id-from-webshop"
}