Markus Michalski FAQ

Kleinunternehmer: Produkt-Migration

Kleinunternehmer §19 UStG für Shopware 6.7 - Produkte per Admin-Karte oder CLI-Befehl auf den 0%-Steuersatz umstellen und zurücksetzen, alle Optionen, Preislogik und Grenzen der Migration.

English Version

Zurück zur Übersicht

Kleinunternehmer: Produkt-Migration

Das Plugin berechnet im Warenkorb nichts selbst. Welche Steuer ein Produkt trägt, bestimmt der Steuersatz am Produkt. Die Migration stellt Produkte auf den Steuersatz Kleinunternehmer §19 UStG (0%) um und passt dabei die Preise an. Sie ist die einzige Funktion des Plugins, die Produktdaten ändert.

Die Migration ändert Steuersatz und Preise deiner Produkte in der Datenbank. Mache vorher eine Datensicherung.

Zwei Wege

Admin-Karte CLI-Befehl
Richtung nur zum 0%-Steuersatz zum 0%-Steuersatz und zurück (--restore)
Geeignet für kleine bis mittlere Kataloge große Kataloge, Automatisierung
Sicherheitsabfrage Bestätigungsdialog Abfrage, mit --force überspringbar
Vorschau nein --dry-run

Beide Wege setzen voraus, dass der Steuersatz Kleinunternehmer §19 UStG (0%) existiert. Er wird bei der Aktivierung des Plugins angelegt.

Admin-Karte

Die Karte "Produkt-Migration" steht in der Plugin-Konfiguration (Erweiterungen > Meine Erweiterungen > Kleinunternehmer §19 UStG).

Die Karte ruft die beiden Admin-API-Routen des Plugins auf. Benutzer brauchen dafür die Rechte product:read (Status) bzw. product:update und system_config:read (Migration).

CLI-Befehl

# Vorschau: nur zählen, nichts ändern
bin/console mmd:kleinunternehmer:migrate-products --to-small-business --dry-run

# Alle Produkte auf den 0%-Steuersatz umstellen
bin/console mmd:kleinunternehmer:migrate-products --to-small-business

# Produkte vom 0%-Steuersatz auf 19 % zurücksetzen
bin/console mmd:kleinunternehmer:migrate-products --restore --tax-rate=19

# Auf 7 % zurücksetzen, ohne Rückfrage
bin/console mmd:kleinunternehmer:migrate-products --restore --tax-rate=7 --force
Option Bedeutung
--to-small-business Alle Produkte, die nicht auf dem 0%-Steuersatz liegen, werden dorthin migriert.
--restore Alle Produkte, die auf dem 0%-Steuersatz liegen, werden auf einen regulären Steuersatz zurückgesetzt.
--tax-rate=<Satz> Zielsteuersatz in Prozent für --restore. Standard: 19. Verwendet wird der erste Steuersatz im Shop mit genau diesem Prozentsatz.
--dry-run Zeigt nur, wie viele Produkte betroffen wären.
--force, -f Überspringt die Sicherheitsabfrage (Standardantwort der Abfrage ist "Nein").

Genau eine der Optionen --to-small-business und --restore muss angegeben werden, beide zusammen sind ein Fehler. Existiert für --tax-rate kein Steuersatz, bricht der Befehl ab und gibt die vorhandenen Steuersätze als Tabelle aus. Während der Migration zeigt der Befehl einen Fortschrittsbalken.

Preislogik

Je Währung werden Brutto- und Netto-Preis neu geschrieben:

Richtung Brutto Netto
zum 0%-Steuersatz bisheriger Netto-Preis bisheriger Netto-Preis
zurück (--restore) Netto-Preis × (1 + Satz / 100), auf 2 Nachkommastellen gerundet unverändert

Beispiel: Ein Produkt mit 100 € netto und 119 € brutto kostet nach der Migration zum 0%-Steuersatz 100 €. Beim Zurücksetzen auf 19 % wird daraus wieder 100 € netto und 119 € brutto.

Produkte ohne hinterlegten Preis erhalten nur den neuen Steuersatz.

Grenzen

Beim Zurücksetzen erhalten alle Produkte, die auf dem 0%-Steuersatz liegen, denselben Zielsteuersatz. Der ursprüngliche Steuersatz eines Produkts wird nicht gespeichert. Produkte, die vorher auf 7 % lagen, landen bei --restore --tax-rate=19 also ebenfalls bei 19 %.

Ein vorhandener Streichpreis (Listenpreis) geht bei der Migration verloren und muss danach neu eingetragen werden. Das Plugin schreibt je Währung nur Währung, Brutto, Netto und linked zurück, einen Streichpreis übergibt es nicht. Das gilt in beide Richtungen.