Przejdź do głównej zawartości

Zmiana koszyka

Możliwa jest zmiana koszyka, który został już wysłany do OpenApp, ale nie został jeszcze skonwertowany. Przydatne, gdy użytkownik modyfikuje koszyk w sklepie po tym, jak OpenApp już go pobrał. W tym celu można wykonać callback zmiany koszyka, jak pokazano w kroku 7 diagramu sekwencji:

Żądanie

Żądanie zmiany koszyka jest wykonywane metodą POST na następujący endpoint:

POST {{OpenAppUrl}}/merchant/v1/basket/change

Treść żądania zawiera zaktualizowany koszyk:

{
"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"
}

Odpowiedź

W odpowiedzi OpenApp potwierdzi aktualizację koszyka w aplikacji.

ostrzeżenie

Wysłanie zmiany koszyka spowoduje ponowne załadowanie koszyka dla użytkownika, jeśli nie zainicjował jeszcze płatności. Jeżeli użytkownik zainicjował płatność, płatność zostanie zakończona, a zamówienie zostanie złożone zgodnie z oryginalnym koszykiem. Sklep musi być w stanie obsłużyć taki scenariusz.

Błędy

Nazwa błęduKod
InvalidBasketException400
MissingDeliveryOptionsException400
BasketExpiredException400