merhaba forumdaşlar.
uzman seviyede olduğunu düşündüğüm bir problemim var
geliştridiğim bir script içinde kullanınınbazı ürünlerde ya da bazı kategorilerde yada sepetteki miktara bağlı olarak kampanya ekleyebileceği bir modül ekleyeceğim ve bir algoritmaya ihtiyacım var
şimdi ben bir kampanya tablosu hazırlayıp her urun için bu tabloyu kontrol edebilirim ama bu mutlak bir yavaşlamaya sebep olur diye düşünüyorum
şimdi seçeneklerimiz :
a) kampanya tablosu oluşturup her urunde bu tabloya bakmak
b) her ürüne indirim, kargo, sutunları ekleyip her kampanya döneimde tüm ürün tablosunu değiştirmek (şimid aklıma geldi mantıklı aslında )
önerilere açığım teşekkürler
Kampanya algoritması
5
●115
- 30-06-2020, 19:00:44urune has indirimler icin urun tablosunu kullanabilirsin.
kategori bazli indirimler icin,kampanya gibi bir tablo yapabilirsin.
urune ait indirim ve/veya varsa kategorisine ait kampanyayi alabilirsin.
urunun kategoriidsi ile kampanya tablosunun kategoriidsini left joinleyip tek bir seferde cagirirsin. - 30-06-2020, 19:03:11B seçeneği tam junior developer işi gibi duruyor

Birinde seçenekte campaign diye bir tablo açıp Id - productId şeklinde tutulabilir ama neye göre kampanya yapılacak?
Her ürün için belli bir % indirimi mi olacak? yoksa her ürün için sabit bir indirim mi olacak? yoksa ürün fiyatına göre ( Örn : 0 - 100 TL için %10 <-> 100 - 500 TL için %5 ) gibi mi indirim yapılacak? - 30-06-2020, 19:12:59kullanıcı kategori modulne geçinceMehmetmasa adlı üyeden alıntı: mesajı görüntüle
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 - 30-06-2020, 19:32:50Cron işine gerek yok.bagimsiz adlı üyeden alıntı: mesajı görüntüle
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. - 01-07-2020, 09:50:35campanya tablosu oluştrurduğpumda ki senaryolar şu şekilde oluyorMehmetmasa adlı üyeden alıntı: mesajı görüntüle
1 bir kategoride kampanya var ise
o kategori açıldığında gelen ürünlerin hepsinde kampanya uygulamana (basit ve hızlı )
fakat bir urune kampanya yaptığımızda her sayfadagelen ürünlerin herbirinin kampanyaswı olup olmadığını sorgulamamzı gerekiyor
bu da yük getirecek (bir sayfada en fazla 24 ürün getirince göz ardı edilebilir belki)
///
urunler tablosuna 3 kolon ekleyip (kampanya_ tip , oran, bitis tarihi)admin tarafında kampanya girişi olduğunda tum urun tablosunu güncellesek admin tarafında gecikme olur bir nebze ama kullanıcı tarafından ek sorgu olmadığ için açılış hızı etkilenmez gibi geliyor. iki yolu da deneyeceğim hangisi daha efektif olursa buraya yazarım
