In Magento 1.5 taucht in der Bestellung bei Versandkosten mit Steuern ein Fehler auf. Die Steuern der Versandkosten werden in der Bestellung der Zwischensumme zugerechnet. Das Problem taucht unter Magento 1.5.0.1 auf, vermutlich sind auch andere Versionen (inkl. Magento 1.6) betroffen.
Der Kunde bestellt ein Produkt im Frontend und bekommt per E-Mail eine korrekte Bestellbestätigung mit korrekt ausgewiesenen Steuern. Im Backend kann die Bestellübersicht eingesehen werden.
Beispiel
Diese weist die Steuern bei den Versandkosten noch korrekt aus (siehe Bild 1). In der Vorschauliste der Steuerdetails werden aber lediglich die Steuern für Produkte (1,60€) aufgeführt. Die Steuern für den Versand (0,95€) sind nicht sichtbar. Das Problem setzt sich in der Rechnung fort. Die fehlenden 0,95€ Mehrwertsteuer des Versands werden der Zwischensumme zugeschlagen (siehe Bild 2). Bei Ausdruck der Rechnung wird die falsche Zwischensumme übernommen.
Lösung
Dieses Problem lässt sich mit ein paar Änderungen im Quellcode schnell lösen. In der Berechnung der Zwischensumme werden sämtliche Steuern addiert, deswegen müssen die Versandkostensteuern subtrahiert werden. Die Anpassung erfolgt in der Klasse Mage_Sales_Model_Order_Invoice_Total_Subtotal in den Zeilen 60 und 61:
60: $allowedSubtotalInclTax = $allowedSubtotal + $order->getTaxAmount() - $order->getTaxInvoiced() - $order->getShippingTaxAmount(); 61: $baseAllowedSubtotalInclTax = $baseAllowedSubtotal + $order->getBaseTaxAmount() - $order->getBaseTaxInvoiced() - $order->getBaseShippingTaxAmount();
Alternative Methoden zur Behebung dieses Problems findet man unter folgendem Link: http://www.magentocommerce.com/boards/v/viewreply/342485/
Hallo code4business,
euer Post ist zwar bereits etwas älter, ich habe den Fehler allerdings erst jetzt behoben. Wisst ihr wie man ältere Rechnungen neu und ebenfalls korrekt generiert? Nach Beheben des Fehlers gemäß Eurer Anleitung sind nur die PDFs aller nach Beheben des Fehlers generierten Rechnungen korrekt.
Ich würde mich sehr über eine Rückmeldung freuen.
Herzliche Grüße,
Marcus
Diese Werte werte im Bestellungs- und im Rechnungs-Objekt gespeichert. Magento möchte so verhindern, dass eine später geänderte Berechnung bestehende und schon ausgedruckte Rechnungen verändert. Daher bleiben die Rechnungen nach der Änderung unverändert.
Ausweg: Ein Skript schreiben, dass die Rechnungsdaten nachträglich verändert. Das ist möglich, braucht aber ein paar Stunden Zeit und wir haben leider keine fertige Lösung. Es müssen alle Werte der Bestellungs- und Rechungs-Objekte, die mit dem Fehler zusammenhängen, neu geschrieben werden.