TID Relevanz-Sortierung
Einführung
Das Relevanz-Sortierung Plugin fügt den Produktlisten in Shopware eine neue Sortieroption hinzu: Sortierung nach Relevanz.
Diese Funktion arbeitet wie jede andere eingebaute Sortierung (z. B. Topseller, Niedrigster Preis), nutzt jedoch einen konfigurierbaren Relevanz-Score.
Funktionsweise
Der Relevanz-Score für jedes Produkt wird durch einen integrierten Algorithmus berechnet.
Durch den Administrator kann beeinflusst werden, wie dieser Score zustande kommt:
- Gewichtung verschiedener Score-Faktoren anpassen
- Durch Boosts kann der Score für einzelne Produkte künstlich erhöht werden
- Eigene Regelsätze über Produkt-
custom_fieldsdefinieren
Nach der Konfiguration steht den Kunden die Option „Relevanz“ als Sortiermethode in jeder Produktliste zur Verfügung.
Konfiguration
Gewichtungsanpassungen
Dies ist die Formel, die zur Berechnung des Relevanz-Score für jedes Produkt genutzt wird:
Score =
(Aktuelle Verkäufe × 4) +
(Marge ÷ 10) +
Produktalter +
Gesamte Verkäufe +
(Saisonale Verkäufe × 4) +
Lagerbestand ±
Custom-Field Boost ±
Rabattbonus ±
Manueller BoostDurch die Zahlenfelder in der Plugin-Konfiguration unter dem Tab „Anpassungen“ kann gesteuert werden, wie der Algorithmus die Relevanz-Score-Faktoren gewichtet.
| Einstellung | Beschreibung |
|---|---|
Aktuelle Verkäufe | Gewichtung für Produkte, die in dem konfigurierten Zeitraum verkauft wurden. |
Verkaufsmarge | Gewichtung für die Gewinnmarge verkaufter Produkte. |
Rabattbonus | Boost für aktuell reduzierte Produkte. |
Produktalter | Gewichtung für die Dauer, wie lange ein Produkt bereits verfügbar ist. |
Gesamte Verkäufe | Gewichtung für die Gesamtzahl der Verkäufe. |
Saisonale Verkäufe | Gewichtung für Produkte mit hohen Verkäufen in derselben Saison vergangener Jahre. |
Lagerbestand | Gewichtung für den verfügbaren Lagerbestand. |
Custom-Boost-Regeln (YAML)
Komplexe Boost-Logik kann im Texteditor-Feld der Plugin-Konfiguration in YAML-Syntax definiert werden.
Damit lassen sich individuelle Regelsätze über Produkt-custom_fields umsetzen.
Warning
Im Feld Custom Boost Regeln muss immer im Code-Editor gearbeitet werden.
Der Code-Editor wird durch Klick auf das </>-Symbol in der rechten oberen Ecke aktiviert. Danach erscheint die kleine Zeilennummer 1.
Nur so lässt sich YAML ohne Formatierungsprobleme eingeben.
Nach dem Speichern verlässt der Editor automatisch die Code-Ansicht und zeigt das YAML eventuell seltsam formatiert an, doch es funktioniert weiterhin korrekt.
Zum Bearbeiten einfach erneut den Code-Editor mit dem </>-Symbol aktivieren.
Der YAML-Aufbau richtet sich danach, ob ein custom_field den Typ single oder multi hat:
| Element | Beschreibung |
|---|---|
field_type | Definiert den Typ des Custom-Fields. "single" bedeutet, dass nur ein Wert enthalten ist, "multi" erlaubt mehrere Werte. |
operator | Vergleichsoperator zur Auswertung des Werts. Beispiel: ">" prüft, ob der Wert größer als der Vergleichswert ist. Unterstützt werden =, !=, <, >, <=, >=. |
comparison_value | Schwellenwert zum Vergleich. Nur wenn die Bedingung erfüllt ist, wird der Boost angewendet. |
boost | Wert, der zum Relevanz-Score addiert wird, wenn die Bedingung erfüllt ist. |
Beispiel für single:
custom_field_technical_name:
field_type: "single"
operator: ">"
comparison_value: "10"
boost: "5"Dieser Regelsatz erhöht den Score um 5, wenn der custom_field-Wert größer als 10 ist.
Bei multi-Feldern unterscheidet sich die Struktur leicht. Statt comparison_value gibt es rules:
| Element | Beschreibung |
|---|---|
match | "none" bedeutet, dass die Regel greift, wenn kein Vergleichswert im Feld vorkommt. "any" greift, wenn mindestens ein Wert passt, "all" wenn alle passen. |
operator (in) | Prüft, ob der Feldwert in der Liste der Vergleichswerte enthalten ist. |
operator (not_in) | Prüft, ob der Feldwert nicht in der Liste enthalten ist. |
comparison_value | Liste von Werten, gegen die geprüft wird (immer als Array angeben, auch bei nur einem Wert). |
Beispiel für multi:
custom_field_technical_name:
field_type: "multi"
boost: "3"
rules:
match: "any"
operator: "in"
comparison_value: ["test_option_3", "test_option_4"]Dieser Regelsatz erhöht den Score um 3, wenn einer der Werte (test_option_3 oder test_option_4) im Feld enthalten ist.
Ein komplettes YAML-Beispiel mit single und multi kombiniert:
rating_custom_field:
field_type: "single"
operator: ">"
comparison_value: "3.89"
boost: "5"
custom_product_material_composition:
field_type: "single"
operator: "="
comparison_value: "100% Cotton"
boost: "12"
tids_product_customfields_testing:
field_type: "multi"
boost: "3"
rules:
match: "none"
operator: "in"
comparison_value: ["test_option_3", "test_option_4"]Anwendung
Beispiel:
- Produkte mit aktuellen Verkäufen sollen geboostet werden.
- Produkte im Sale sollen im Score höher bewertet werden.
- Ein bestimmtes
custom_fieldsoll zusätzlich einen Boost erhalten.
Dafür wird:
- Ein hoher Wert für
Aktuelle VerkäufeundRabattbonusin der Konfiguration gesetzt - Eine Custom-Rule im YAML definiert, die das gewünschte Feld boostet
Wird die Sortierung „Relevanz“ ausgewählt, erscheinen die passenden Produkte höher in der Liste.