Sepetler ve Checkout

Kargo yöntemleri

Mağazanın aktif kargo yöntemlerini, belirli bir sepet için geçerli fiyatla birlikte listeleme.

Markdown olarak görüntüle

Kargo yöntemleri satıcı tarafından yapılandırılır. Her birinin sabit bir amount değeri ve opsiyonel bir free_over_amount eşiği vardır: sepetin brüt ürün toplamı eşiğe ulaştığında, o sepet için kargo ücretsizdir. Bu endpoint her yöntemi, effective_amount alanı verilen sepete göre önceden çözümlenmiş olarak döndürür; böylece storefront, ücretsiz kargo kuralını yeniden uygulamak zorunda kalmadan kargo seçim arayüzünü render edebilir.

Kargo yalnızca kargolanabilir satırlar içeren sepetler için geçerlidir: ürünü requires_shipping: true olan satırlar. shipping_method_id alanının ne zaman zorunlu olduğu için Checkout sayfasına bakın.

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

Mağazanın aktif kargo yöntemlerini, ada göre sıralı ve bu sepet için geçerli fiyatla birlikte listeler. commerce:read gerektirir. Sepet sahipliği uygulanır (Sepetler sayfasına bakın). Liste sayfalanmaz.

Parametreler

Path

AdTürZorunluAçıklama
idstring (UUID)evetSepet id'si. Arama için her durum kabul edilir, ancak fiyat bağlamı yalnızca active bir sepet için anlamlıdır.

Header'lar

AdTürZorunluAçıklama
X-Customer-TokenstringhayırSepet misafir olmayan bir müşteriye bağlıysa zorunludur.

Response alanları

Zarf {"data": [...]} şeklindedir. Sepet ve sipariş para değerlerinin aksine buradaki tutarlar, para nesneleri değil, minör birim cinsinden düz tamsayılardır; para birimi, sepetin para birimidir (EUR).

AdTürZorunluAçıklama
idstring (UUID)her zamanKargo yöntemi id'si. Checkout'ta shipping_method_id olarak gönderin.
namestringher zamanGörünen ad.
amountintegerher zamanMinör birim cinsinden taban fiyat.
free_over_amountinteger veya nullher zamanKargonun ücretsiz hale geldiği brüt ürün toplamı (minör birim) veya yöntem hiçbir zaman ücretsiz olmuyorsa null.
effective_amountintegerher zamanBu sepetin şu anda ödeyeceği fiyat: sepetin brüt ürün toplamı free_over_amount değerine ulaştığında 0, aksi halde 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, sepetin şu anki haline ilişkin bir anlık görüntüdür: sepet içeriğini değiştirmek onu değiştirebilir; bu nedenle kargo seçim arayüzü görünürken sepet değişikliklerinden sonra yeniden çekin.

Hatalar

DurumGövdeNe zaman
404{"message": "..."}Bilinmeyen sepet id'si veya başka bir mağazanın sepeti.
403{"message": "This cart belongs to a customer."}Sahiplik kontrolü başarısız.
403scope, modül veya askıya alma gövdesiSepetler sayfasına bakın.
429{"message": "Too Many Attempts."}Rate limit aşıldı.