kullanıcı kategori modulne geçince
isterse bir kategoride istediği indirimi yapacak
isterse bir üründe istediği indirimi yapacak
isterse sepette indirim yapacak(>100 e 10 tl indirim gibi )
isterse sepette kargo indirimi
buradan bakınca hız açısından cron job ile destekleyerek ürünler tablosunu güncellemenin uygun olacağı görüşündeyim
Cron işine gerek yok.
campaign diye bir tablo açın.
Id - campaignId - isProduct
şeklinde olsun.
campaignId => Ürün ID ve Kategori ID alabilecek.
isProduct => 0 veya 1 olarak indirimin ürüne mi yoksa kategoriye mi ait olduğunu belirtecek.
Eğer ki;
Id - campaignId - isProduct
1 - 1 - 1 => ID 'si 1 olan üründe indirim
2 - 3 - 0 => ID'si 3 olan kategoride indirim.
Gibi yapmak mantıklı olabilir. Tabii yukarıda belirttiğim gibi direkt TL bakımından net bir fiyat indirimi olabilir, %'li şekilde indirim olabilir. Bunun yanına bir kolon daha açıp artık nasıl indirim yapılacaksa o eklenebilir.
Örneğin %10 indirim eklediniz. Sepeti açarken URUN ID ile bu tabloyu kontrol ettirirsiniz, indirim ekli ise fiyat üzerinden indirin yaparsınız ve kullanıcıya gösterirsiniz.
Aynı şekilde ödemeyi alırken bu tabloyu kontrol ettirir indirimli şekilde ödeme alırsınız.
Sepette indirim işlemini kupon kodu ile yaptırırsınız, ürün indirimi gibi olmaz. Kupon kodları eklenir, sepette kupon kodunu kullanır ve indirim yapılır, get ile o kod alınır backend bölümünde kontrol edilir.
Kargo indirimi de farklı tabloda olması bana göre mantıklı.
Umarım anlatmak istediğim aklında bir şeyleri canlandırmıştır, güzel modül bunun için sağlam tablo yapısı kurmak lazım.
Bu arada kategori açılırken ürünler listeleniyor, direkt olarak kategoriyi sorgulayıp ürünleri listeletirken ürünlerde indirim yaptırabilirsin.
İndirim olan kategoriye ait bir ürün açılırken ürünün id 'sine göre kategorisini bulup tabloda sorgulatman gerekir. Burada yolu biraz uzatırsın ama sürekli cron tetiklemen gerekmez.
Farklı çözümler üretilebilir ama önceliğiniz indirim yapılırken ürünün fiyatını direkt güncellememek olsun.
Ayrıca cron ile güncellerim diyorsunuz ama bunun için tek tek VT'ye yazmanız gerekebilir.
Örnek vermek gerekirse bir kategoride %10 indirim yaptınız. 100 TL olan ürüne 10 TL indirim yaptınız ve 90 TL'ye geri getirdiniz.
Bunun için ya %10 indirim yapıldığında X TL 'ye gelen sayıyı bulacak denklem kurmalısınız ya da eski fiyatı tutmalısınız.
Aksi taktirde 90 TL üzerinden %10 alırsanız 99 TL'ye denk gelir ve indirim yaptığınız fiyatı bulamazsınız.