Magentos Shop-Hierarchie ist in 3 Ebenen aufgebaut: Website – Store – StoreView. Letztere wird im Allgemeinen dazu verwendet, um mehrere Sprachen auf einen Shop anzuwenden. Je nach Einstellung können Felder global oder StoreView-spezifisch gesetzt werden. Außerdem kann man ohne Probleme verschiedene Währungen angeben.
Unser Kunde hatte jedoch den Wunsch, für ein spezielles Land eigene Preise festsetzen zu können. Leider bietet Magento out-of-the-box keine Möglichkeit das Preisattribut auf StoreView Ebene zu setzen, sondern nur global.
Abhilfe bietet das Modul Store Price[1] von ZenPrint. Es wandelt den Preis, der in der Datenbank als Decimal-Attribut gespeichert ist, von einem fixen globalen Attribut in ein frei wählbares um. Es lässt sich über Magento Connect Version 1.0 installieren, bzw. in neueren Magento Versionen problemlos manuell einspielen.
Nach der Installation muss das Attribut unter System->Configuration->Catalog->Catalog noch auf die StoreView Ebene gesetzt werden (Siehe Screenshot).
Nun können beim Wechsel des Store Views in der Backend-Produktansicht verschiedene Preise eingegeben werden.
BugFix: Falls im Frontend die Preise in der Kategorieansicht plötzlich als SpecialPrices erscheinen muss noch schnell ins Template eingegriffen werden:
Unter app\design\frontend\[path_to_templates]\template\catalog\product\price.phtml findet man etwa in Zeile 43 folgenden Code:
$_product = $this->getProduct();
Diesen erweitert man um eine weitere Zeile, die das Produkt vollständig lädt:
$_product = $this->;getProduct();
$_product = Mage::getModel('catalog/product')
->load($_product->getId());
Schlussendlich sind im Frontend für jeden StoreView respektive Sprache verschiedene Preise verfügbar.