Toplantı Planla
ShopifyStorefrontMimari

Shopify Cart Attributes Nedir? Sepet Verisi Nasıl Doğru Modellenmeli?

Shopify cart attributes ve line item properties arasındaki fark nedir? Hediye notu, teslimat seçimi, kişiselleştirme ve özel sipariş verilerini doğru modellemeyi öğrenin.

Reliefers DigitalReliefers DigitalYazar15 Temmuz 20264 Dakika
Shopify Cart Attributes Nedir? Sepet Verisi Nasıl Doğru Modellenmeli?

Shopify'da standart bir sipariş yalnızca ürün, adet ve fiyattan oluşmayabilir.

Bir marka müşteriden checkout öncesinde hediye notu, teslimat tercihi, paketleme seçeneği, gravür metni, ürün kişiselleştirmesi veya siparişe özel operasyon bilgisi almak isteyebilir.

İlk bakışta bunların tamamı “sepete ekstra bir alan ekleyelim” problemi gibi görünür. Asıl problem ise UI değil, verinin hangi commerce entity'sine ait olduğudur.

Önce temel ayrım: Veri neye ait?

Bir custom field eklemeden önce şu soru sorulmalıdır: Bu bilgi siparişin tamamına mı, belirli ürüne mi, müşteriye mi ait?

“Siparişin tamamını hediye paketi yap” cart/order-level bir bilgidir. “Bu kolyenin üzerine F.C. yaz” ise belirli bir ürün satırına aittir.

Cart attribute nedir?

Cart attribute, sepetin tamamıyla ilişkili key/value verisidir.

Örneğin gift_message = "İyi ki doğdun" veya delivery_preference = "evening" gibi bilgiler belirli bir SKU'ya değil mevcut cart'a aittir.

Cart attribute için uygun örnekler

  • hediye mesajı,
  • sipariş teslimat tercihi,
  • genel sipariş notu,
  • kurumsal referans numarası,
  • kampanya bağlamı,
  • storefront tarafından oluşturulan bazı operasyon değerleri.

Ancak cart attribute'u genel amaçlı database gibi kullanmamak gerekir.

Line-level veri nedir?

Bazı bilgiler cart'ın tamamına değil belirli bir ürün satırına aittir. Aynı kupadan iki adet sepette bulunup birine “Furkan”, diğerine “Eren” yazılacaksa veri ilgili cart line ile birlikte tutulmalıdır.

Cart attribute ile metafield aynı şey mi?

Hayır. Cart attribute geçici alışveriş oturumuna, product metafield ürüne, customer metafield müşteriye ve order metafield oluşmuş siparişin kalıcı business data'sına aittir.

Storefront'taki hidden input her zaman doğru çözüm değildir

Modern storefront'ta cart product page, quick add, cart drawer, recommendation widget, app, mobile menu veya AI agent üzerinden değişebilir. Cart state'ini yalnız belirli bir form component'inin bildiği veri haline getirmek kırılgan bir mimaridir.

Örnek: Hediye mesajı

Kötü mimari: CartDrawer → local state → giftMessage

Daha doğru yaklaşım: Gift Message UI → Cart Action → Cart Attribute → Commerce State

UI artık source of truth değildir; cart source of truth'tur.

Örnek: Gravürlü ürün

Aynı SKU iki farklı kişiselleştirmeyle sepete eklenebiliyorsa bunlar iki ayrı ticari satırdır. Bu ayrım fulfillment tarafında da kritiktir.

Nested cart lines ne zaman kullanılmalı?

Bazı durumlarda ek bilgi değil gerçek bir parent-child ürün ilişkisi vardır: laptop + ek garanti, kolye + gravür hizmeti veya hediye + premium paketleme gibi. Bağımsız fiyatı, inventory'si veya fulfillment anlamı bulunan seçeneklerde ayrı merchandise/cart line daha doğru olabilir.

Operasyon sistemleri neden baştan düşünülmeli?

