Zum Inhalt springen
Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen, Plugin-Icon
Shopware 6

Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen

Filterbare Eigenschaften an tausenden Produkten von Hand pflegen? Du legst die Regel einmal an, das Plugin vergibt die Eigenschaft danach selbst und hält sie im Hintergrund aktuell.

Preise

Monatlich 24,00 €
Jährlich 199,00 €

Auf einen Blick

  • Eine Regel pflegen statt tausende Produkte einzeln anzufassen
  • Lagerbestand und Freitextfelder werden zu echten Filtern im Listing
  • Filter ziehen nach, sobald ein Verkauf den Bestand ändert
  • Auswertung läuft im Hintergrund, dein Import bleibt so schnell wie vorher
  • Bedingung gegen ein echtes Produkt prüfen, bevor du speicherst

Ein Kunde sucht bei dir einen Akkuschrauber, der sofort lieferbar ist. Die Information steht längst in deinem Shop, im Lagerfeld jedes Artikels. In der Filterleiste taucht sie trotzdem nicht auf, weil Shopware dort ausschließlich Eigenschaften anbietet. Also klickt sich der Kunde durch vierzig Produktseiten oder er kauft woanders.

Das Problem

Filter in der Storefront hängen an Eigenschaften. Was ein Produkt wirklich ausmacht, liegt aber meistens woanders: der Bestand im Lagerfeld, die Energieklasse in einem Freitextfeld, das Gewicht in den Versanddaten. Wer daraus einen Filter machen will, hängt jedem Artikel die passende Eigenschaft von Hand an. Bei 20 Artikeln ist das eine Nachmittagsaufgabe. Bei 8.000 nicht mehr. Und nach dem nächsten Wareneingang stimmt die Hälfte wieder nicht.

Die Lösung

Du beschreibst die Regel ein einziges Mal: eine Bedingung, eine Eigenschaftsgruppe, fertig. Ab dann wertet das Plugin sie selbst aus, sobald sich am Produkt etwas ändert. Ob du im Backend arbeitest, ein Import durchläuft, deine Warenwirtschaft Bestand einbucht oder ein Kunde das letzte Stück kauft, spielt keine Rolle. Die Filterleiste stimmt, ohne dass jemand nachpflegt.

Was du davon hast

Du pflegst Regeln, keine Produkte. Eine Bedingung wie “Bestand größer null und kein Abverkaufsartikel” ersetzt die Handarbeit an jedem einzelnen Artikel. Ein neues Produkt ist ab dem ersten Speichern mit dabei, ohne dass du daran denken musst.

Aus Daten, die sich nicht filtern lassen, werden Filter. Lagerbestand, Preis, Gewicht, Hersteller, Steuersatz und jedes deiner Freitextfelder taugen als Grundlage. Heraus kommt eine gewöhnliche Shopware-Eigenschaft in der Filterleiste deiner Kategorien.

Der Filter folgt dem Verkauf, nicht nur dem Speichern. Geht das letzte Stück über die Kasse, ändert Shopware den Bestand, ohne das Produkt zu speichern. Das Plugin hört auch auf dieses Ereignis, genauso auf geänderte Preise, Kategorien, Hersteller, Steuersätze, Tags und Medien. Dein Filter “Sofort lieferbar” bleibt damit ehrlich, statt bis zur nächsten Bearbeitung etwas zu behaupten, was längst nicht mehr stimmt.

Dein Import bleibt so schnell wie vorher. Beim Schreiben merkt sich das Plugin nur die Produkt-ID und ist damit fertig. Die Auswertung erledigt kurz darauf eine geplante Aufgabe im Hintergrund. Warenwirtschaft, Nachtimporte und API-Aufrufe behalten ihre Antwortzeit, auch wenn eine Regel über zwanzig Freitextfelder rechnet.

Du siehst vor dem Speichern, was die Regel tut. In der Karte “Bedingung testen” wählst du ein echtes Produkt aus und lässt die Regel auswerten, ohne sie zu speichern. Wahr, falsch oder der berechnete Wert stehen sofort da. Die Leiste “Variablen” zeigt dazu die durchsuchbare Struktur eines Testprodukts samt echter Werte und schreibt den angeklickten Pfad in das aktive Eingabefeld.

Was doch durchrutscht, fängt der Vollabgleich. Einmal am Tag geht das Plugin den kompletten Katalog durch und wertet alles neu aus, wahlweise auch stündlich, wöchentlich oder gar nicht. Damit stimmt die Filterleiste selbst dann, wenn ein anderes Plugin Produktdaten an Shopware vorbei in die Datenbank schreibt.

