sepet datasını ve sipariş sürecini siz olsanız nasıl yönetirsiniz?
iki seçenek var;
- sepetteki her hareketi server-side biriktirmek ve en son sipariş tamamlanırken de birikmiş datayı "onaylandı" pozisyonuna getirmek.
diğer seçenek de
- kullanıcının tüm sepet hareketlerini client side tutmak (localstorage ile ürün id'lerini tutarak), en son kullanıcı siparişi tamamlarken işi backende alıp işlemleri tamamlamak ve ilk kez o an veritabanına kayıt girmek.
Urunleri ofiste is bilgisayarindan sepete attim. Eve giderken yolda aklima geldi, cep telefonundan yeni bir urun daha ekledim sepete. Sonra eve gelip evdeki bilgisayardan siparisi tamamladim.
Bu senaryo icin server side tutulmasi daha mantikli gibi.
müşteri açısı dışında;
bilgilerin serverside tutulmasının bana da ek olarak şöyle faydası olacak; bir müşteri sepetine neler ekledi, hangi aşamadan sonra siparişten vazgeçti, belki de niye vazgeçti gibi dataları da biriktirebileceğim.
en azından session'da datayı tutup belirli aşamalardan sonra tüm session datasını database'e aktarabilirim sipariş tamamlanana kadar.
stackoverflow.com
net bir cevabı yok önceliklere göre karar verilebilir. güvenlik konusu ilginçmiş ama client ta tutunca kullanıcının fiyatı değiştirebileceği aklıma gelmezdi
server-side farzdir, client-side gereksiz hipsterlik.
server side +1
guest checkout için de altyapıyı ayarlamak lazım ama, cookie ile id tutup backend'de geçici kullanıcı gibi bi muamele yapabilirsin. hatta guest iken giriş veya kayıt yapıldığında sepetleri birleştirecek bi dalga da lazım.
clientta tutunca müşterinin fiyatı değiştirmesinin bir önemi yok aslında. müşterinin sepette tuttuğu sadece ürünün id'si olmalı zaten, fiyyatı api üstünden serverside kontrol ettmiek gerek.