Misafir Sepeti
storefront:read — token üretimi uygulama token'ı ister; üretilen misafir token'ı storefront:cart scope'u taşır. Token almak için Kimlik Doğrulama.Üye olmayan kullanıcıların sepet uçlarını kullanabilmesi için misafir sepet token'ı üretir ve müşteri girişinde misafir sepetinin üye sepetine taşınmasını tanımlar. Token üretimi storefront:read scope'lu uygulama token'ı ister; üretilen misafir token'ı storefront:cart scope'u taşır.
Misafir token'ı alma
POST /guest-token
İstek gövdesi boştur; kimlik, uygulama token'ından gelir.
curl -X POST "https://<domain>/api/v3/storefront/2026-01/guest-token" \
-H "Accept: application/vnd.api+json" \
-H "Authorization: Bearer <app_access_token>"
{
"access_token": "8|xxxxxxxxxxxxxxxxxxxxxxxx",
"token_type": "Bearer",
"expires_at": "2026-08-27T10:00:00+00:00",
"scope": "storefront:cart"
}
Yanıt durum kodu 201 Created'tır.
| Alan | Tip | Kural |
|---|---|---|
access_token | string | Misafir sepet token'ı |
token_type | string | Sabit "Bearer" |
expires_at | string | ISO 8601; token 30 gün geçerlidir |
scope | string | Sabit "storefront:cart" |
Her çağrı yeni bir misafir kimliği ve token üretir; uygulama token'ı gibi idempotent değildir. Client token'ı saklamalı ve süresi boyunca aynı token'la devam etmelidir.
Misafir akışı
- Uygulama token'ıyla
POST /guest-tokençağrılır, dönenaccess_tokensaklanır. - Tüm sepet istekleri bu token'la yapılır:
Authorization: Bearer <guest_access_token>. Ayrı bir header ya da parametre yoktur; misafir token'ı standart bearer olarak gider. GET /cart,DELETE /cart,POST /cart-items,PATCH /cart-items/{itemId},DELETE /cart-items/{itemId}uçlarının tamamı üye sepetiyle birebir aynı yanıt şeklini döner (data.id: "me").- Misafir sepetleri birbirinden izoledir; bir token yalnızca kendi satırlarını görür.
Girişte sepet birleşmesi
Misafir, üye girişi yaptığında sepetinin üye sepetine taşınması için giriş isteğine guestCartToken alanı eklenir:
POST /api/v3/storefront/customer/token
curl -X POST "https://<domain>/api/v3/storefront/customer/token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"identifier": "musteri@example.com",
"password": "<password>",
"device_name": "iphone-15",
"guestCartToken": "<guest_access_token>"
}'
| Alan | Tip | Kural |
|---|---|---|
guestCartToken | string | Opsiyonel; misafir akışındaki access_token değeri. Verilmezse giriş sepete dokunmaz |
Birleşme kuralları:
- Misafir satırı üye sepetinde yoksa üye sepetine eklenir.
- Aynı ürün/varyant satırı üye sepetinde varsa adet misafir değeriyle üzerine yazılır (toplanmaz) — misafirin son niyeti esas alınır.
- Birleşme sonrası misafir sepeti temizlenir ve misafir token'ı iptal edilir: aynı token'la yapılan sonraki sepet istekleri
401döner. Client, girişten sonra müşteri token'ına geçmelidir. - Geçersiz, süresi dolmuş ya da misafir olmayan bir
guestCartTokensessizce yok sayılır — giriş normal tamamlanır, birleşme yapılmaz, gönderilen token iptal edilmez.
Mağazada "girişte üye sepeti korunmasın" ayarı kapalıysa satır taşıma yukarıdaki gibi çalışır; ayar açıksa üye sepetine satır taşınmaz ama misafir sepeti yine temizlenir ve token iptal edilir.
Hatalar
| Durum kodu | Sebep |
|---|---|
| 401 | guest-token ucunda uygulama token'ı yok/geçersiz; müşteri token'ıyla çağrı da 401 döner |
| 403 | Uygulama token'ında storefront:read scope'u eksik |
Uç hız sınırına tabidir;
429yanıtındaRetry-Afterbaşlığına uy.