Die Steuerkonfiguration in Magento für Shops in der EU funktioniert im B2C-Bereich gut. Für B2B-Shops und vor allem für Shops, die sowohl B2B als auch B2C gleichzeitig anbieten, gilt dies jedoch nur eingeschränkt - in einem unserer letzten Projekte sind wir über diverse Limitierungen gestolpert, die wir mit zwei neuen Modulen aufgefangen haben. Wir haben diese Module unter einer OpenSource-Lizenz online gestellt, wo sie jetzt frei verfügbar sind. Dieser Beitrag liefert eine Anleitung zur Konfiguration der Module.
Wir gehen davon aus, dass das Ursprungsland Deutschland ist. Dies lässt sich allerdings leicht gegen ein anderes EU-Land (z.B. Österreich oder Belgien) austauschen.
Die Grundlage: FireGento_MageSetup
Download: https://github.com/firegento/firegento-magesetup
MageSetup bietet viele Grundlagen, um Magento für den europäischen Markt fit zu machen, unter anderem auch eine vorbereitete Steuerkonfiguration. Wir empfehlen den Einsatz von MageSetup in jedem EU-Shop.
Vorbereitung: Angepasste Steuerkonfiguration
Die aus MageSetup vorgenerierten Steuereinstellungen mussten wir noch minimal anpassen, damit B2B-Kunden mit gültiger USt.-ID dennoch in Deutschland Umsatzsteuer zahlen. Die angepassten Steuerregeln sehen wie folgt aus:
Da die Eingabe der Steuerregeln recht komplex und fehleranfällig ist, haben wir die Steuerkonfiguration als SQL-Datei bereitgestellt.
Achtung: Bitte machen Sie eine Datenbanksicherung, bevor Sie diese Konfiguration einspielen, um die Änderungen im Notfall rückgängig machen zu können.
Problem: Prüfung der USt.-ID und Zuweisung der Kundensteuerklasse
Seit Version 1.7 bietet Magento eine Funktionalität zur automatischen Zuweisung einer Kundengruppe bei der Registrierung, ausführlich beschrieben von Matthias Zeis. Leider führt diese Funktion dazu, dass eine größere Zahl Kundengruppen genutzt werden muss, während der Shopbetreiber die Kundengruppen lieber für ihren ursprünglichen Zweck nutzen möchte, wie die Bereitstellung von kundengruppenspezifischen Preisen. Ein weiteres Problem ist, dass die USt.-ID länderspezifisch ist und dementsprechend bei jedem Wechsel des Lieferlandes erneut geprüft werden muss, woraus wieder ein Kundengruppenwechsel resultieren müsste, was im Standard von Magento aber nicht passiert.
Lösung: Entkopplung der Steuerklasse von der Kundengruppe
Download: https://github.com/integer-net/EuropeanTax
Zur Lösung dieser Probleme haben wir uns entschlossen, keinen Kundengruppenwechsel abhängig von der USt.-ID durchzuführen. Stattdessen wird die Kundensteuerklasse erst im jeweiligen Moment, wenn sie benötigt wird, festgelegt. Dafür haben wir in die Kundengruppenmaske ein weiteres Feld eingebaut: Eine Steuerklasse, die bei gültiger USt.-ID genutzt wird.
Das zugehörige Modul stellen wir kostenfrei zum Download zur Verfügung.
Problem: Unterschiedliche Steueranzeige für B2B und B2C
Ein weiterer Stolperstein ist die unterschiedliche Steueranzeige für Privatkunden und Gewerbekunden. Das Problem ist schnell erklärt: B2C-Kunden sollen immer Bruttopreise sehen, B2C-Kunden immer Nettopreise. In der Standardkonfiguration von Magento gibt es dafür nur eine Einstellung, die global für alle Kundengruppen wirkt.
Lösung: Getrennte Steuerkonfiguration für Kundengruppen
Download: https://github.com/integer-net/AlternativeTaxConfiguration
Daher haben wir eine alternative Steuerkonfiguration erstellt, die sich direkt unterhalb der normalen Konfiguration befindet.
Hier befinden sich die Einstellungen, die für die Darstellung der Steuern relevant sind, als Duplikate. Die hier vorgenommenen Einstellungen gelten für die im oberen Bereich definierten Kundengruppen.
Die Konfigurationseinstellungen werden jeweils dynamisch geladen, abhängig davon, welche Kundengruppe aktiv ist. Das hierfür zuständige Modul haben wir ebenfalls zum kostenfreien Download bereit gestellt.
Fazit
Die Steuerkonfiguration von Magento ist bereits im Standard sehr mächtig und bildet die meisten Fälle ab. Bei den komplexen Besteuerungsregelungen des europäischen Marktes - vor allem im B2B-Bereich - reicht dies allerdings nicht aus. Mit zwei kleinen Modulen lässt sich hier allerdings mit wenig Aufwand Abhilfe schaffen.