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 (Zusatzfelder) 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:
Ein
Custom Fieldbesitzt den Typsingle, wenn nur ein Wert in das Feld eingetragen werden kann.
EinCustom Fieldbesitzt den Typmulti, wenn mehrere Werte in das Feld eingetragen werden können.
| Element | Beschreibung |
|---|---|
field_type | Definiert den Typ des Custom-Fields. Unterstützte Typen: "single" oder "multi". |
operator | Vergleichsoperator zur Auswertung des Werts. Beispiel: ">" prüft, ob der Wert im Custom Field größer als der Vergleichswert ist z.B. Custom Field Wert > Vergleichswert. Unterstützt werden =, !=, <, >, <=, >=. |
comparison_value | Wert 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. |
Diese Elemente werden verwendet um ein ruleset zu erstellen. Dies ist eine Sammlung aus mehreren selbst definierten Regeln.
Beispielstruktur für ein Custom Field vom Typ single:
custom_field_technical_name:
field_type: "single"
ruleset:
beispiel_regel:
operator: ">"
comparison_value: "10"
boost: 5
beispiel_regel2:
operator: "="
comparison_value: "42"
boost: 2000Die Regel
beispiel_regelerhöht den Wert um5, wenn derCustom Field-Wert größer als10ist.
Die Regelbeispiel_regel2erhöht den Wert um2000falls derCustom Field-Wert genau42beträgt.
Bei den Custom Fields vom Typ multi wird auf eine andere Art verglichen:
| Element | Beschreibung |
|---|---|
match (none, any, all) | "none" bedeutet, dass die Regel greift, wenn kein Vergleichswert im Feld vorkommt. "any" greift, wenn mindestens ein Wert im Feld vorhanden ist und "all" wenn alle gefunden wurden. |
comparison_value | Liste von Werten, gegen die geprüft wird. Diese Liste muss IMMER innerhalb von [] angegeben werden. |
Beispiel für multi:
custom_field_technical_name:
field_type: "multi"
ruleset:
beispiel_regel:
match: "any"
comparison_value: ["test_option_1", "test_option_2"]
boost: 3
beispiel_regel2:
match: "none"
comparison_value: ["test_option_3"]
boost: 5Regelsatz
beispiel_regelerhöht den Score um3, wenn einer der Werte (test_option_1odertest_option_2) im Feld enthalten ist.
Regelsatzbeispiel_regel2erhöht den Score um5, wenn der Wert (test_option_3) nicht im Feld enthalten ist.
Ein komplettes YAML-Beispiel mit single und multi kombiniert:
rating_custom_field:
field_type: "single"
ruleset:
beispiel_regel:
operator: ">"
comparison_value: "3.89"
boost: "5"
custom_product_material_composition:
field_type: "single"
ruleset:
beispiel_regel:
operator: "="
comparison_value: "100% Cotton"
boost: "12"
tids_product_customfields_testing:
field_type: "multi"
ruleset:
beispiel_regel:
match: "none"
comparison_value: ["test_option_3", "test_option_4"]
boost: "3"Anwendung
Beispiel:
- Produkte mit aktuellen Verkäufen sollen geboostet werden.
- Produkte im Sale sollen im Score höher bewertet werden.
- Ein bestimmtes
Custom Fieldsoll je nach inhalt 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.