Das Problem: Rabattstaffeln treffen auf Ausschlusskriterien
In der Praxis von Online-Shops kommt es häufig zu komplexen Rabatt-Szenarien. Ein klassisches Beispiel, das viele Shopware-Nutzer vor Herausforderungen stellt, ist die Kombination aus einem mindestbestellwert-basierten Rabatt und Artikeln, die explizit nicht rabattfähig sein dürfen.
Das Szenario:
Ein Händler möchte folgende Staffelung anbieten:
- Ab 250 € Warenkorbwert: 10% Rabatt
- Ab 500 € Warenkorbwert: 15% Rabatt
- Ab 1.000 € Warenkorbwert: 20% Rabatt
Gleichzeitig gibt es im Sortiment Artikel (z. B. Dienstleistungen, preisgebundene Bücher oder spezielle Netto-Ware), die über ein Zusatzfeld als „Nicht rabattfähig“ markiert sind.
Die Herausforderung:
Werden diese Regeln naiv im Rule Builder angelegt (z. B. „Warenkorb >= 500 AND Alle Positionen sind rabattfähig“), passiert Folgendes: Sobald ein Kunde auch nur einen einzigen nicht rabattfähigen Artikel in den Warenkorb legt, greift die Regel für den gesamten Warenkorb nicht mehr. Der Kunde erhält gar keinen Rabatt, obwohl er für über 1.000 € rabattfähige Ware kauft.
In diesem Tutorial zeige ich Ihnen, wie Sie die Logik in Shopware 6 so trennen, dass der Gesamtwert den Rabatt auslöst, aber der Abzug nur auf die korrekten Positionen erfolgt.
Die Lösung: Trennung von Auslöser und Wirkungsbereich
Der Schlüssel zum Erfolg liegt darin, Shopware klar zu sagen: „Prüfe die Summe des gesamten Warenkorbs, aber wende den Rabatt nur auf bestimmte Zeilen an.“
Schritt 1: Die „Filter-Regel“ im Rule Builder erstellen
Zuerst benötigen wir eine Regel, die definiert, was ein „guter“ (rabattfähiger) Artikel ist. Diese Regel prüft nicht den Preis, sondern nur die Eigenschaft des Produkts.
- Name: Artikel ist rabattfähig
- Priorität: 100
- Bedingung:
Position mit Zusatzfeld-> Ihr Feld (z.B. „Not eligible for discount“) -> Ist ungleich -> Aktiviert (True).
Damit haben wir eine Schablone, die auf jeden Artikel einzeln passt, der rabattiert werden darf.
Schritt 2: Die „Auslöser-Regeln“ bereinigen
Für die Schwellenwerte (250 €, 500 €, 1.000 €) legen wir Regeln an, die ausschließlich den Warenkorbwert prüfen. Vermeiden Sie hier Bedingungen zu Produkteigenschaften!
- Name: Warenkorb >= 500
- Bedingung:
Warenkorb > Warenkorbwert-> Größer gleich -> 500.
Schritt 3: Die Rabattaktion konfigurieren (Der Gamechanger)
Nun verknüpfen wir beides im Modul Marketing > Rabattaktionen. Hier passiert die eigentliche Magie.
- Erstellen Sie die Aktion (z. B. „15% ab 500€“).
- Unter Bedingungen wählen Sie nur die Regel aus Schritt 2 (
Warenkorb >= 500). Damit qualifiziert sich der Kunde, sobald die Summe stimmt – egal, was im Warenkorb liegt. - Wechseln Sie zum Reiter Rabatte.
- Stellen Sie Anwenden auf auf:
Warenkorb. - WICHTIG: Aktivieren Sie den Schalter „Nur auf ausgewählte Produkte anwenden“.
- Im nun erscheinenden Feld Produktregeln wählen Sie Ihre Regel aus Schritt 1 (
Artikel ist rabattfähig). - Setzen Sie bei „Anwenden auf“ (im unteren Bereich) die Einstellung auf
Jedes Produkt.
Schritt 4: Prioritäten und Überschneidungen
Damit bei einem Warenkorb von 1.200 € nicht versehentlich 10% + 15% + 20% abgezogen werden, nutzen Sie das Feld Priorität in den allgemeinen Einstellungen der Rabattaktion:
- 20% Aktion: Priorität 100
- 15% Aktion: Priorität 50
- 10% Aktion: Priorität 10
Setzen Sie zudem bei allen Aktionen den Haken bei „Verhindere Kombination mit anderen Aktionen“. Shopware prüft nun von oben nach unten. Die höchste zutreffende Regel gewinnt und stoppt die Prüfung der anderen.
Fazit
Mit dieser Konfiguration erreichen Sie ein faires und transparentes Einkaufserlebnis: Der Kunde erreicht den Mindestbestellwert auch mit Hilfsartikeln (Mischkalkulation), bekommt den Rabatt aber mathematisch korrekt nur auf die Ware, die Ihre Marge zulässt.