Shopware Administracja i produktywność

Dynamic Product Groups Podkategorie Shopware 6 — DfStreamCategoryTree: rekurencyjny filtr kategorii obejmujący kategorie podrzędne

Filtr kategorii, który wreszcie schodzi w dół drzewa, bez ręcznego wpisywania każdej podkategorii.

Tworzysz dynamiczną grupę produktów na kategorii Mężczyźni, zapisujesz, a strumień zwraca 12 produktów zamiast oczekiwanych 138. Nic nie jest zepsute: filtr Categories w Shopware opiera się na przypisaniach bezpośrednich, a twoje produkty leżą w Sneakersach, Butach czy Kurtkach, nie w kategorii nadrzędnej. Jedyne natywne wyjście to zaznaczanie dwudziestu podkategorii po kolei i powtarzanie tego przy każdej zmianie katalogu. DfStreamCategoryTree udostępnia pole product.categoryTree w kreatorze warunków: pole to zawiera pełną ścieżkę przodków każdego produktu, więc wybór kategorii nadrzędnej obejmuje całe poddrzewo, łącznie z kategoriami utworzonymi później.

W skrócie
  • Nowe pole Category (including subcategories) w Dynamic Product Groups
  • Filtrowanie kategorii nadrzędnej automatycznie obejmuje wszystkie produkty z podkategorii, na dowolnej głębokości
  • Opiera się na natywnym polu product.categoryTree z DAL Shopware, bez dodatkowych zapytań i bez wpływu na wydajność indeksowania
  • Zero konfiguracji: zainstaluj, aktywuj, a pole pojawia się w selektorze warunków
  • Interfejs administracji przetłumaczony na angielski, niemiecki i francuski
Shopware 6.7 PHP 8.2+ Zero konfiguracji 3 języki administracji Kod źródłowy w zestawie
  • Zwrot w 30 dni
  • 12 miesięcy aktualizacji
  • Wsparcie 24 h
www.datafirefly.com/pl/
Kreator warunków dynamicznej grupy produktów Shopware 6 z polem Kategoria wraz z podkategoriami i objętym poddrzewem kategorii
v1.0.0 · zaktualizowano 2026-08-08
Co robi

W skrócie.

01

Rekurencyjny filtr kategorii

Wybierz kategorię nadrzędną z operatorem Is equal to any of: wszystkie produkty umieszczone w jej dzieciach, wnukach i niższych poziomach trafiają do grupy dynamicznej.

02

Oparta na natywnym polu DAL

Wtyczka nie dodaje tabeli, indeksu ani zapytania. Ogranicza się do udostępnienia product.categoryTree, pola, które Shopware już utrzymuje dla każdego produktu przez CategoryIndexer.

03

Nadąża za zmianami katalogu

Podkategoria utworzona po skonfigurowaniu grupy jest uwzględniana natychmiast. Nie trzeba już otwierać każdego strumienia po reorganizacji drzewa.

04

Warianty też nadążają

Pole categoryTree uwzględnia dziedziczenie rodzic-dziecko produktów wariantowych: warianty produktu umieszczonego w podkategorii pojawiają się w grupie poprawnie.

05

Współistnieje z filtrem natywnym

Oryginalne pole Categories pozostaje dostępne. Wybierasz przypadek po przypadku między ścisłym przypisaniem bezpośrednim a pełnym poddrzewem, w tym samym kreatorze warunków i na tym samym strumieniu.

06

Instalacja bez skutków ubocznych

Wtyczka ogranicza się do jednego wpisu na liście dozwolonych pól usługi productStreamConditionService w administracji. Bez nadpisywania usług, bez migracji bazy, neutralna deinstalacja.

Wersja pełna

Wszystko, co warto wiedzieć, zanim zainstalujesz.

Szczegółowe spojrzenie na to, jak działa Dynamic Product Groups Podkategorie Shopware 6 — DfStreamCategoryTree: rekurencyjny filtr kategorii obejmujący kategorie podrzędne, dlaczego zbudowaliśmy go w ten sposób i jaka myśl stoi za powyższymi funkcjami.

§ 01

Dlaczego natywny filtr kategorii nie schodzi w dół drzewa

