Kleinunternehmer: Installation
Installation des Sylius-Plugins Kleinunternehmer §19 UStG: Composer über Packeton, Bundle, Routen, Setup-Befehl, Update und Deinstallation in der richtigen Reihenfolge.
Kleinunternehmer: Installation
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Composer
Private Repositories werden über Packeton verwaltet (
https://packeton.markus-michalski.net). Zugangsdaten nach Lizenzkauf/Freigabe.
{ "repositories": [{ "type": "composer", "url": "https://packeton.markus-michalski.net" }] }
composer require mmd/sylius-kleinunternehmer-plugin
Nach dem composer require:
-
Bundle registrieren in
config/bundles.php(es gibt kein Flex-Rezept):Mmd\SyliusKleinunternehmerPlugin\MmdSyliusKleinunternehmerPlugin::class => ['all' => true], -
Admin-Routen importieren, zum Beispiel in
config/routes/mmd_sylius_kleinunternehmer.yaml. Erst dadurch existiert die Route, auf die der Admin-Menüpunkt zeigt:mmd_sylius_kleinunternehmer_admin: resource: "@MmdSyliusKleinunternehmerPlugin/config/routes/admin.yaml" -
Setup-Befehl ausführen:
bin/console mmd:kleinunternehmer:setupDer Befehl legt die Tabellen
mmd_kleinunternehmer_settingsundmmd_kleinunternehmer_migrated_variantan. Er hat keine eigenen Optionen und tut Folgendes:- Er führt ausschließlich die noch offenen Migrationen dieses Plugins aus, nicht die der App oder anderer Plugins.
- Er ist idempotent: Ohne neue Migration passiert nichts, daher kannst du ihn nach jedem
composer updategefahrlos erneut ausführen. - Er prüft, ob die Routen aus Schritt 2 importiert sind, und gibt sonst den passenden Snippet aus. In
config/schreibt er nie selbst. - Hat das Plugin offene Migrationen und sind Sylius-Migrationen noch offen, bricht er ab und verlangt zuerst
bin/console doctrine:migrations:migrate. - Er fragt interaktiv um Bestätigung. In Skripten ergänzt du
--no-interaction.
doctrine:migrations:migratefunktioniert weiterhin als Alternative.
Es gibt keine config/packages/*.yaml-Datei für dieses Plugin und keine Umgebungsvariablen, die es liest.
Der Setup-Befehl fasst deine Produktpreise nicht an. Das Umstellen bestehender Produkte auf die 0-%-Steuerkategorie ist ein eigener Schritt, siehe Preis-Migration.
Erste Schritte nach der Installation
- Lege eine Zone mit dem Code
DEan, falls sie fehlt (Admin → Konfiguration → Zonen). - Öffne Admin → MMKreativ Plugins → Kleinunternehmer §19 UStG und aktiviere die Regelung, siehe Konfiguration.
- Migriere bestehende Produkte, siehe Preis-Migration.
Konsolenbefehle
| Befehl | Zweck | Wann |
|---|---|---|
mmd:kleinunternehmer:setup |
Migrationen dieses Plugins ausführen, Routen-Import prüfen | Nach Installation und nach jedem Update |
mmd:kleinunternehmer:migrate-prices |
Preise auf 0 % umstellen oder zurücksetzen | Einmalig bei der Umstellung, siehe Preis-Migration |
Beide Befehle musst du nicht regelmäßig schedulen.
Update
composer update mmd/sylius-kleinunternehmer-plugin
bin/console mmd:kleinunternehmer:setup
bin/console cache:clear
Deinstallation
- Wenn die Produkte ihre ursprüngliche Steuerkategorie zurückbekommen sollen, zuerst die Preise zurücksetzen:
Beachte die Rundungsgrenze beim Zurücksetzen auf der Seite Preis-Migration.bin/console mmd:kleinunternehmer:migrate-prices --restore - Migrationen bei noch registriertem Bundle zurückrollen, pro Version einzeln, neueste zuerst:
bin/console doctrine:migrations:execute --down "Mmd\SyliusKleinunternehmerPlugin\Migrations\Version20260829160426" bin/console doctrine:migrations:execute --down "Mmd\SyliusKleinunternehmerPlugin\Migrations\Version20260828132209" bin/console doctrine:migrations:execute --down "Mmd\SyliusKleinunternehmerPlugin\Migrations\Version20260828121602" - Routen-Import (
config/routes/mmd_sylius_kleinunternehmer.yaml) und Bundle-Eintrag inconfig/bundles.phpentfernen. - Paket entfernen:
composer remove mmd/sylius-kleinunternehmer-plugin
Die Migrationen legen nur die beiden Tabellen an. Die 0-%-Steuerkategorie
kleinunternehmer_zeround ihr Steuersatz bleiben als normale Sylius-Daten bestehen. Löschst du sie, dann erst, nachdem keine Variante mehr darauf zeigt.