Ceny v e-shopu – návrh řešení
- Novic
- Člen | 5
V eshopu jsem používal pouze dph, cenu a akční cenu (slevu) – bez dph, které jsem měl uložené u každého produktu spolu s názvem, popisem atd v db.
Výhoda tohoto řešení byla v tom, že pro zobrazení ceny jsem jen otestoval zda-li je akční cena nastavena, nebo se má použít normální cena a případně přidal dph. To vše tedy bylo při výpisu zboží v kategorii možné udělat jedním dotazem do db.
Nyní však potřebuji zavést velkoobchodní ceny pro různé skupiny obchodníků, chtěl bych umožnit např. slevu 10% při nákupu nad určitou hodnotu apod. Jakým způsobem to řešíte vy? Mohli byste mi trošku rozepsat jak máte udělanou databázi a jaké třídy a metody používáte?
Původně jsem si říkal udělat metodu, které bych předával id produktu a ta by mi to z db všechno zjistila. Jenže představa že při výpisu produktů v kategorii mi to pošle třeba 30 dotazů do db navíc mi běhá hrůza po zádech a určitě je na to lepší řešení.
- semtex.989
- Člen | 75
Přesně tak to dělám taky.
Mám třídu price, která obsahuje metody setTax(), atd.
Poté volám v šabloně: $price->withoutTax()->withoutDiscount()
Mám tak vždy jistotu, že ve výchozím stavu jen cena s daní a pokud má
slevu tak se slevou…
- Mikulas Dite
- Člen | 756
Osobně mám spíš třídu Product
, která má metody cca
getPrice
,
getPriceAfterSale(/** třeba i s $type = NULL */)
atp. Třída
Price
mi nedává smysl (maximálně statická a to už je hezčí
to mít u produktu).