sepet sisteminin mantığı genel olarak nasıl işliyor?
ürünleri direkt veritabanının sepet bölümüne mi işliyorlar ekledikçe, yoksa session'da tutup sipariş tamamlanana kadar veritabanına hiçbir yazdırma girmiyorlar mı?
aynı şekilde; "ileri" "ileri" adımlarında, bilgileri session'larda mı tutuyorlar yoksa anı anına veritabanına işleyip sipariş tamamlandıktan sonra mı onay atıyorlar?
1-) javascript session, cookie kullanarak ürün idlerini vb client tarafında tutmak
2-) database sepet tablosunda kulanıcı id ile tanımlı sepet sessionu tutmak, json olarak olabilir örneğin
ben olsam 1. yi yaparım kendi serverımı yorucağıma kulanıcının bilgisayarını yorun.
Session, Cookie ve DataBase'de tutabilirsin.
Session'da tutarsan geçici olur. Site browser'da açık kaldığında dahi Session'ın ölme ihtimali var, sepet uçabilir.
Cookie'de tutarsan; kullanıcı browser'da cookie'leri engellemiş olabilir. Kullanıcı sonradan cookie'leri temizlemiş olabilir sepet uçar.
Database'de tutarsan üyelik kaydı oluşturması zorunlu olur. Fakat en sağlamı bu.
Sipariş adımlarına geçtiğinde bir çok bilgiyi Session'da ya da Query String'de taşıyabilirsin. Sipariş tamamlandığında sepeti temizlemen gerekir.
ihtiyaca göre tasarlanır böyle şeyler, Geneli sepet bilgisini oturum'a kaydeder. ancak bu oturumun nasıl çalışacağı değişir, stok tutuyorsan kişi sepete ürünü eklediğinde stok'dan düşersin, son X süre hareket'i olmayan oturumları bulur sepet bilgisini temizler sepetteki ürünleri geri stok'a eklersin. stok tutmuyorsan (üretici isen misalen) buna gerek kalmaz.
Oturum yönetimi başlı başına bir iş, sırf bunun için tasarlanan sistemler (sunucular) mevcut, bunlardan birini kullanabilir veya basit bir site yapıyorsan ve tek makinede çalışıyorsan oturumları dilin varsayılan ayarlarında kullanabilirsin ama birden fazla makinede çalışıyorsan bu bilgileri ya mongodb ya redis yada direk mysql gibi bir yerde tutman gerekiyor.
Yine ileri ileri durumları için her bir aşamanın belirli bir timeout süresi olur, o süreyi geçtiğinde tekrar başa dönersin ama sepetdeki ürünler kalır yine sepette (yada silersin yeniden eklesin işine dersin) tamamen ihtiyaç, durum vs. üzerine tasarlanması gerekir, o hazır dediğin şeyleri de kullanan insanlar deli gibi değişiklik yapıyorlar sistem üzerinde, eski bir atasözünün de dediği gibi "there is no silver bullet"