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.

Autor: Andreas von Studnitz
Andreas von Studnitz ist Diplom-Informatiker, Magento-Entwickler und Geschäftsführer von integer_net. Seine Schwerpunkte sind Entwicklung, Beratung und die Durchführung von Schulungen. Er ist Magento 2 Certified Professional Developer Plus und hat darüber hinaus weitere Magento Zertifizierungen für Magento 1 und Magento 2. Sowohl im Jahr 2019 als auch 2020 wurde Andreas als Magento Master in der Kategorie „Mentor“ ausgezeichnet.
Sehr geehrter Herr von Studnitz,
vielen Dank für dieses tolle Tutorial, die kostenlosen Module und Ihre Ausführungen.
Wir betreiben auch einen Shop mit B2B und B2C Kunden und die Kombination aus Gruppenpreisen und Ihren Modulen macht den Shop perfekt.
Haben Sie die verschiedenen Preise pro Store für B2B/B2C Kunden auch in Gruppenpreisen abgebildet, oder haben Sie dort eine andere Lösung parat?
Mit freundlichen Grüßen
Stefan Kähler
Ich hätte vermutet, dass die Lösung auch mit Gruppenpreisen funktioniert, da wir nicht die Preisberechnung selbst modifizieren, sondern die Steuerklasse. Ich habe es allerdings nicht explizit getestet.
Hallo Andreas, klasse Beitrag.
Guten Tag Herr von Studnitz.
Ihren Artikel finde ich recht ausführlich und die netterweise zur Verfügung gestellten Erweiterungen funktionieren gut (Magento 1.9.2)
Mir ist allerdings nicht klar geworden wie jetzt die Zuteilung zur Retailer Kundengruppe erfolgt. Da sie ja auf einen Automatismus verzichten, gehe ich davon aus das es manuell gemacht werden muss?
Es geht dabei um einen Shop der primär B2C behandelt, aber demnächst auch eien Artikelstamm für B2B Kunden anbietet. Wäre es nicht doch möglich den automatismus zu verwenden, das bei valider USt.ID der Kunde in die passende Kruppe eingeordnet wird?
Mit freundlichen Grüßen
Stephan Tegtmeier
Für die Steuerberechnung ist die Zuweisung zu einer Kundengruppe nicht mehr notwendig. Wenn es trotzdem notwendig ist, müsste man nach wie vor die Magento-Core-Funktionalitäten dafür nutzen können, also die automatische Kundengruppenzuweisung.
Sehr geehter Herr von Studnitz,
Klasse. Großes Kompliment. Genau das fehlt Magento-seitig.
Planen oder haben Sie diese Lösung auch für Magento 2 parat?
Nein, in Magento-2-Projekten hatten wir diese Anforderung noch nicht.
Hallo nochmal.
Als Hinweis, falls jemand anderes ebenfalls danach sucht.
Wir konnten mit dem Modul von Geissweb
https://www.geissweb.de/magento-extensions/eu-vat-enhanced-for-magento-2.html?___store=german&___from_store=default
genau diese Funktionalität auch für Magento 2 herstellen und die Steueranzeige der Produkte je nach Kundengruppe (inkl. oder exkl. MwSt.) ausweisen.
Beste Grüße