Tüm Sayfalar / 19 - Sepet Modülü
Sayfa 19 / 161
Sepet ve Sipariş Yönetimi

Sepet Modülü

Kullanıcıların abonelik satın alma sürecini yöneten sepet altyapısı

Biz Ne Yaptık?

Kullanıcıların abonelik paketlerini seçip satın alabileceği bir sepet sistemi kurduk. Giriş yapmadan da sepete ekleme yapılabiliyor, sonra hesap oluşturunca sepet otomatik birleşiyor.

Eski Yöntem

  • Giriş yapmadan sepete ekleme yok
  • Sayfa yenilenince sepet boşalır
  • Terk edilen sepetler takip edilemez

Modern Mimari

  • Misafir sepeti destekli
  • Oturum bazlı kalıcı sepet
  • Terk edilen sepet kurtarma sistemi

Arkada Ne Oluyor?

Sepete Ürün Eklenirken

  1. 1 Kullanıcının oturum bilgisi kontrol ediliyor
  2. 2 Aktif sepet bulunuyor veya yeni sepet oluşturuluyor
  3. 3 Ürün sepete ekleniyor ve toplam güncelleniyor
  4. 4 Varsa kupon indirimi hesaplanıyor
Başarılı

Ürün sepete eklendi, toplam güncellendi, kullanıcı bilgilendirildi

Hata Durumu

Stok yetersiz veya ürün bulunamadı hatası gösterilir

Admin Panelden Ne Görebilirsiniz?

Aktif Sepetler

Şu an açık olan sepetler

Tamamlanan Siparişler

Ödeme yapılmış siparişler

Terk Edilen Sepetler

Yarım kalan işlemler

Dönüşüm Oranları

Sepet-sipariş istatistikleri

Arkaplanda Neler Çalışıyor?

Kullanıcı sepete bir ürün eklediğinde veya sepet sayfasını açtığında, sistem şu işlemleri gerçekleştiriyor:

1. Oturum Kontrolü

Sistem önce auth()->check() ile kullanıcının giriş yapıp yapmadığını kontrol ediyor. Giriş yapmamışsa session()->getId() ile geçici bir kimlik atanıyor. Bu sayede misafir kullanıcılar da sepete ekleme yapabiliyor.

2. Sepet Bulma/Oluşturma

CartService::getOrCreate() metodu çalışıyor. carts tablosunda kullanıcıya ait aktif sepet aranıyor. Yoksa Cart::create() ile yeni sepet oluşturuluyor.

3. Ürün Ekleme

cart_items tablosuna cart_id, itemable_type (SubscriptionPackage), itemable_id (paket ID) ve quantity kaydediliyor. Polymorphic ilişki sayesinde farklı ürün tipleri de desteklenebilir.

4. Kupon Uygulama

Kupon kodu girilirse CouponService::apply() çağrılıyor. Kuponun geçerliliği, kullanım limiti ve tarih kontrolü yapılıp carts.coupon_id alanına yazılıyor.

5. Toplam Hesaplama

Cart::calculateTotal() metodu sepetteki tüm ürünlerin fiyatını topluyor. Kupon indirimi düşülüyor, KDV ekleniyor ve subtotal, discount, tax, total alanları güncelleniyor.

6. Terk Edilen Sepet Takibi

24 saat içinde tamamlanmayan sepetler "terk edilmiş" olarak işaretleniyor. AbandonedCartReminder job'ı günde bir çalışıp kullanıcılara hatırlatma e-postası gönderiyor. Bu sayede kayıp satışlar kurtarılıyor.

Bu Sayfanın Anahtar Terimleri

Cart (Sepet)

Kullanıcının satın almak istediği ürünleri biriktirdiği alan.

Süpermarket sepeti gibi düşünün

Checkout (Ödeme Adımı)

Sepetin sipariş haline dönüştüğü ödeme işlemi.

Kasada ödeme yapmak gibi

Abandoned Cart (Terk Edilen Sepet)

Ödeme yapılmadan bırakılan sepetler.

Kasaya gelmeden marketten çıkmak gibi

Session (Oturum)

Misafir kullanıcının geçici kimliği.

Alışveriş süresince takılan rozet gibi

₺600
SEPET
Alışveriş Yönetimi
Premium Yıllık ₺600
Kupon: MUZIBU20 -₺120
Toplam ₺480
Güvenli Ödeme
SSL Visa MC