Eshop – zľava na produkty
- matto
- Člen | 55
Ahojte.
do e-shopu postaveného na nette programujem modul na zľavy. Napadlo ma viacero riešení a preto prosím o vaše rady, ako to spraviť najlepšie.
Popis:
Jedná sa o modul, kde sa dajú hromadne vybrať produkty zo zoznamu a
priradiť im percentuálna zľava na určitý rozsah dátumov.
Napadajú ma dve riešenia:
1. Zľavu vždy počítať nanovo (pri výpise, ukladaní do košíka a
podobne)… Tzn. vždy, keď bude treba cenu produktu tak sa pozriem do tabuľky
so zľavami a zistím či v tomto dátume je ku danému produktu priradená
zľava ak áno, tak príslušné percentá odčítam od pôvodnej ceny.
Nevýhodu v tomto vidím takú, že je nutné prejsť všetky časti systému,
kde sa narába s cenou (výpis produktov, detaily, pridanie do košíka,
uloženie objednávky, výpočet celkovej sumy atď) a príde mi to náchylné
na chyby.
2. Druhý spôsob ma napadol ten, že priradiť produktom ešte jeden stĺpček s cenou, kde si pri nastavení zľavy uložím pôvodnú cenu a v pôvodnom stĺpci cenu prepočítam. (Takže na frontende nebude treba riešiť žiadny dopočet ceny.). Tu zas vidím problém v tom, že budem musieť použiť cron, ktorý bude sledovať od kedy do kedy ktorá akcia platí a podľa toho hromadne prepočíta ceny na všetkých produktoch priradených ku danej akcii. a komplikuje sa to trošku tým, že napríklad pri zrušení zľavy bude treba obnoviť pôvodné ceny pri produktoch oproti vymazaniu jedného riadku ako v riešení 1.
3. Napadá vás lepší spôsob?
Ďakujem
- Tabetha
- Člen | 140
u nas je to riešenie trochu rozsiahlejšie … my máme individuálne cenníky a 6 cien … pri užívateľovi máme jeho zľavu … čiže to je celkom dosť počítania a overovania … najviac sa mi oplatilo (zatial) že mám jednu funkciu v ktorej si vrátim pre daný produkt všetky informácie o nom (dá sa to aplikovať len na ceny) … to by ti nepomohlo? … tj. jedna funckia len na toto počítanie … a nech ju zavoláš odkialkoľvek mala by ti vrátiť ten istý výsledok
- Nox
- Člen | 378
- Nesouvisí s Nette
- První a druhý způsob jsou stejné, jen u 2. je výsledek uložený, optimalizace. Cron asi nevadí; na druhé straně není vyloženě nutný, jde při requestu ověřit nevalidnost cen a pokud jsou tak přepočítat, ale ten Cron bude efektivnější. Problém s mazáním nevidim, prostě zavoláš něco jako calculatePrice, která vždycky vrátí správnou cenu podle základní a dalších faktorů … takže místo delete budeš mít update, obojí triviální
Editoval Nox (9. 1. 2013 20:21)