Alle Artikel
Shopware 65 min

Shopware 6 Rule Builder – Preisregeln einfach erklärt

Der Shopware 6 Rule Builder ist eines der mächtigsten Werkzeuge im Shopware-Ökosystem. Mit ihm lassen sich komplexe Geschäftslogiken ohne Programmierung umsetzen – von dynamischen Preisregeln über Versandkostenstaffeln bis hin zu personalisierten Promotions. In diesem Artikel zeige ich dir, wie der Shopware 6 Rule Builder funktioniert und wie du ihn optimal für dein E-Commerce-Projekt einsetzt.

Was ist der Shopware 6 Rule Builder?

Der Rule Builder ist ein visuelles Interface im Shopware 6 Backend, mit dem du Bedingungen (Conditions) definierst. Diese Regeln steuern dann automatisch verschiedene Shop-Funktionen:

  • Preisregeln – Rabatte ab bestimmten Warenkorbwerten
  • Versandkosten – Kostenloser Versand für Premium-Kunden
  • Zahlungsarten – PayPal nur für Stammkunden anzeigen
  • Produktsichtbarkeit – B2B-Artikel nur für eingeloggte Händler
  • Promotions – 3-für-2-Aktionen mit zeitlichen Begrenzungen

Der Vorteil: Du brauchst keine Plugins oder Code-Anpassungen für Standard-Szenarien. Der Shopware 6 Rule Builder macht das System extrem flexibel.

Anatomie einer Regel

Jede Regel im Rule Builder besteht aus zwei Teilen:

  1. Bedingungen (Conditions) – WANN soll die Regel greifen?
  2. Aktionen (Actions) – WAS soll passieren?

Die Bedingungen kannst du verschachteln mit:

  • AND – Alle Bedingungen müssen erfüllt sein
  • OR – Mindestens eine Bedingung muss erfüllen

Beispiel: VIP-Rabatt

Regel: "Stammkunden mit Warenkorbwert über 200€ erhalten 10% Rabatt"

Bedingungen (AND):

  • Kundengruppe = "VIP"
  • Warenkorbwert ≥ 200€

Aktion:

  • Rabatt 10% auf Gesamtsumme

Die wichtigsten Condition-Typen

Der Shopware 6 Rule Builder bietet über 40 Standard-Bedingungen. Die wichtigsten:

Warenkorb-Bedingungen

  • Cart Amount – Gesamtwert (netto/brutto)
  • Line Item Count – Anzahl Produkte im Warenkorb
  • Line Item with Quantity – Bestimmtes Produkt X-mal im Warenkorb

Kunden-Bedingungen

  • Customer Group – Kundengruppe (B2B, Stammkunde, etc.)
  • Customer Number – Spezifische Kundennummern
  • Billing/Shipping Address – PLZ-Bereiche, Länder
  • Is New Customer – Erstkäufer identifizieren

Zeit-Bedingungen

  • Day of Week – Bestimmte Wochentage (z.B. "Happy Friday")
  • Date Range – Zeitraum (Weihnachtsaktion)

Produkt-Bedingungen

  • Product – Spezifische Produkte
  • Manufacturer – Hersteller
  • Category – Kategorien
  • Product Properties – Eigenschaften (Farbe, Größe)

Praktisches Beispiel: Versandkostenregel

Szenario: Ab 50€ Warenkorbwert ist der Versand kostenlos, aber nur innerhalb Deutschlands.

Schritt 1: Regel erstellen

Im Backend navigierst du zu:

Einstellungen → Shop → Regeln → Neue Regel erstellen

Name: "Kostenloser Versand DE ab 50€" Priorität: 100 (höhere Zahl = wichtiger)

Schritt 2: Bedingungen definieren

AND-Container
├─ Cart Amount (>=) 50.00 EUR (Gross)
└─ Billing Country (=) Deutschland

Schritt 3: Regel mit Versandart verknüpfen

Gehe zu:

Einstellungen → Shop → Versandarten → [Deine Versandart]

Bei "Verfügbarkeitsregel" wählst du die erstellte Regel aus. Setze die Versandkosten auf 0,00€.

Fertig! Kunden aus Deutschland zahlen ab 50€ Warenkorbwert keine Versandkosten.

Preisregeln mit Promotions

Für komplexe Rabattaktionen nutzt du den Promotion-Bereich in Kombination mit dem Rule Builder.

Beispiel: "3 für 2"-Aktion

Ziel: Kaufe 3 T-Shirts, zahle nur 2

Einstellungen → Shop → Promotions → Neue Promotion

Bedingungen:

