ben iki tablo açıyorum genelde projelerimde eğer yapıyı ben kuracaksam;

cookie ile sepet mantığını yaptığınızı varsayalım.

elinizde ürünler var sepet toplamı var kdvsi var vs. şimdi bu ürünleri nasıl kaydedeceksiniz?

ben iki tablo açıyorum demiştim bunlardan biri orders diğeri ise order_products

orders siparişleri tutuyorum sadece burada da sipariş ID'sini kaydediyorum daha sonra aynı sipariş id ile bu siparişteki ürünleri order_products tablosuna ekliyorum.

kısacası orders tablosu kdv, sepet toplamı, kargo gibi tek alanları tutar siparişin durumu da dahil eğer pazaryeri yapıyorsanız durumu ürüne de eklemeniz gerekli. orders_products ise bu sepetin ürünlerini tekil fiyat adeti ürün adı gibi vs.

edit; ödeme sisteminde de orders tablosunda durum ilk 0 olarak gidiyor. ödeme yapılmadı şeklinde eğer işlem başarılı ise o siparişin id si ile durumu güncelleyin.
edit2: sepet içeriğini veritabanına kaydetme derim eğer büyük bir proje değilse sepete göre analiz yapmayacaksan cookie tutabilirsin. https://github.com/seikan/Cart bu sınıfı kullanabilirsin.