Reguły i warunki
Plugin ponownie wykorzystuje Rule Builder Shopware do dopasowania. Nie ma osobnego UI — każda reguła istniejąca w Settings → Rules jest kandydatem. Przypinasz reguły do layoutu w Shopping Experiences → otwórz layout → Layout assignment → zakładka Rules, a w czasie requesta plugin ewaluuje je względem bieżącej strony.
Co jest ewaluowane
Dział zatytułowany „Co jest ewaluowane”Ewaluowane są tylko wspierane warunki. Plugin ma kuratorowaną listę — Shopware zawiera też wiele warunków zaprojektowanych dla kontekstu koszyka / zamówienia (suma koszyka, pozycje w koszyku, koszt dostawy), które nie mają sensu przy wyborze layoutu dla strony, która jeszcze nie została zbudowana. Te są po cichu ignorowane. Modal przypisania layoutu pokazuje badge statusu per reguła:
- All conditions defined in this rule are supported ✓ — reguła ewaluuje dokładnie tak, jak ją napisałeś.
- Not all conditions defined in this rule are supported ⚠ — wspierane warunki są ewaluowane, niewspierane pomijane.
- This rule does not contain any supported conditions and will be ignored ✗ — reguła nie może pasować. Plugin nie wybierze tego layoutu.
Wspierane warunki
Dział zatytułowany „Wspierane warunki”Ogólne (Shopware natywne)
Dział zatytułowany „Ogólne (Shopware natywne)”- Sales Channel — najczęściej używany warunek w tym pluginie. Wybiera aktywny kanał sprzedaży.
- Date range — ogranicza layout do okna
[od, do]. Świetne dla sezonowych stron głównych. - Day of week — layout poniedziałkowej promocji, weekendowa strona główna itd.
- Time range — layouty “happy hour”.
- Language — wybór po języku storefront.
- Currency — wybór po walucie storefront (często proxy dla kraju).
- Always valid — placeholder, przydatny przy prototypowaniu.
Własne (dodane przez ten plugin)
Dział zatytułowany „Własne (dodane przez ten plugin)”- Is homepage [P2Lab Layouts Assigner] — prawda tylko gdy request rozwiązuje się do navigation root kanału. Zobacz Własne warunki reguł.
- Item in category [P2Lab Layouts Assigner] — prawda gdy oglądany produkt lub kategoria jest jedną z wymienionych kategorii (lub się w nich znajduje).
- Item in category with children [P2Lab Layouts Assigner] — to samo, ale matchuje też kategorie potomne.
Plugin wspiera większość warunków związanych z klientem: grupa klientów, stan zalogowania, pola adresowe, tagi, wiek, custom fields, liczba zamówień, dni od ostatniego zamówienia, i więcej. Zobacz Własne warunki reguł dla pełnej listy.
Te warunki sensownie matchują tylko gdy klient jest zalogowany. Dla anonimowego odwiedzającego sprawdzana wartość jest zwykle null, a warunek zwraca false (lub true, w zależności od operatora).
Kontenery
Dział zatytułowany „Kontenery”Standardowe kontenery Shopware: AND container, OR container, All line items container. AND-kontenery wymagają by wszystkie warunki dzieci pasowały. OR-kontenery wymagają by przynajmniej jeden pasował. All line items container jest specjalny — zobacz Własne warunki reguł dla zastrzeżenia.
Jak reguły łączą się na layoucie
Dział zatytułowany „Jak reguły łączą się na layoucie”Gdy przypinasz wiele reguł do layoutu, są one AND-owane: layout jest kandydatem tylko gdy wszystkie jego reguły pasują. Wewnątrz pojedynczej reguły obowiązuje standardowa logika kontenerów (AND-kontenery AND-owane, OR-kontenery OR-owane).
Typowe wzorce:
- Jedna reguła per layout — dla czytelności trzymaj jedną regułę per layout. Dodawaj wiele warunków do tej reguły przez kontenery AND/OR.
- Wiele reguł per layout — przydatne gdy chcesz AND-ować dwie istniejące reguły używane gdzie indziej (np. “Sales Channel B” AND “B2B customer group”). Nie trzeba klonować warunków.
Priorytet i kolejność
Dział zatytułowany „Priorytet i kolejność”Gdy więcej niż jeden layout może pasować dla jednego requesta, plugin wybiera pierwsze trafienie przy przechodzeniu layoutów uporządkowanych po rule.priority (najniższy pierwszy). Ustaw priorytet swoich reguł w Settings → Rules → Edit rule → Priority jeśli potrzebujesz rozstrzygnięcia remisu.
Matcher przechodzi layouty w stronach po 100 i zatrzymuje się na pierwszym trafieniu — zobacz Wydajność dla twardego limitu liczby kandydatów ewaluowanych na request.
Częste pułapki
Dział zatytułowany „Częste pułapki”- Łączenie
Is homepagezSales Channelw kontenerze AND. To pasuje tylko na stronie głównej kanału — listingi i inne strony kategorii nie pasują. Podziel na dwie reguły lub usuńIs homepage. Zobacz pułapkę w przepisie multi-sales-channel. - Zapomnienie przypisać bazowy layout do kategorii. Plugin zastępuje bazę — nie tworzy jej. Zobacz Jak to działa.
- Puste Replacement types dla odpowiedniego rodzaju strony. Plugin w ogóle nie szuka alternatyw. Zobacz Typy zastępowania.
- Reguła z samym
Always valid— tak, pasuje wszędzie. Zastąpi każdą stronę odpowiedniego typu. Użyj scope’owania sales channel, by ją ograniczyć.
Powiązane
Dział zatytułowany „Powiązane”- Własne warunki reguł — pełna lista z zastrzeżeniami.
- Modal przypisania layoutu — UI, które wiąże reguły z layoutami.
- Przepis multi-sales-channel — kanoniczna konfiguracja Sales Channel + reguła.
- Zaplanowane / sezonowe layouty — przykłady z Date range.