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).