Shopware Amministrazione e Produttività

Dynamic Product Groups Sottocategorie Shopware 6 — DfStreamCategoryTree: filtro categoria ricorsivo che include le categorie figlie

Un filtro categoria che finalmente scende nell'albero, senza reinserire ogni sottocategoria a mano.

Create un gruppo dinamico di prodotti sulla categoria Uomo, salvate, e lo stream restituisce 12 prodotti invece dei 138 attesi. Nulla è rotto: il filtro Categories di Shopware si basa sulle assegnazioni dirette, e i vostri prodotti si trovano in Sneaker, Stivali o Giacche, non nella categoria padre. L'unica via d'uscita nativa consiste nel selezionare venti sottocategorie una per una e ricominciare a ogni evoluzione del catalogo. DfStreamCategoryTree espone il campo product.categoryTree nel costruttore di condizioni: quel campo contiene il percorso completo degli antenati di ogni prodotto, quindi selezionare la categoria padre cattura l'intero sottoalbero, comprese le categorie create in seguito.

A colpo d'occhio
  • Nuovo campo Category (including subcategories) nei Dynamic Product Groups
  • Filtrare una categoria padre include automaticamente tutti i prodotti delle sottocategorie, a qualsiasi profondità
  • Si basa sul campo nativo product.categoryTree del DAL Shopware, senza query aggiuntive e senza impatto sulle prestazioni di indicizzazione
  • Zero configurazione: installare, attivare, e il campo compare nel selettore delle condizioni
  • Interfaccia di amministrazione tradotta in inglese, tedesco e francese
Shopware 6.7 PHP 8.2+ Zero configurazione 3 lingue di amministrazione Codice sorgente incluso
  • Rimborso 30 giorni
  • 12 mesi di aggiornamenti
  • Supporto 24h
www.datafirefly.com/it/
Costruttore di condizioni di un gruppo dinamico di prodotti Shopware 6 con il campo Categoria incluse sottocategorie e il sottoalbero di categorie recuperato
v1.0.0 · aggiornato 2026-08-08
Cosa fa

La versione breve.

01

Filtro categoria ricorsivo

Selezionate una categoria padre con l'operatore Is equal to any of: tutti i prodotti collocati nei suoi figli, nipoti e livelli inferiori entrano nel gruppo dinamico.

02

Basato su un campo nativo del DAL

Il plugin non aggiunge tabelle, indici o query. Si limita a esporre product.categoryTree, un campo che Shopware mantiene già per ogni prodotto tramite il CategoryIndexer.

03

Segue l'evoluzione del catalogo

Una sottocategoria creata dopo la configurazione del gruppo viene considerata immediatamente. Non serve più riaprire ogni stream dopo una riorganizzazione dell'albero.

04

Anche le varianti seguono

Il campo categoryTree tiene conto dell'ereditarietà padre-figlio dei prodotti variabili: le varianti di un prodotto collocato in una sottocategoria compaiono correttamente nel gruppo.

05

Convive con il filtro nativo

Il campo Categories originale resta disponibile. Scegliete caso per caso tra assegnazione diretta stretta e sottoalbero completo, nello stesso costruttore di condizioni e sullo stesso stream.

06

Installazione senza effetti collaterali

Il plugin si limita a una voce nella lista di autorizzazione del servizio productStreamConditionService dell'amministrazione. Nessun override di servizio, nessuna migrazione in database, disinstallazione neutra.

La versione lunga

Tutto quello che vorresti sapere prima di installare.

Uno sguardo dettagliato su come funziona Dynamic Product Groups Sottocategorie Shopware 6 — DfStreamCategoryTree: filtro categoria ricorsivo che include le categorie figlie, perché l'abbiamo progettato così, e il ragionamento dietro le funzionalità qui sopra.

§ 01

Perché il filtro categoria nativo non scende nell'albero

