Ein bekannter Bug in Magento ist die falsche Anzeige der prozentualen Ersparnis bei Staffelpreisen eines Artikels in Verbindung mit individuellen Optionen.
So sieht eine „normale“ Seite mit einem Einfachen Artikel und Staffelpreisen aus:
Wenn man nun aber individuelle Optionen hinzufügt, stimmt die Anzeige der Ersparnis nicht mehr. Das vom Magento generierte Markup ist richtig, dh. die Ersparnis in Prozent wird richtig berechnet, aber durch ein Update auf der Client-Seite wird diese Ersparnis falsch angezeigt.
Dieses Problem wurde auch schon im Magento Forum beschrieben und besprochen: Simple Product Tier Pricing and Custom Options drop down issue. Das Problem resultiert aus dem Nichtvorhandensein einiger CSS-Classen in den umgebenden Tags für die Preise.
Der Lösungsansatz im Forum ist, die Javascript-Datei js/varien/product.js anzupassen. Dieser Weg funktioniert, ist aber nicht sehr schön, weil nicht updatesicher – beim nächsten Update werden die Änderungen überschrieben.
Wir empfehlen deshalb, die Änderung stattdessen in einer Template-Datei vorzunehmen.
In dieser Datei die folgenden Zeilen: app/design/frontend/base/default/template/catalog/product/view/tierprices.phtml, Zeile 32-34
32 33 34 |
$_product = $this->getProduct(); $_tierPrices = $this->getTierPrices(); $_finalPriceInclTax = $this->helper('tax')->getPrice($_product, $_product->getFinalPrice(), true); |
ändern in:
32 33 34 35 36 37 38 39 40 |
$_product = $this->getProduct(); $_tierPrices = array(); foreach($this->getTierPrices() as $index => $info) { $_tierPrices[$index] = $info; $_tierPrices[$index]['formated_price'] = str_replace('class="price"', 'class="price tier-'.$index.'"', $info['formated_price']); $_tierPrices[$index]['formated_price_incl_tax'] = str_replace('class="price"', 'class="price tier-'.$index.' tier-'.$index.'-incl-tax"', $info['formated_price_incl_tax']); } $_finalPriceInclTax = $this->helper('tax')->getPrice($_product, $_product->getFinalPrice(), true); |
Diese Datei sollte natürlich nicht im Default-Theme des Base-Templates geändert, sondern in das eigene Theme (z.B. „default/custom„) kopiert werden.
Update sicher, ist das als Pull Request zu submitten … naja zumindest wenn dieser akzeptiert wird :-/
Funktioniert leider nicht in Magento 1.7.0.2! Die Prozentzahlen der Ersparnis stimmen jetzt zwar, aber die Ziffern der Preise hinter dem Komma werden immer mit 00 angezeigt. Aus € 3,96 wird jetzt € 3,00. Das kann auch nicht im Sinne des Erfinders sein 😉
Funktioniert bei mir leider auch nicht. Prozent bleiben weiterhin 100% nach der Anpassung.
Magento 1.7.0.2
Ich betreibe einen Schmuck Onlineshop und nutze Magento – klar, was sonst. Die beschriebene Problematik ist bei mir auch schon aufgetreten, aber mit Hilfe eines befreundetet IT-Spezialisten habe ich bisher alles in den Griff bekommen. Was macht man aber, wenn man keinen Profi an der Seite hat? Klar, man könnte sich das Wissen quasi einkaufen, indem man sich an einen Freelancer wendet. Aber nutzt man Magento nicht gerade deshalb, um eine fertige Onlineshop Software zur Verfügung zu haben, die auch Laien bedienen können?
Hallo Viktor,
Thanks for this tutorial. I have the same problem as Michael described in his comment. The percentages are correct, but (after selecting an option) for all tier prices the two digits after the comma are rounded down to 00.
For example: „Buy 5 for $19.95 each and save 10%“ is displayed as „Buy 5 for $19.00 each and save 10%“
Please let me know how to fix this 🙂
Thanks again!
Hab das Problem bei Version 1.8.1.0 deine Lösung scheint nicht zu helfen 🙁