So arbeitet das Plugin

Unter Kataloge findest du einen eigenen Bereich mit einer Liste deiner Regeln: Name, Aktiv, Priorität, Modus, Eigenschaftsgruppe und Erstellungsdatum. Über der Liste steht, wie viele Produkte gerade auf ihre Neuauswertung warten. Bleibt diese Zahl stehen, wird der Hinweis zur Warnung und nennt dir den Grund.

Jede Regel arbeitet in einem von drei Modi. “Zwei Werte (wahr/falsch)” vergibt je eine Option für zutreffend und nicht zutreffend, etwa Sofort lieferbar gegen Nicht verfügbar. “An-/Abwesenheit” setzt eine einzelne Option und nimmt sie wieder weg, sobald die Bedingung nicht mehr greift. “Wert (berechnet)” macht das Rechenergebnis selbst zur Filteroption und rundet es auf Wunsch kaufmännisch, ab oder auf, wahlweise auf eine feste Schrittweite.

Die Bedingung schreibst du als Twig-Vorlage, in derselben Schreibweise, die Shopware auch in E-Mail-Vorlagen verwendet. Die Eigenschaftsgruppe wählst du aus oder legst sie über “Neue Eigenschaftsgruppe anlegen” direkt aus der Regel heraus an, sofort filterbar und auf der Produktdetailseite ausgeblendet. Über die Priorität legst du fest, welche Regel zuerst an der Reihe ist. Varianten werden mit ausgewertet, jede mit ihren eigenen Werten, und kommen automatisch mit, sobald ihr Hauptprodukt an der Reihe ist.

Typische Einsatzszenarien

Lieferfähigkeit als Filter. “Sofort lieferbar” gegen “Bestellware”, abgeleitet aus Lagerbestand und Abverkaufskennzeichen. Der Filter zieht mit jeder Lieferung nach, die deine Warenwirtschaft einbucht, und mit jeder Bestellung, die den Bestand aufbraucht.

Freitextfelder sichtbar machen. Energieeffizienzklasse, Material oder ein Bio-Siegel stehen in einem Freitextfeld und werden per Regel zur Filteroption, ohne dass du 3.000 Artikel nachpflegst.

Versandart vorsortieren. Ab einem bestimmten Gewicht bekommt ein Artikel die Eigenschaft “Speditionsversand”, darunter “Paketversand mit DHL”. Kunden sehen schon im Listing, worauf sie sich einlassen.

Preisklassen bilden. Der Bruttopreis wird auf 50er-Schritte aufgerundet und wandert als Preisklasse in die Filterleiste. Aus 587,40 € wird die Klasse 600.

Technische Fakten für deine IT

Shopware 6.7, jeder Patch-Stand, zuletzt geprüft gegen 6.7.13. PHP ab 8.2. Das Plugin bringt zwei eigene Tabellen mit, eine für die Regeln und eine als Warteschlange. Shopware-Standardtabellen werden weder verändert noch erweitert. Eigenschaftsgruppen und Optionen sind gewöhnliche Shopware-Datensätze, keine Sonderkonstruktion.

Die Bedingungen laufen in einer abgeschotteten Twig-Umgebung mit fester Erlaubnisliste für Tags, Filter und Funktionen. Ausdrücke aus dem Backend erreichen keine Objektmethoden und lösen keine Seiteneffekte aus. Jede Auswertung hat ein festes Budget an Schritten und Arbeitsspeicher, die Ausgabelänge ist hart begrenzt. Der Auswerter hängt mit niedriger Priorität am Schreibvorgang, schützt sich gegen Wiedereintritt und fängt jeden Fehler ab. Ein Produkt-Speichern bricht nie ab, weil eine Regel klemmt.

Zwei geplante Aufgaben tragen den Hintergrundbetrieb: Eine leert minütlich die Warteschlange, die andere stößt den Vollabgleich im eingestellten Takt an. Beide lassen sich in der Konfiguration abschalten, die Stapelgröße stellst du zwischen 1 und 1.000 Produkten ein. Wer keinen Worker betreiben will, stellt auf “Sofort, im laufenden Request” um. Dann rechnet das Plugin direkt im Schreibvorgang, ohne Warteschlange. Auf der Konsole gibt es Befehle für Vollabgleich, Warteschlangen-Zustand und Abarbeiten, auf Wunsch als Testlauf ohne Schreibzugriff.

