Zum Inhalt springen

Eigene Regelbedingungen

Das Plugin fügt drei eigene Regelbedingungen hinzu und akzeptiert eine kuratierte Teilmenge der Standard-Shopware-Bedingungen. Alles, was nicht auf dieser Seite ist, wird beim Auswerten einer Regel für die Layout-Auswahl stillschweigend übersprungen.

  • Typ-ID: p2labCmsAssignRulesIsHomepageRule
  • Klasse: Rule\IsHomepageRule
  • Scope: nur Kategorienseiten. Gibt auf Produkt- und Landing-Seiten-Scopes false zurück.

Wahr, wenn der Besucher auf der Stammnavigation des aktiven Verkaufskanals ist — d. h. categoryId === salesChannel.navigationCategoryId. Falsch auf jeder Unterkategorie, jeder Produktseite, jeder Landing-Seite.

Feld:

  • Ist Startseite — boolescher Schalter.

Häufiger Fallstrick: Kombination mit Verkaufskanal in einem UND-Container. Die Kombination passt nur auf der Startseite des Kanals. Siehe den Fallstrick im Mehrere-Verkaufskanäle-Rezept.

  • Typ-ID: p2labCmsAssignRulesInCategoryRule
  • Klasse: Rule\InCategoryRule
  • Scope: Produkt- und Kategorienseiten.

Wahr, wenn das Produkt (oder die betrachtete Kategorie) direkt einer der aufgelisteten Kategorien zugewiesen ist.

Felder:

  • Operatorist einer von / ist keiner von / ist leer.
  • Kategorien — Multi-Select.

Für ein Produkt läuft die Prüfung gegen product.categoryIds. Für eine Kategorienseite läuft sie gegen [categoryId]. Die Bedingung schaut nicht auf den Kategoriebaum — Nachkommen einer aufgelisteten Kategorie matchen nicht. Verwenden Sie die nächste Bedingung für baumbewusstes Matching.

Element in Kategorie mit Unterkategorien [P2Lab Layout Zuweiser]

Abschnitt betitelt „Element in Kategorie mit Unterkategorien [P2Lab Layout Zuweiser]“
  • Typ-ID: p2labCmsAssignRulesInCategoryWithChildrenRule
  • Klasse: Rule\InCategoryWithChildrenRule (erweitert die vorherige)
  • Scope: Produkt- und Kategorienseiten.

Wahr, wenn das Produkt (oder die betrachtete Kategorie) in einer der aufgelisteten Kategorien ODER in einem ihrer Nachkommen ist. Die Nachkommens-Prüfung erfolgt durch Nachschlagen des Shopware-Kategorien-path (der die Vorfahrenkette als |id1|id2|id3| speichert).

Felder: dieselben wie Element in Kategorie.

Kosten: ein zusätzlicher DB-Lookup pro Auswertung pro geprüfter Kategorie. Bevorzugen Sie Element in Kategorie, wenn Nachkommens-Matching nicht benötigt wird.

Die Liste ConditionNameEnum::CONDITIONS des Plugins erlaubt explizit die folgenden Standard-Shopware-Bedingungen:

  • VerkaufskanalsalesChannel
  • DatumsbereichdateRange
  • WochentagdayOfWeek
  • Sprachelanguage
  • ZeitbereichtimeRange
  • Währungcurrency
  • Immer gültigalwaysValid
  • Affiliate-Code, Rechnungsadresse Stadt / Land / PLZ / Bundesland / Straße, Kampagnen-Code, ist Firma, Alter, vom Admin angelegt, Geburtstag, E-Mail, Kundengruppe, ist aktiv, ist Newsletter-Empfänger, eingeloggt, Kundennummer, Anrede, Nachname, Custom Field, Standard-Zahlungsart, unterschiedliche Adressen, Tag, ist Gast, ist Neukunde, Anzahl der Bewertungen, Bestellanzahl, Lieferadresse Stadt / Land / PLZ / Bundesland / Straße, Tage seit erstem Login, Tage seit letztem Login, Tage seit letzter Bestellung, Bestellgesamtbetrag.

(Siehe Enum\ConditionNameEnum::CONDITIONS für die kanonische Liste.)

  • UND-ContainerandContainer
  • ODER-ContainerorContainer
  • Alle-Positionen-ContainerallLineItemsContainer (ersetzt durch das eigene MatchAllRule des Plugins — siehe Interna des Ersetzungsflusses)

Standard-Shopware-Bedingungen — nicht unterstützt

Abschnitt betitelt „Standard-Shopware-Bedingungen — nicht unterstützt“

Alles, was nicht in CONDITIONS oder CONTAINERS ist, wird stillschweigend übersprungen. Dazu gehören die meisten Warenkorb- / Line-Item- / Versand- / Zahlungs-Bedingungen:

  • Warenkorbsumme, Warenkorb-Versandkosten, Artikel im Warenkorb, Line Item beworben, Line Item mit Lieferdatum, Line Item erforderlich, Line Item Taxonomie, Line Item Promotion etc.
  • Versandart, Zahlungsart, Versandland (warenkorb-scoped-Variante) etc.

Diese sind absichtlich ausgeschlossen — sie zielen auf den Checkout-Flow, wo es einen tatsächlichen Warenkorb zu inspizieren gibt, nicht auf den Page-Load-Flow, in dem das Plugin läuft.

Das Layout-Zuweisungsmodal zeigt pro Regel ein Status-Badge, das angibt, ob alle, einige oder keine ihrer Bedingungen unterstützt werden. Siehe Layout-Zuweisungsmodal.

Das Plugin exposed keinen öffentlichen Extension-Point für neue Bedingungen — Sie würden sie genauso hinzufügen, wie Shopware es macht (eine Rule-Klasse plus die zugehörige Admin-Komponente registrieren) und dann die Typ-ID zu ConditionNameEnum::CONDITIONS hinzufügen, um sie in den Matcher aufzunehmen.