Virtuemart 3 - vlastní ceny pro různé zákazníky

Byl jsem postaven před problém, jak vyřešit různé ceny pro různé zákazníky na eshopu velkoobchodu. Zpočátku jsem uvažoval o nastavení individuálních cenových hladin pro každého zákazníka, ale tuto myšlenku jsem zavrhnul, protože by to bylo 500 různých cenových hladin a script pro aktualizaci cen by byl naprosto obludný. Napadlo mne to vyřešit jinak: PODSTRČIT každému produktu cenu podle mé VLASTNÍ FUNKCE , která použije importovaná pravidla individuální cenotvorby pro každého zákazníka.

Bohužel jsem musel lehce upravit CORE soubor. O zjištění ceny produktů se stará funce getProductPrices , kterou jsem našel v souboru
/administrator/components/com_virtuemart/helpers/calculationh.php
Tato fce připraví ceny produktu pro výpis, detail i košík, takže vše bude fungovat, jak je potřeba. V mém případě jsem potřeboval natvrdo přepsat ceny a ignorovat veškerá další nastavení. Takže na úplném konci fce getProductPrices, kde je výstup

return $this->productPrices;

jsem upravil kód takto:

/*  hack pro přepis cen -- START */
include("nejakyscriptprozjistenicen.php");
$this->productPrices["basePriceWithTax"] = $novacena;
$this->productPrices["salesPrice"] = $novacena;
/*  hack pro přepis cen -- KONEC */

return $this->productPrices;

V inkludovaném souboru jsem si udělal potřebnou detekci pravidel pro přepsání ceny. A hotovo.

Bohužel, je to hack core souboru, což není ideální. Pokud byste mi někdo poradili, jak to udělat systémověji a nemuset po každém upgrade virtuemart kontrolovat, zda nedošlo k přepsání hacku, byl bych vděčen. Nicméně toto řešení spolehlivě funguje.

 

Jmenuji se Radek Pelikán, bydlím v Ledči nad Sázavou. Mám 3 krásné děti.

Mezi mé velké koníčky patří desková hra Go a nově jsem začal cvičit Kendó v Ledči nad Sázavou.