Wir hatten kürzlich das Problem, dass wir einen Magento Shop so konfigurieren sollten, dass sich der Steueranteil abhängig vom Steuersatz des Lieferlandes ändern soll.
Wenn man die Produktpreise als Netto im Admin pflegt ist dies kein Problem (wie z.B. in den USA), aber wenn man Wert auf ordentliche Preiswerte legt, sollte man diese in Brutto anlegen. Im Warenkorb sollen ebenfalls ausschließlich Bruttopreise angezeigt werden, wie dies in Deutschland üblich ist.
Problem
Wenn man nun für die diversen Zielländer eigene Steuersätze definiert macht Magento folgendes:
1. Vom Bruttopreis des Produktes den Steuersatz des als Steuer-Ursprung des Shops definierten Landes (hier Deutschland, also 19%) abziehen um den Nettopreis zu erhalten
2. Den Steuersatz des Ziellandes aufrechnen (z.B. 21% für Belgien)
Daraus ergibt sich beispielsweise für einen vorherigen Bruttopreis von 24€ nach der Umrechnung ein Bruttopreis von 24,40€ für Belgien.
Dies ist natürlich völlig korrekt, wenn man den gleichen Nettopreis beibehalten möchte, so dass für alle Lieferländer der Umsatz nach Steuerabzug gleich bleibt.
In unserem Fall aber sollte der Bruttopreis immer gleich bleiben und nur der enthaltene Steueranteil sollte dem Lieferland angepasst werden, ungeachtet der Tatsache, dass sich dadurch der Nettopreis und damit auch der Umsatz ändern kann.
Lösung
Um dies zu erreichen muss Magento dazu gezwungen werden (im o.g. Schritt 1.) statt dem Prozentsatz des Steuer-Ursprungs den Prozentsatz des Ziellandes für die Nettoberechnung zu verwenden, damit beim anschließenden Aufrechnen des neuen Steuersatzes wieder der ursprüngliche Bruttobetrag herauskommt.
Um dies zu erreichen kann man die Methode Mage_Tax_Model_Calculation::getStoreRate() wiefolgt überschreiben:
Zunächst wird standardmäßig der Steuersatz des Steuer-Ursprungs ermittelt.
Wenn nun
1. für den Store die Steuerberechnung anhand des Versandlandes konfiguriert ist
2. eine Versandadresse und damit ein Zielland vorhanden ist
3. die Preise für den Store in Brutto gepflegt werden
4. der vorher ermittelte Steuersatz nicht 0% ist
wird der Steuersatz des Ziellandes ermittelt um diesen für die Berechnung des Nettopreises zu verwenden.
Die 4. Bedingung hat den Grund, dass bei Ländern oder Bedingungen, wo keine Umsatzsteuer ausgewiesen wird (z.B. bei der Schweiz oder B2B Bestellungen) weiterhin der Steuersatz des Steuer-Ursprungs für die Nettoberechnung verwendet werden soll.
Wie handhabt ihr solche Besonderheiten bei der Steuerberechnung?