Sepet mantığı

Headless vitrinde sepet, cart_token ile takip edilir. İlk ürün ekleme isteğinde API bir token döndürür. Frontend bu token’ı cookie veya server session içinde saklar. Önerilen cookie adı:
hm_cart_token

Ürün ekleme

curl -X POST "https://api.hemenmagaza.com/v1/cart/items" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": 101,
    "quantity": 1
  }'
Response içindeki cart_token sonraki sepet isteklerinde tekrar kullanılır.

Mevcut sepete ekleme

curl -X POST "https://api.hemenmagaza.com/v1/cart/items" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "cart_token": "cart_8f1f7c",
    "product_id": 102,
    "quantity": 2
  }'

Checkout redirect modeli

Hemen Mağaza MVP headless checkout modeli hibrit redirect yaklaşımı kullanır. Headless vitrin hızlı kalır, ödeme ise Bagisto’nun güvenli native checkout altyapısında tamamlanır. Akış:
  1. Kullanıcı Next.js vitrinde sepeti hazırlar.
  2. cart_token cookie’den okunur.
  3. Kullanıcı backend checkout köprüsüne yönlendirilir.
  4. Laravel sepeti session’a bağlar.
  5. Kullanıcı native checkout sayfasında ödemeyi tamamlar.
  6. Başarılı siparişten sonra storefront success sayfasına dönülür.
Örnek yönlendirme:
https://velunamora.com/checkout/seamless?cart_token=cart_8f1f7c

Frontend önerisi

Checkout butonu sadece geçerli sepet varsa aktif olmalıdır.
const redirectUrl = `${tenantUrl}/checkout/seamless?cart_token=${cartToken}`;
window.location.href = redirectUrl;

Dikkat edilmesi gerekenler

  • Cart token kullanıcıya ait hassas bağlamdır, loglarda açık şekilde tutmayın.
  • Ürün fiyatı frontend’den değil backend sepet hesaplamasından gelir.
  • Checkout sırasında ödeme, kargo, vergi ve kupon hesapları backend tarafından yapılır.