Storefront'ta bilgi göstermek kolaydır. Asıl soru bu bilginin Storefront → Cart → Checkout → Order → ERP → Warehouse → Production zincirinde kaybolup kaybolmadığıdır.

Cart data contract oluşturmak neden önemli?

Alan Scope Tip Zorunlu Hedef
gift_message Cart String Hayır Order
delivery_slot Cart Enum Evet WMS
engraving Line String Hayır Production
campaign_source Cart String Hayır Analytics

Shopify custom cart checklist

  • Veri cart'a mı line'a mı ait?
  • Bu bilgi kalıcı mı geçici mi?
  • Metafield daha doğru entity olabilir mi?
  • Seçeneğin kendi fiyatı var mı?
  • Ayrı merchandise line gerekli mi?
  • Aynı SKU farklı customization'larla sepete eklenebilir mi?
  • Cart refresh sonrasında veri korunuyor mu?
  • Cart drawer ile cart page aynı state'i görüyor mu?
  • Checkout'a ve order'a veri ulaşıyor mu?
  • ERP/WMS bilgiyi alıyor mu?
  • Refund sırasında doğru line ile ilişkilendirilebiliyor mu?
  • Hassas veri içeriyor mu?

AI agent'lar açısından neden daha önemli?

Bir AI agent “Ürünü sepete ekle ve hediye notuna ‘İyi ki doğdun’ yaz” dediğinde agent'ın React component state'ini manipüle etmesi yerine commerce action çağırması çok daha güvenlidir.

Cart data'yı dört seviyeye ayırın

Cart-level

  • gift note,
  • requested delivery date,
  • channel metadata.

Line-level

  • engraving text,
  • personalization,
  • add-on relation.

Customer-level

  • language,
  • B2B segment,
  • loyalty state.

Order snapshot

Sipariş verildiği andaki immutable ticari bağlam.

Attribute naming contract

Kötü:

note
delivery
source

Daha açık:

gift_note
requested_delivery_date
campaign_source

Veri tipi problemi

Tarih, enum ve boolean serialization standardı belirlenmelidir.

requested_delivery_date = 2026-09-05
gift_wrap = true

Security

Cart attribute client-controlled olabilir. Fiyat, discount amount, tax exemption veya permission gibi kritik kararlar attribute'a güvenerek verilmemelidir.

Snapshot neden gerekli?

Personalization text gibi fulfillment için gerekli alanlar order line üzerinde immutable snapshot haline gelmelidir.

ERP entegrasyonu

ERP consumer yalnız known keys kabul etmelidir. Unknown key için ignore/quarantine/log politikası olmalıdır.

Versioning

{
  "version": 2,
  "engraving": "...",
  "gift_wrap": true
}

Test senaryoları

  • cart merge,
  • quantity change,
  • line remove,
  • checkout recovery,
  • multi-currency,
  • accelerated checkout,
  • reorder,
  • API-created cart.

Attribute'ları business contract olarak dokümante edin

Örnek:

Key Scope Type Owner Order'a taşınır mı?
gift_note cart string storefront evet
engraving line string configurator evet
campaign_source cart enum marketing analytics

Bu tablo zamanla “bu key neydi?” problemini önler.

Sonuç

Shopify'da custom cart geliştirme form alanı ekleme problemi değildir. Doğru soru bu veri hangi commerce entity'sine ait ve sipariş lifecycle'ı boyunca nasıl taşınacak? olmalıdır.

Reliefers olarak özel Shopify storefront ve tema projelerinde cart'ı yalnız drawer component'i olarak değil; storefront, checkout, sipariş ve operasyon sistemleri arasında çalışan bir commerce state katmanı olarak tasarlıyoruz.

Bir Sonraki Büyüme Adımınızı Birlikte Kuralım

Yeni bir e-ticaret altyapısı, özel yazılım veya daha güçlü bir dijital pazarlama yönetimi planlıyorsanız mevcut durumu ve hedefinizi konuşalım.