Tutorial: Rundungsfehler in Magento 1.6 beheben

Magento 1+1=1.99Leider ist der altbekannte Rundungsfehler auch in der aktuellen Magento Version 1.6 nicht vollständig behoben. Da Magento die Preise intern teilweise auf 2 Nachkommastellen rundet (weiß der Henker, warum…), entstehen unter bestimmten Voraussetzungen immernoch Abweichungen in der Preisberechnung. Im hier vorliegendem Fall waren es zum Beispiel konfigurierbare Produkte mit Preisen inklusive Mehrwertsteuer.

Das Problem ist zum Glück recht leicht zu beheben. Hierzu muss folgende Funktion der Datei /app/code/core/Mage/Core/Model/Store.php angepasst werden.

1
2
3
4
5
6
7
8
9
10
    /**
     * Round price
     *
     * @param mixed $price
     * @return double
     */

    public function roundPrice($price)
    {
        return round($price, 2);
    }

Ihr seht, dort wird der Preis auf 2 Nachkommastellen gerundet.
Dies ändern wir in 4 Nachkommastellen und speichern die Datei unter /app/code/local/Mage/Core/Model/Store.php (Niemals Änderungen direkt im Core vornehmen!). Schon sollte Magento richtig rechnen.

1
2
3
4
5
6
7
8
9
10
    /**
     * Round price
     *
     * @param mixed $price
     * @return double
     */

    public function roundPrice($price)
    {
        return round($price, 4);
    }

Keine Angst, ausgegeben werden die Preise natürlich trotzdem mit nur 2 Nachkommastellen.

Dieser Beitrag wurde unter Magento/eCommerce abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

weitere interessante Beiträge:

6 Antworten auf Tutorial: Rundungsfehler in Magento 1.6 beheben

  1. Diese Anpassungen sind in einem (nicht sehr bekannten) Modul von Rouven Rieker bereits fertig umgesetzt:
    https://github.com/therouv/Magento-BetterPriceRounding. Die Anpassung behebt einige Rundungsprobleme, aber leider noch nicht alle…

    • Kai Köpke sagt:

      Hallo Andreas, danke für den Hinweis. Das Modul vom Rouven war in meinen Versuchen in der aktuellen Magento Version (1.6.1.0) beim Kunden leider nicht zum Laufen zu kriegen. Daher dieses kleine Tutorial.

  2. nic sagt:

    aber wenn man das ändert, kriegt man ernsthafte probleme mit paypal!!
    http://www.magentocommerce.com/boards/viewthread/266585/
    habt ihr dafür ne lösung??

  3. Fabian sagt:

    Eigentlich unerklärlich, wie so ein Bug immer noch nicht behoben ist. Immerhin sind die Preise nicht so ganz unwichtig für einen Shop …

  4. Daniel Sasse sagt:

    Ich meine es war doch schon einmal behoben in der 1.5er oder nicht?

    • Kai Köpke sagt:

      Zu Teilen wurde es in V1.5 behoben. So ganz leider anscheinend noch nicht, haben wir bald in 1.6 feststellen müssen. Daher war diese kleine Änderung leider noch nötig.

2 Trackbacks/Pingbacks zu Tutorial: Rundungsfehler in Magento 1.6 beheben

  1. Blogs aus Mecklenburg-Vorpommern bei ebuzzing.de – Ranking für Januar 2012 | world wide Brandenburg

  2. Blogs aus Mecklenburg-Vorpommern bei ebuzzing.de – Ranking für Februar 2012 | world wide Brandenburg

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>