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.
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).
- Sie zeigt den Stand als " von {total} Produkt(en) bereits auf 0%". Sind keine Produkte vorhanden, steht dort "Keine Produkte im Shop vorhanden."
- Aktualisieren lädt den Stand neu.
- Alle Produkte auf 0% umstellen startet die Migration nach einer Bestätigung. Der Dialog "Migration bestätigen" nennt die Zahl der betroffenen Produkte und weist darauf hin, dass der Vorgang über die Oberfläche nicht rückgängig zu machen ist.
- Ab mehr als 1.500 Produkten erscheint eine Warnung, die den CLI-Befehl empfiehlt, weil die Migration über den Admin an Server-Zeitlimits scheitern kann.
- Ein Hinweis auf der Karte nennt den Befehl
mmd:kleinunternehmer:migrate-products --restore --tax-rate=19für die Rückstellung.
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=19also 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
linkedzurück, einen Streichpreis übergibt es nicht. Das gilt in beide Richtungen.
- Geändert wird nur der Standardpreis (
price) je Währung. Staffelpreise (erweiterte Preise) und Einkaufspreise werden nicht angefasst. - Die Migration läuft in Schritten von 100 Produkten.
- Die Deaktivierung des Plugins setzt Produkte nicht zurück. Sie stellt nur den Standard-Steuersatz des Shops wieder her.
- Bestehende Bestellungen und bereits erzeugte Dokumente werden nicht geändert.