Die Storefront bekommt keinen zusätzlichen Code. Im Listing und im Checkout entstehen keine zusätzlichen Abfragen, weil das Ergebnis als gewöhnliche Eigenschaftszuordnung in der Datenbank liegt. Geschrieben wird nur die Differenz.

Das Plugin sendet keine Daten an externe Server. Verarbeitet werden ausschließlich Produktdaten, keine personenbezogenen Daten. Protokolliert wird ausführlich nur, wenn du es einschaltest, und dann in einem eigenen Log-Kanal. Für den Zugriff im Backend gibt es die Berechtigung “Bedingte Eigenschaften” mit getrennten Rollen für Ansehen, Bearbeiten, Erstellen und Löschen.

Deinstallierst du mit der Option zum Erhalt der Daten, bleibt alles bestehen. Ohne sie entfernt das Plugin seine beiden Tabellen und seine Einstellungen. Angelegte Eigenschaftsgruppen und Optionen bleiben bewusst stehen, weil an ihnen Produkte, Bestellungen und Filter hängen können.

Ehrlich gesagt

Der Hintergrundbetrieb braucht einen laufenden Worker, also den Admin-Worker deines Shops oder einen Message-Consumer auf dem Server. Läuft keiner, bleiben die Änderungen in der Warteschlange liegen, statt verarbeitet zu werden. Das Plugin sagt dir das über der Regelliste, und du kannst die Warteschlange jederzeit per Konsolenbefehl abarbeiten. Es bleibt trotzdem eine Aufgabe, um die sich jemand kümmern muss.

Und die Bedingungen schreibst du in Twig-Syntax. Das ist kein Klick-Baukasten, die erste eigene Regel kostet nach unserer Erfahrung eine halbe Stunde Einarbeitung. Das Plugin weist Eigenschaften zu, sonst nichts: Preise, Kategorien oder Freitextfelder schreibt es nicht um. Wenn dein Katalog mit fünf Filtern auskommt, die sich nie ändern, brauchst du es nicht. Wird die Pflege dagegen langsam zur Fleißarbeit, probier es aus.

Häufige Fragen

Muss ich programmieren können?

Nein, aber du solltest dich auf Twig-Syntax einlassen. Eine Bedingung wie “stock > 0 and not is_closeout” ist schnell geschrieben und steht als Beispiel direkt unter dem Feld. Für alles Weitere zeigt dir die Variablen-Leiste die verfügbaren Angaben, und der Test-Button sagt dir sofort, ob die Regel greift.

Braucht das Plugin einen laufenden Hintergrund-Worker?

Im Standardbetrieb ja. Die Auswertung läuft über eine Warteschlange, die der Admin-Worker oder ein Message-Consumer abarbeitet. Läuft keiner, bleiben die Änderungen liegen, und das Plugin warnt dich über der Regelliste. Du kannst die Warteschlange per Konsolenbefehl leeren oder in der Konfiguration auf “Sofort, im laufenden Request” umstellen.

Bremst das meinen Shop oder meinen Import aus?

Nein. Für Kunden ändert sich nichts, weil das Ergebnis als gewöhnliche Eigenschaftszuordnung in der Datenbank liegt und im Listing keine zusätzlichen Abfragen entstehen. Beim Schreiben merkt sich das Plugin im Standardbetrieb nur die Produkt-ID, die Rechenarbeit passiert danach im Hintergrund. Dein Import behält seine Laufzeit.

Ziehen die Filter nach, wenn ein Kunde bestellt?

Ja. Eine Bestellung ändert den Bestand, ohne das Produkt zu speichern. Das Plugin hört auf dieses Ereignis und reiht das Produkt zur Neuauswertung ein. Genauso bei geänderten Preisen, Kategorien, Herstellern, Steuersätzen, Tags und Medien.

Funktioniert das mit meinem Theme?

Ja. Das Plugin erzeugt gewöhnliche Shopware-Eigenschaften. Die erscheinen dort, wo dein Theme die Filter ohnehin ausgibt, und brauchen keine Template-Anpassung.

Was passiert mit Eigenschaften, die ich von Hand zugewiesen habe?

Die bleiben unangetastet. Das Plugin fasst nur die Optionen an, die eine aktive Regel verwaltet. Eine Ausnahme solltest du kennen: Im Modus “Wert (berechnet)” betrachtet die Regel die gesamte gewählte Eigenschaftsgruppe als ihren Bereich. Nimm dafür eine eigene Gruppe.