Kreator warunków grup dynamicznych udostępnia pole Categories, które odpytuje asocjację product.categoriesRo. Ta asocjacja wymienia wyłącznie kategorie, do których produkt jest jawnie przypisany w swojej zakładce Categories. Poprawnie zorganizowany katalog umieszcza produkty w kategoriach liściach: model sneakersów leży w Mężczyźni, Obuwie, Sneakersy, a nie w Mężczyźni. Konsekwencja jest mechaniczna: filtr na Mężczyźni zwraca tylko nieliczne produkty przypisane bezpośrednio na tym poziomie. To nie błąd, lecz udokumentowane zachowanie asocjacji, ale zaskakuje regularnie przy tworzeniu strumienia merchandisingowego na całą rodzinę produktów.

§ 02

Co robi product.categoryTree

Shopware utrzymuje już dla każdego produktu pole JSON o nazwie categoryTree, zawierające identyfikator wszystkich kategorii ścieżki, od korzenia po kategorię przypisania. CategoryIndexer przelicza je przy każdym przeniesieniu kategorii i każdej zmianie przypisania produktu. Storefront wykorzystuje je wewnętrznie do listingów kategorii. Filtr equalsAny na tym polu z identyfikatorem kategorii nadrzędnej zwraca więc wszystkie produkty, których ścieżka przez nią przebiega, niezależnie od głębokości. Pole istnieje i działa w DAL, ale administracja nie oferuje go w selektorze kreatora warunków: nie figuruje na liście dozwolonych pól usługi productStreamConditionService.

§ 03

Dokładna rola wtyczki

DfStreamCategoryTree dodaje jedną linię do tej listy i dostarcza odpowiadające przetłumaczone etykiety. Tyle, i jest to zamierzone. Nie wprowadza żadnego dekoratora usługi, żadnego nasłuchiwacza zdarzeń produktu, żadnej tabeli, żadnej migracji. Filtr zbudowany w interfejsie jest całkowicie standardowym filtrem DAL, ocenianym przez ten sam silnik co pozostałe warunki strumienia. Oznacza to również, że strumień skonfigurowany z tą wtyczką pozostaje czytelny i użyteczny nawet po jej późniejszej dezaktywacji: filtr działa dalej na poziomie DAL, znika jedynie wyświetlanie pola w interfejsie.

§ 04

Typowe zastosowania

Strona kategorii nawigacyjnej zasilana grupą dynamiczną obejmującą całą rodzinę produktów, bez ręcznego wymieniania podkategorii. Reguła promocji stosująca rabat na cały dział wraz z poddziałami. Automatyczny blok cross-sellingu zbudowany na dziale, do którego należy oglądany produkt. Feed eksportowy lub blok Shopping Experience zasilany strumieniem, który ma odzwierciedlać całą gałąź katalogu. We wszystkich tych przypadkach wersja natywna zmusza do ponownego otwierania konfiguracji przy każdej nowej podkategorii. Wersja categoryTree nie wymaga żadnej pracy utrzymaniowej.

§ 05

Instalacja i przebudowa administracji

Wtyczkę instaluje się przez wgranie ZIP w Extensions, My extensions, albo przez umieszczenie katalogu w custom ukośnik plugins i wykonanie plugin:refresh oraz plugin:install --activate. Ponieważ zmienia zachowanie administracji, po instalacji konieczna jest jednorazowa przebudowa bundla admin poleceniem build-administration lub bin ukośnik console bundle:dump, a następnie kompilacja. W środowisku produkcyjnym zarządzanym przez pipeline wdrożeniowy ta przebudowa zwykle jest już częścią standardowych kroków. Po przebudowaniu administracji pole pojawia się natychmiast w selektorze warunków, bez żadnej konfiguracji wtyczki do uzupełnienia.

§ 06

Czego wtyczka nie robi

Nie zastępuje natywnego filtra Categories, działa obok niego. Nie zmienia algorytmu indeksowania kategorii ani obliczania categoryTree, korzysta z tego, co Shopware już wytwarza. Nie dotyczy filtrów listingu w storefront ani nawigacji fasetowej, które opierają się na innym mechanizmie. Nie działa na Shopware Cloud, ponieważ wersja SaaS hostowana przez Shopware nie pozwala instalować wtyczek serwerowych. Nie rości sobie też pretensji do przyspieszania oceny strumieni: pole jest natywne i zindeksowane, więc koszt oceny odpowiada standardowemu filtrowi, ani więcej, ani mniej.