Winkelwagens & Checkout

Verzendmethoden

De actieve verzendmethoden van de store opvragen met de effectieve prijs voor een specifieke cart.

Bekijk als Markdown

Verzendmethoden worden door de merchant geconfigureerd. Elke methode heeft een vast amount en een optionele free_over_amount-drempel: wanneer het bruto goederentotaal van de cart de drempel bereikt, is verzending voor die cart gratis. Dit endpoint geeft elke methode terug met het effective_amount al bepaald voor de opgegeven cart, zodat de storefront de verzendkeuze kan tonen zonder de gratis-verzendregel zelf te implementeren.

Verzending geldt alleen voor carts met verzendbare regels: regels waarvan het product requires_shipping: true heeft. Zie de pagina Checkout voor wanneer shipping_method_id verplicht is.

GET /v1/api/commerce/carts/{id}/shipping-methods

Geeft de actieve verzendmethoden van de store terug, gesorteerd op naam, met de effectieve prijs voor deze cart. Vereist commerce:read. Cart-eigenaarschap wordt afgedwongen (zie de pagina Carts). De lijst is niet gepagineerd.

Parameters

Pad

NaamTypeVerplichtBeschrijving
idstring (UUID)jaCart-id. Elke status wordt geaccepteerd voor de lookup, maar de prijscontext is alleen zinvol voor een active cart.

Headers

NaamTypeVerplichtBeschrijving
X-Customer-TokenstringneeVereist als de cart gebonden is aan een niet-guest klant.

Responsevelden

De envelope is {"data": [...]}. Anders dan de geldwaarden van carts en orders zijn de bedragen hier kale integers in minor units, geen money-objecten; de valuta is de valuta van de cart (EUR).

NaamTypeVerplichtBeschrijving
idstring (UUID)altijdId van de verzendmethode. Geef dit bij checkout door als shipping_method_id.
namestringaltijdWeergavenaam.
amountintegeraltijdBasisprijs in minor units.
free_over_amountinteger of nullaltijdBruto goederentotaal (minor units) waarbij verzending gratis wordt, of null wanneer de methode nooit gratis is.
effective_amountintegeraltijdDe prijs die deze cart op dit moment zou betalen: 0 wanneer het bruto goederentotaal van de cart free_over_amount bereikt, anders amount.
Request
curl https://api.borkol.com/v1/api/commerce/carts/9d3f2a10-6b7c-4e6d-9f21-8a54c1d2e3f4/shipping-methods \
  -H "Authorization: Bearer {api_key}"
Request (JS)
const res = await fetch(
  `https://api.borkol.com/v1/api/commerce/carts/${cartId}/shipping-methods`,
  { headers: { Authorization: `Bearer ${apiKey}` } }
);
const { data: methods } = await res.json();
Response
{
  "data": [
    {
      "id": "3c4d5e6f-7a8b-4c9d-0e1f-2a3b4c5d6e7f",
      "name": "Express",
      "amount": 995,
      "free_over_amount": null,
      "effective_amount": 995
    },
    {
      "id": "4d5e6f7a-8b9c-4d0e-1f2a-3b4c5d6e7f8a",
      "name": "Standard",
      "amount": 495,
      "free_over_amount": 5000,
      "effective_amount": 0
    }
  ]
}

effective_amount is een momentopname voor de cart zoals hij nu is: het wijzigen van de cartinhoud kan het veranderen, dus haal het opnieuw op na cartmutaties als de verzendkeuze zichtbaar is.

Fouten

StatusBodyWanneer
404{"message": "..."}Onbekend cart-id of een cart van een andere store.
403{"message": "This cart belongs to a customer."}Eigenaarschapscheck mislukt.
403scope-, module- of schorsingsbodyZie de pagina Carts.
429{"message": "Too Many Attempts."}Rate limit overschreden.