Werden meine Bestandsprodukte automatisch nachgezogen?

Ja, spätestens beim nächsten Vollabgleich, der ab Werk täglich läuft. Wer nicht warten will, startet “Alle Produkte jetzt neu synchronisieren” in der Regelliste oder ruft den passenden Konsolenbefehl auf. Danach hält das Plugin die Zuordnungen bei jeder Änderung selbst aktuell.

Kann das Plugin auch Preise, Kategorien oder Freitextfelder befüllen?

Nein. Es weist Eigenschaften zu, sonst nichts. Wenn du Produktdaten umschreiben oder anreichern willst, ist das der falsche Weg.

Sendet das Plugin Daten an externe Server?

Nein. Alle Regeln und Auswertungen bleiben in deiner Shopware-Installation. Verarbeitet werden ausschließlich Produktdaten, keine personenbezogenen Daten.

Was passiert bei der Deinstallation mit meinen Daten?

Wählst du beim Deinstallieren den Erhalt der Daten, bleibt alles bestehen. Ohne diese Option löscht das Plugin seine beiden eigenen Tabellen und seine Einstellungen. Die angelegten Eigenschaftsgruppen und die Zuordnungen an den Produkten bleiben stehen, damit nichts kaputtgeht, was an Bestellungen oder Filtern hängt.

Features im Überblick

  • Eigener Bereich in der Administration mit Regelliste und Detailansicht
  • Modus "Zwei Werte (wahr/falsch)": je eine Option für zutreffend und nicht zutreffend
  • Modus "An-/Abwesenheit": eine Option wird gesetzt oder wieder entfernt
  • Modus "Wert (berechnet)": das Rechenergebnis wird selbst zur Filteroption
  • Rundung kaufmännisch, ab- oder aufwärts, auf Wunsch auf eine feste Schrittweite
  • Bedingungen über Lagerbestand, Preis, Gewicht, Hersteller, Steuersatz und Freitextfelder
  • Leiste "Variablen": Struktur eines Testprodukts durchsuchen und per Klick einfügen
  • Karte "Bedingung testen": Regel gegen ein echtes Produkt auswerten, ohne zu speichern
  • Neue Eigenschaftsgruppe direkt aus der Regel anlegen, Priorität steuert die Reihenfolge
  • Auswertung wahlweise im Hintergrund über eine Warteschlange oder sofort beim Speichern
  • Bestandsänderungen aus Bestellungen lösen die Neuauswertung mit aus
  • Preise, Kategorien, Hersteller, Steuersätze, Tags und Medien lösen sie ebenfalls aus
  • Periodischer Vollabgleich als Sicherheitsnetz, stündlich, täglich oder wöchentlich
  • Warteschlangen-Anzeige über der Regelliste, die bei Stillstand zur Warnung wird
  • Vollabgleich und Warteschlange auch über die Konsole, auf Wunsch als Testlauf
Live testen

Im Demo-Shop ausprobieren

Statt Screenshots: Plugin direkt im Frontend und Backend eines echten Shopware-6-Shops sehen.

sw6plugindemo.bui-demo.com
Einrichtung & Pflege

Brauchst du Hilfe bei der Installation?

Wir installieren, konfigurieren und pflegen das Plugin auch dauerhaft, als Teil unserer Shop-Betreuung. Damit es bei Updates nicht plötzlich Schwierigkeiten gibt.

Plugin-Insider DACH

Plugin-Updates direkt ins Postfach

Neue Releases, Kompatibilitäts-Hinweise, „Stack des Monats". Eine Mail pro Monat.

Mit dem Klick stimmst du der Zusendung zu (Art. 6 Abs. 1 lit. a DSGVO). Jederzeit abbestellbar. Mehr in der Datenschutzerklärung.

Screenshots

dein-shop.de
Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen. Screenshot 1
Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen. Screenshot 2
Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen. Screenshot 3
Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen. Screenshot 4
Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen. Screenshot 5
Regelbasierte Eigenschaftsfilter: Produktfilter, die sich selbst pflegen. Screenshot 6
BuI Insights

Plugin-Updates & Praxistipps direkt ins Postfach

Release-News zu unseren Shopware-Plugins, Kompatibilitäts-Hinweise und Best Practices aus dem Plugin-Alltag. Ein Mal im Monat, jederzeit abbestellbar.

Mit dem Klick stimmst du zu, dass wir dir den Newsletter zusenden dürfen (Art. 6 Abs. 1 lit. a DSGVO). Mehr in der Datenschutzerklärung.