Line Item with Quantity
├─ Product = "Basic T-Shirt"
└─ Quantity (>=) 3

Rabatt-Typ:

  • "Kaufe X zahle Y" (Buy X Get Y)
  • Kaufe: 3, Zahle: 2

Der Shopware 6 Rule Builder rechnet automatisch den günstigsten Artikel heraus.

Custom Rules via Plugin

Manchmal reichen die Standard-Conditions nicht. Dann erstellst du eigene Regeln per Plugin.

Beispiel: Regel für "Kunde hat bereits Produkt X gekauft"

<?php
namespace MyPlugin\Core\Rule;

use Shopware\Core\Checkout\Cart\Rule\CartRuleScope;
use Shopware\Core\Framework\Rule\Rule;
use Shopware\Core\Framework\Rule\RuleScope;

class HasPurchasedProductRule extends Rule
{
    protected string $productId;

    public function match(RuleScope $scope): bool
    {
        if (!$scope instanceof CartRuleScope) {
            return false;
        }

        $customerId = $scope->getSalesChannelContext()
            ->getCustomer()?->getId();

        if (!$customerId) {
            return false;
        }

        // Prüfe Order-History in DB
        return $this->customerHasPurchasedProduct(
            $customerId, 
            $this->productId
        );
    }

    public function getConstraints(): array
    {
        return [
            'productId' => RuleConstraints::uuid()
        ];
    }
}

Registriere die Rule in services.xml:

<service id="MyPlugin\Core\Rule\HasPurchasedProductRule">
    <tag name="shopware.rule.definition"/>
</service>

Nach dem Plugin-Install steht die Regel im Rule Builder zur Verfügung.

Performance-Tipps

Der Shopware 6 Rule Builder ist performant, aber bei vielen Regeln solltest du beachten:

1. Prioritäten sinnvoll setzen

Regeln mit höherer Priorität werden zuerst geprüft. Setze häufig zutreffende Regeln höher.

2. Bedingungen cachen

Shopware cached Rule-Ergebnisse automatisch. Bei Custom Rules nutze den CacheKeyGenerator:

public function getName(): string
{
    return 'my_custom_rule';
}

3. Komplexe DB-Abfragen vermeiden

Vermeide in Custom Rules langsame Queries. Nutze wo möglich EntityRepository mit Caching.

4. Testdaten nutzen

Erstelle Test-Kunden mit verschiedenen Eigenschaften, um Regeln zu validieren, bevor sie live gehen.

Debugging von Regeln

Regeln greifen nicht wie erwartet? So debuggst du:

Entwickler-Toolbar

In der Symfony-Profiler-Bar siehst du, welche Rules geprüft wurden:

bin/console debug:container | grep rule

Logger nutzen

In Custom Rules:

use Psr\Log\LoggerInterface;

public function __construct(private LoggerInterface $logger)
{
}

public function match(RuleScope $scope): bool
{
    $result = // ... deine Logik
    
    $this->logger->info('Rule matched: ' . ($result ? 'yes' : 'no'));
    
    return $result;
}

Administration Console

Im Browser-Console der Administration kannst du Rule-Evaluierungen nachverfolgen.

Typische Fehler vermeiden

Regel zu restriktiv Problem: "AND" mit zu vielen Bedingungen – Regel greift nie. Lösung: Mit wenigen Bedingungen starten, schrittweise erweitern.

Prioritäten ignoriert Problem: Zwei Regeln widersprechen sich. Lösung: Klare Prioritäten setzen (0–1000).

Keine Testphase Problem: Regel geht direkt live, Rabatte werden falsch berechnet. Lösung: Immer mit Test-Accounts in Staging-Umgebung prüfen.

Fazit

Der Shopware 6 Rule Builder ist ein unverzichtbares Tool für jeden Shop-Betreiber. Ob einfache Preisregeln oder komplexe Multi-Bedingungen – das System bietet maximale Flexibilität ohne Code-Anpassungen. Für Spezialfälle lassen sich Custom Rules problemlos via Plugin integrieren.

Die wichtigsten Takeaways:

  • Nutze Standard-Conditions wo möglich
  • Setze Prioritäten bewusst
  • Teste Regeln gründlich vor dem Go-Live
  • Für komplexe Logik: Custom Rules entwickeln

Du arbeitest an einem Shopware 6 Projekt und brauchst Unterstützung beim Rule Builder oder Custom-Entwicklungen? Ich helfe dir gerne – von der Konzeption bis zur technischen Umsetzung.

Shopware 6 Rule BuilderShopware 6FreelancerWebentwicklungDüsseldorf