StartseiteDokumentationMindermengenzuschlag

    Mindermengenzuschlag

    Automatische Zuschläge bei Unterschreitung des Mindestbestellwerts

    Überblick

    Das Plugin fügt automatisch einen Mindermengenzuschlag zum Warenkorb hinzu, wenn der Bestellwert unter einem konfigurierbaren Schwellenwert liegt. Der Zuschlag erscheint als separates Line Item im Warenkorb und wird transparent ausgewiesen.

    Das Plugin unterstützt bis zu drei Staffeln mit unterschiedlichen Schwellwerten und Zuschlagshöhen, sowohl als fester Betrag als auch prozentual. Es enthält einen Fortschrittsbalken, Kundengruppen-Steuerung und Kategorie-Ausnahmen.

    Systemvoraussetzungen

  1. Shopware 6.7 oder höher
  2. PHP 8.1 oder höher
  3. MySQL 8.0 oder höher
  4. Installation

  5. 1.Plugin über den Shopware Plugin-Manager installieren oder manuell in custom/plugins/BcMinimumQuantitySurcharge ablegen
  6. 2.Plugin im Plugin-Manager aktivieren
  7. 3.Cache leeren:
  8. php bin/console cache:clear

    Konfiguration

    Die Plugin-Konfiguration befindet sich unter Erweiterungen > Meine Erweiterungen > BC Mindermengenzuschlag > Konfiguration (config.xml).

    Allgemein:

  9. **Mindermengenzuschlag aktivieren?** (`BcMinimumQuantitySurcharge.config.active`, Typ: `bool`, Standard: `true`): Globaler Schalter.
  10. **Zuschlagsart** (`BcMinimumQuantitySurcharge.config.surchargeType`, Typ: `single-select`, Standard: `fixed`): `fixed` (Fester Betrag) oder `percentage` (Prozentual vom fehlenden Betrag).
  11. **Berechnungsgrundlage** (`BcMinimumQuantitySurcharge.config.calculationBase`, Typ: `single-select`, Standard: `gross`): `gross` (Brutto inkl. MwSt.) oder `net` (Netto exkl. MwSt.).
  12. **Steuersatz für den Zuschlag** (`BcMinimumQuantitySurcharge.config.lineItemTax`, Typ: `sw-entity-single-select`, Entity: `tax`): Steuersatz, der auf den Zuschlag angewendet wird. Leer = steuerfrei.
  13. **Kundengruppen** (`BcMinimumQuantitySurcharge.config.customerGroups`, Typ: `sw-entity-multi-id-select`, Entity: `customer_group`): Zuschlag nur für diese Kundengruppen. Leer = alle.
  14. Staffel 1:

  15. **Staffel 1 aktivieren?** (`BcMinimumQuantitySurcharge.config.tier1Active`, Typ: `bool`, Standard: `true`)
  16. **Schwellwert** (`BcMinimumQuantitySurcharge.config.tier1Threshold`, Typ: `float`, Standard: `30`)
  17. **Zuschlagswert** (`BcMinimumQuantitySurcharge.config.tier1Value`, Typ: `float`, Standard: `5.00`)
  18. Staffel 2:

  19. **Staffel 2 aktivieren?** (`BcMinimumQuantitySurcharge.config.tier2Active`, Typ: `bool`, Standard: `false`)
  20. **Schwellwert** (`BcMinimumQuantitySurcharge.config.tier2Threshold`, Typ: `float`, Standard: `50`)
  21. **Zuschlagswert** (`BcMinimumQuantitySurcharge.config.tier2Value`, Typ: `float`, Standard: `3.00`)
  22. Staffel 3:

  23. **Staffel 3 aktivieren?** (`BcMinimumQuantitySurcharge.config.tier3Active`, Typ: `bool`, Standard: `false`)
  24. **Schwellwert** (`BcMinimumQuantitySurcharge.config.tier3Threshold`, Typ: `float`, Standard: `80`)
  25. **Zuschlagswert** (`BcMinimumQuantitySurcharge.config.tier3Value`, Typ: `float`, Standard: `1.50`)
  26. Ausnahmen:

  27. **Kategorien von Berechnung ausschließen** (`BcMinimumQuantitySurcharge.config.excludedCategories`, Typ: `sw-entity-multi-id-select`, Entity: `category`): Produkte aus diesen Kategorien werden bei der Warenkorbwert-Berechnung nicht berücksichtigt.
  28. Anzeige:

  29. **Hinweis auf Produktdetailseite anzeigen?** (`BcMinimumQuantitySurcharge.config.showOnProductPage`, Typ: `bool`, Standard: `true`)
  30. **Fortschrittsbalken anzeigen?** (`BcMinimumQuantitySurcharge.config.showProgressBar`, Typ: `bool`, Standard: `true`): Zeigt einen visuellen Balken, der den fehlenden Betrag bis zum zuschlagsfreien Einkauf darstellt.
  31. Funktionen

    Cart Processor

    Der MinimumQuantitySurchargeProcessor implementiert CartProcessorInterface und CartDataCollectorInterface. Bei jeder Warenkorb-Berechnung wird geprüft, ob der Warenkorbwert (brutto oder netto, je nach Konfiguration) unter dem konfigurierten Schwellwert liegt. Wenn ja, wird ein Zuschlag als Line Item hinzugefügt.

    Drei-Staffel-System

    Bis zu drei Staffeln können parallel aktiv sein. Die passende Staffel wird anhand des Warenkorbwerts bestimmt -- die höchste Staffel, deren Schwellwert unterschritten wird, greift.

    Transparente Darstellung

    Der Zuschlag erscheint als separates Line Item im Warenkorb und in der Bestellübersicht. Der Snippet bc-minimum-quantity-surcharge.surchargeLineItemLabel wird als Label verwendet.

    Fortschrittsbalken

    Ein visueller Fortschrittsbalken zeigt dem Kunden, wie viel noch bis zum zuschlagsfreien Einkauf fehlt.

    Automatische Entfernung

    Sobald der Warenkorbwert den Schwellwert erreicht oder überschreitet, wird der Zuschlag automatisch entfernt.

    Events & Hooks

    Das Plugin verwendet keine eigenen Event-Klassen. Es reagiert auf folgende Shopware-Events:

  32. **`ProductPageLoadedEvent`** (`Shopware\Storefront\Page\Product\ProductPageLoadedEvent`) -- Der `MinimumQuantitySurchargeSubscriber` ergänzt Zuschlagsinformationen auf der Produktdetailseite.
  33. **`MinimumQuantitySurchargePageLoadedEvent`** (`BcMinimumQuantitySurcharge\Storefront\Page\MinimumQuantitySurchargePageLoadedEvent`) -- Eigenes Page-Event für die Zuschlagswidget-Seite.
  34. Der Cart Processor greift direkt in die Warenkorb-Berechnung ein (kein Event, sondern Shopware Cart-Pipeline).

    Textbausteine (Snippets)

    Storefront-Snippets (src/Resources/snippet/de_DE/bc-minimum-quantity-surcharge.de-DE.json):

  35. `bc-minimum-quantity-surcharge.surchargeLineItemLabel` -- "Mindermengenzuschlag"
  36. `bc-minimum-quantity-surcharge.surchargeLineItemDescription` -- Beschreibung mit Platzhaltern `%threshold%` und `%star%`
  37. `bc-minimum-quantity-surcharge.hintSurchargeActive` -- Hinweis bei aktivem Zuschlag mit `%surchargeAmount%`, `%remaining%`, `%threshold%`
  38. `bc-minimum-quantity-surcharge.hintNoSurcharge` -- Hinweis bei erreichtem Mindestbestellwert
  39. `bc-minimum-quantity-surcharge.progressRemaining` -- Fortschrittsbalken-Text mit `%remaining%` und `%threshold%`
  40. `bc-minimum-quantity-surcharge.progressComplete` -- "Mindestbestellwert erreicht -- kein Zuschlag!"
  41. Verfügbar in DE und EN.

    Datenbank-Tabellen

    Das Plugin erstellt keine eigenen Datenbank-Tabellen. Die Zuschlagsberechnung erfolgt vollständig über die Plugin-Konfiguration und den Cart Processor zur Laufzeit.

    Admin-Integration

    Die Konfiguration erfolgt über die Standard-Plugin-Konfiguration. Es gibt kein separates Admin-Modul.

    Der Zuschlag ist in Bestellungen als eigenes Line Item sichtbar und wird in der Bestellübersicht und im Bestelldetail korrekt ausgewiesen.

    Storefront-Integration

    Das Plugin modifiziert folgende Storefront-Bereiche:

    Templates (src/Resources/views/storefront/):

  42. `page/minimum-quantity-surcharge/hint.html.twig` -- Zuschlagshinweis-Seite
  43. `component/line-item/line-item.html.twig` -- Line-Item-Darstellung im Warenkorb
  44. `component/line-item/element/label.html.twig` -- Label-Element für das Zuschlag-Line-Item
  45. `component/bc-minimum-quantity-surcharge/progress-bar.html.twig` -- Fortschrittsbalken-Komponente
  46. `component/bc-minimum-quantity-surcharge/hint-widget.html.twig` -- Hinweis-Widget
  47. `component/delivery-information.html.twig` -- Erweiterung der Lieferinformationen
  48. JavaScript-Plugins (src/Resources/app/storefront/src/minimum-quantity-surcharge/):

  49. `bc-minimum-quantity-surcharge-widget.plugin.js` -- Widget für Zuschlagsanzeige
  50. `bc-minimum-quantity-surcharge-trigger.plugin.js` -- Trigger für dynamische Updates
  51. Storefront-Controller:

  52. `MinimumQuantitySurchargeController` mit eigener Route (definiert in `routes.xml`)
  53. Kompatibilität

  54. Kompatibel mit allen anderen Plugins der Bronner B2B Suite
  55. Kompatibel mit Standard-Shopware-Themes
  56. Der Zuschlag wird korrekt in der Steuerberechnung berücksichtigt
  57. Getestet mit Shopware 6.7.x
  58. Unterstützt Multi-Sales-Channel
  59. FAQ