Selam e-ticaret sitesinde indirim mantığı nedir? nasıl yapılır?
E-Ticaret sitesinde İndirim
aghabalaguluzade Kod kurgusu olarak mı soruyorsunuz hocam tam anlamadım
beyondelayer hayır genel mantığı ve tablo yapısı. Bunlar belli olduktan sonra kod tarafı hallolur.
- Düzenlendi
aghabalaguluzade Ben bir controller içerisinde hesaplama yapan metodlar yazdım. Veritabanında ise coupon ve coupon_history tabloları oluşturdum. Bu tabloların içeriğinede opencart 3x sürümünden bakarak yaptım. Ajax ile inputa discount kodu girildiği zaman gelen cevaba göre işlem yaparak subtotal - discount = total metodunu güncelleyecek şeklinde bir kullanım yaptım. Kupon indirimi değilde normal indirimi soruyorsanız zaten onda hiç bişey yapmadım neredeyse. price, sale_price adında 2 tane kolon ekledim ve hesaplama yapan total metodumda yine sale_price varsa onu, yoksa price'yi stripe'a gönderdim. Umarım anlatabilmişimdir
- Düzenlendi
beyondelayer hayır kupon mantığını değil normal indirimi merak ediyorum. Kupon mantığı için internette baya kaynak var aslında forumda bile
Mustafa hocam böyle fikir vermiş. Fakat normal indirim için sağlam kaynak bulamadım var aslında hatta youtube da baya e-commerce site yapımı videosu var da hepsi de hindistanlı şimdi hindistanlıya güven olur mu? olmaz bence.
Dediğiniz yöntemi biliyorum fakat bazı sistemlerde mesela kitap satılan sitelerde eski kitaplara bile toplu indirim gelebiliyor. Adam tek tek mi ekliyor? yoksa kategori şeklinde mi?
- Düzenlendi
aghabalaguluzade Evet bende tam olarak mustafa abinin dediği gibi yapmışım coupon ve coupon_history olarak, normal indirimden kastınız şimdi normal ürün bazlı düşünürsek iki tane kolon ekleriz misalen price ve sale_price yukarıda söylediğim gibi varsayalım.
Aslında çok basit admin panele bir eklenti gibi alan yazarsınız toplu indirim için ve seçilen ürünleri bi arrayde tutup direkt fiyatlarına toplu indirim yapacaksanız price kolonunu güncelletir sale_price null bırakırsınız, eğer fiyatı değiştirmeyip indirim olarak ekleyecekseniz ise sale_price sütununu güncellettirirsiniz.
Kategori bazlı eklemek içinde örnek olarak yukardaki örnekle birlikte rowu ikiye böler sola yukarda anlattığımı koyarsınız sağada multiselect alanı yaparsınız bu sefer eğer category alanı doldurulmuşsa category içerisindeki her ürüne ulaşır teker teker sütunlarını güncellettirirsiniz. Tabi yine bu benim varsayımım. Daha profesyonel kişiler yorum yaparsa daha sağlıklı olabilir.
beyondelayer teşekkürler
bakalım
- Düzenlendi
aghabalaguluzade Birden fazla yolu var. Ne kadar kompleks bir şey yapmak istediğinize bağlı. İstediğiniz esnekliğe göre, bu kampanya ve indirim kurguları e-ticaretin en zor bölümlerinden bir tanesidir. Öyle ki, tüm e-ticaret sistemini kampanya/indirim, envanter ve sipariş olarak üçe bölebilirsiniz. O yüzden genelde basit tutulmaya çalışılır. En önemli nokta kampanya ve indirimlerin çakışmasını engellemek ve sepette doğru yönetilmesi sağlamak.
Ben genelde e-ticaret konusunda Sylius'un incelenmesini öneriyorum:
https://sylius.com/
Burada da indirim olayını nasıl çözdüklerini anlatmışlar:
https://sylius.com/blog/apply-black-friday-discounts-with-sylius-promotion-engine/
Admin demosunda Marketing altındaki promotions bölümlerine bakabilirsiniz:
https://demo.sylius.com/admin/login
mgsmus teşekkür ederim hocam bu tavsiyenizi görmüştüm
Modern bir e-ticaret yazılımı nasıl olur diyorsanız (Symfony 4):
https://github.com/Sylius/SyliusDemosu için:
https://sylius.com/demo/Sylius'un demosuna bakarak da envanterin, özelliklerin vs nasıl ele alındığını görebilirsiniz.
hatta githubdan kodlarına bakmak istemiştim fakat bir şey anlamamıştım garip gürüp şeyler vardı. Migrationsda SQL kodu yazılmıştı garipti. Attığınız makale admin paneli açıklıyor fakat hocam site tarafında
https://prnt.sc/dqmjoUyTPxeB
https://prnt.sc/9UkGVmbHz1Nq
böyle ve original price kendi fiyatı, price ise indirimli fiyatı. Ama arkada baya bir şey anlamadım.
Promotion tarafında
https://prnt.sc/BqS5gJRHY382
https://prnt.sc/8x_1muPOVsI4
böyle bir şeyler var. Kod tarafını görebilsem çok güzel olurdu aslında.
Ayrıca her tarafta Code diye bir input alanı var onu anlamadım o ne. Tabloları bir birine bağlamak için mi.