Il costruttore di condizioni dei gruppi dinamici espone un campo Categories che interroga l'associazione product.categoriesRo. Tale associazione elenca soltanto le categorie a cui un prodotto è esplicitamente collegato nella sua scheda Categories. Un catalogo ben organizzato colloca i prodotti nelle categorie foglia: un modello di sneaker sta in Uomo, Calzature, Sneaker, non in Uomo. La conseguenza è meccanica: un filtro su Uomo restituisce solo i rari prodotti assegnati direttamente a quel livello. Non è un bug, è il comportamento documentato dell'associazione, ma sorprende sistematicamente al momento di creare uno stream di merchandising su un'intera famiglia.

§ 02

Cosa fa product.categoryTree

Shopware mantiene già su ogni prodotto un campo JSON chiamato categoryTree che contiene l'identificativo di tutte le categorie del percorso, dalla radice fino alla categoria di assegnazione. Il CategoryIndexer lo ricalcola a ogni spostamento di categoria e a ogni modifica di assegnazione prodotto. La storefront lo utilizza internamente per i listing di categoria. Un filtro equalsAny su questo campo con l'identificativo di una categoria padre restituisce quindi tutti i prodotti il cui percorso passa attraverso di essa, a qualsiasi profondità. Il campo esiste e funziona nel DAL, ma l'amministrazione non lo propone nel selettore del costruttore di condizioni: non figura nella lista di autorizzazione del servizio productStreamConditionService.

§ 03

Il ruolo esatto del plugin

DfStreamCategoryTree aggiunge una riga a questa lista di autorizzazione e fornisce le etichette tradotte corrispondenti. Tutto qui, ed è voluto. Non introduce alcun decoratore di servizio, alcun listener sugli eventi prodotto, alcuna tabella, alcuna migrazione. Il filtro costruito nell'interfaccia è un filtro DAL perfettamente standard, valutato dallo stesso motore delle altre condizioni dello stream. Significa anche che uno stream configurato con questo plugin resta leggibile e utilizzabile anche se il plugin viene disattivato in seguito: il filtro continua a funzionare a livello DAL, scompare solo la visualizzazione del campo nell'interfaccia.

§ 04

Casi d'uso tipici

Una pagina di categoria di navigazione alimentata da un gruppo dinamico su un'intera famiglia di prodotti, senza elencare le sottocategorie a mano. Una regola di promozione che applica uno sconto a un intero reparto, sottoreparti compresi. Un blocco di cross-selling automatico costruito sul reparto di appartenenza del prodotto consultato. Un feed di export o un blocco Shopping Experience alimentato da uno stream che deve riflettere un intero ramo del catalogo. In tutti questi casi la versione nativa impone di riaprire la configurazione a ogni nuova sottocategoria. La versione categoryTree non richiede alcuna manutenzione.

§ 05

Installazione e ricompilazione dell'amministrazione

Il plugin si installa caricando uno ZIP in Extensions, My extensions, oppure depositando la cartella in custom barra plugins ed eseguendo poi plugin:refresh e plugin:install --activate. Poiché modifica il comportamento dell'amministrazione, dopo l'installazione serve una ricompilazione del bundle admin tramite il comando build-administration oppure bin barra console bundle:dump seguito dalla compilazione. In un ambiente di produzione gestito da una pipeline di deploy, tale ricompilazione fa in genere già parte dei passaggi standard. Una volta ricompilata l'amministrazione, il campo compare subito nel selettore delle condizioni, senza configurazione plugin da compilare.

§ 06

Cosa il plugin non fa

Non sostituisce il filtro Categories nativo, si affianca a esso. Non modifica l'algoritmo di indicizzazione delle categorie né il calcolo di categoryTree, consuma ciò che Shopware già produce. Non si applica ai filtri di listing della storefront né alla navigazione a faccette, che dipendono da un altro meccanismo. Non funziona su Shopware Cloud, poiché la versione SaaS ospitata da Shopware non consente l'installazione di plugin server. Infine non pretende di accelerare la valutazione degli stream: essendo il campo nativo e indicizzato, il costo di valutazione è quello di un filtro standard, né più né meno.