Magento Tablerates: kostenloser Versand aufs Brutto

Magento Tablerates: kostenloser Versand aufs Brutto

Magento Tablerates: kostenloser Versand aufs Brutto

Magento Tablerates verwemdet man zur Staffelung von Versandkosten. Standardmäßig wird der Nettobetrag des Warenkorbs verwendet anstatt des Bruttowerts. Ein typisches magento Phänomen, wenn es um Steuern geht. Mit einem kleinem Stückchen Code kann man das aber richtig stellen.

Bevor magento 2 auch wirklich marktreif ist und es für den deutschen Markt brauchbar ist, schlage ich mich weiterhin mit 1.9 rum und bin mir immer noch nicht sicher, ob magento für den deutschen Markt auch wirklich die richtige Wahl war. Alternativen gäbe es ja: OXID, Shopware, usw. Da ich aber ein Fan einer großen Community bin, bleibe ich (noch) bei magento.

Jedenfalls hat ein Kunde von mir die Versandkosten mit Tablerates (Warenkorbwert gg. Ziel) geregelt; das ja eine Weisheit für sich ist. Zumal sich die Tablerates nur auf Nettopreise beziehen (da war es wieder, das Problem mit einem amerikanischen Produkt). Macht m.E. für den deutschen Markt recht wenig Sinn. Man könnte jetzt den auf den Warenkorbwert 19% Steuer drauf schlagen. Problematisch wird es aber, wenn man auch umsatzsteuerreduzierte Artikel verkauft.

Möglichkeit eins ist also weder korrekt noch praktikabel. Daher modifizieren wir eine Datei im System an und rechnen mit den Werten, wie sie wirklich sind. Dafür nehmen wir die Datei app/code/core/Mage/Shipping/Model/Carrier/Tablerate.php und fügen eine kleine Passage ein:

// verwende Bruttopreise zur Berechnung
if (Mage::helper('tax')->displayCartPriceInclTax()) {
    foreach ($request->getAllItems() as $item) {
        $request->setPackageValue($request->getPackageValue() + $item->getTaxAmount());
    }
}

Dieses Stück Code muss innerhalb der Funktion collectRates eingebunden werden, und zwar direkt nach der if Abfrage für "exclude Virtual products price from Package value if pre-configured" (ca. Zeile 104).

Was genau macht also jetzt dieses Snippet? Zuerst wird geprüft, ob Steuern angezeigt werden sollen (möglicherweise hat man ja Kundengruppen ohne Steuern). Jetzt wird für jedes Element im Warenkorb zusätzlich die Steuer aufgerechnet. Mit diesem Wert wird dann weiter gerechnet.

Eigentlich gar nicht so aufwendig, nur, dass bei einem Systemupdate die Datei möglicherweise überschrieben wird. Ergo auf die Checkliste schreiben und beim Update prüfen und ggf. anpassen.

Bitte bewerten Sie meinen Beitrag

Alexander Jungwirth ist Webentwickler bei einem Ingolstädter Verlagshaus und ist Inhaber der Firma Webdesign Manching. Seine Leidenschaft ist HTML, seine Passion PHP, seine Hingabe CSS und seine Inbrunst jQuery. Alexander lebt in Manching mit seiner liebevollen Frau und seinen wunderbaren Kindern.

3 Gedanken zu „Magento Tablerates: kostenloser Versand aufs Brutto

    1. Hallo Markus,
      kann es sein dass ein anderes Plugin die Funktion der Tablerates übernimmt? Möglicherweise ist im /app/code/community oder /app/code/local ein Plugin vorhanden.

      VG
      Alex

Schreibe einen Kommentar

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