Small Business: Troubleshooting and FAQ
Sylius plugin Small Business §19 UStG: typical problems with installation, activation, migration and notice display with symptom, check and solution, known limitations and FAQ.
Small Business: Troubleshooting and FAQ
Live Demo: Try this and other plugins live — no installation, no risk: demo.markus-michalski.net
Troubleshooting
Symptom: The entry "Kleinunternehmer §19 UStG" is missing under "MMKreativ Plugins" in the admin sidebar, or the admin aborts with a routing error.
Check: Is the bundle registered in config/bundles.php? Is the route import from the Installation page in place?
Solution: Add the missing entry and run bin/console cache:clear. The menu item points to the route mmd_sylius_kleinunternehmer_admin_settings. If the bundle is registered but the route import is missing, rendering the menu can fail with a routing error. bin/console mmd:kleinunternehmer:setup checks the import and prints a snippet.
Symptom: On saving, the message "The regulation could not be activated: no zone with code "DE" exists. Create a zone for Germany first." appears.
Check: Is there a zone with exactly the code DE under Admin → Configuration → Zones?
Solution: Create the zone and save again. The plugin does not create a zone itself and does not derive the zone from existing tax rates.
Symptom: mmd:kleinunternehmer:setup aborts and reports that the migrations are not registered with Doctrine.
Check: Is the bundle registered, and has the cache been cleared since? Is sylius_core.prepend_doctrine_migrations not set to false?
Solution: Check the bundle entry and the setting, clear the cache and run the command again.
Symptom: mmd:kleinunternehmer:setup aborts and asks for doctrine:migrations:migrate.
Check: Are migrations of Sylius itself still open?
Solution: Run bin/console doctrine:migrations:migrate once, then repeat the setup command.
Symptom: No notice appears on the product page or product card.
Check: Is the regulation active? For a product, are really all enabled variants on the tax category kleinunternehmer_zero? A single unmigrated variant is enough for the product to get no notice.
Solution: Look at the counters of the "Migrate prices" card on the settings page and migrate the open variants, see Price migration.
Symptom: The notice is missing in the cart or checkout although the regulation is active.
Check: Does "Taxes total" show an amount above 0? The notice only appears if both tax totals are 0.
Solution: An item is not migrated yet. Migrate it, then the notice appears.
Symptom: The notice is missing although a page in your theme should show it.
Check: Does your theme replace the template that contains the hook point? Which hook sits where is listed on the Storefront page.
Solution: Render the hook again in the theme template, or use the Twig functions kleinunternehmer_notice_applies() and kleinunternehmer_notice_text() directly.
Symptom: The migration reports that variants were skipped.
Check: Does the variant have a code and a tax rate for the zone DE on its previous tax category?
Solution: Add what is missing and start the migration again. Such variants keep counting as "not yet migrated" until then. Variants that have no tax category at all are never selected and appear neither in the counters nor in a warning. Assign them a category if they should be migrated too.
Symptom: After --restore, a gross price deviates from the original by one or two cents.
Check: The net price was rounded to the cent when migrating.
Solution: There is none. Correct the affected prices by hand if they have to be exact to the cent.
Symptom: The credit memo PDF shows no notice.
Check: Is sylius/refund-plugin installed? Is the regulation active? Does the credit memo contain tax? Has another extension replaced the credit memo PDF template?
Solution: The notice appears only with an active regulation and a credit memo without tax. If the template was replaced elsewhere, add the notice there with the Twig functions from the Storefront page.
Symptom: The field kleinunternehmerNoticeApplies is missing from the Shop API response.
Check: Is it a Shop API response (not Admin API)? Does the response belong to one of the serialization groups on the Shop API page? Has the cache been cleared?
Solution: Clear the cache. Custom serialization groups are not covered.
Known limitations
- Credit memos only, no invoices. The notice is added to credit memo PDFs of the refund plugin. There is no integration for invoices and cancellation documents.
- Zone
DEis required. Activation and migration need a zone with the codeDE. - Restoring is not exact to the cent. See Price migration.
- Restoring only via console. The admin offers only the migration towards the small business regulation.
- Variants without a tax category, code or DE tax rate are not migrated. Without a tax category they are not even counted.
- Only the selling price is converted, not original and minimum price, and the formula assumes gross prices (see Price migration).
- Only German and English are editable in the admin. Further languages need a translation file.
- Shop-wide setting. It applies to all channels equally.
- No extension points of its own. The plugin dispatches no events and defines no service tags (see Technical details).
FAQ
General
Does activating change my prices? No. Activating only creates the 0% tax category. Prices change only when you migrate them.
Does this give me legal certainty? The plugin implements the tax category and the notice technically. Whether §19 UStG applies to your business and which wording fits is something you clarify with your tax advisor.
Configuration
Can I switch the regulation off for a single channel? No. The setting is shop-wide.
Where do I change the notice text? On the settings page, see Configuration.
Compatibility
Does the plugin work without the refund plugin? Yes. The refund plugin is only needed for the notice on credit memo PDFs.
Does it work with a custom variant class? Yes. The migration uses the variant class mapped in your installation.