DataFirefly Fix Product Category: collegare i prodotti alle loro categorie padre
Installazione, simulazione e correzione in blocco, modalità automatica, esclusioni e risoluzione dei problemi.
Installazione
Installate il modulo da Moduli > Gestione moduli > Carica un modulo inviando il file ZIP, oppure copiate la cartella dffixproductcategory nella directory /modules/ del negozio e cliccate su Installa.
L’installazione aggiunge la scheda Correzione categorie prodotto nel menù Catalogo e registra gli hook della modalità automatica. Non viene creata alcuna tabella: il modulo scrive solo nella tabella nativa category_product.
La correzione in blocco aggiunge associazioni su tutto il catalogo. Fate un backup della tabella category_product prima della prima correzione, per poter tornare indietro se il risultato non corrisponde alla vostra organizzazione.
Funzionamento
Per ogni categoria di un prodotto, il modulo risale l’albero fino alla cima e aggiunge le categorie padre a cui il prodotto non è ancora associato. Vengono considerate tutte le categorie del prodotto, non solo la categoria predefinita.
Esempio: un prodotto associato solo a Scarpe > Running > Trail viene aggiunto a Running e a Scarpe. La categoria Root non viene mai aggiunta, la categoria Home solo se l’opzione corrispondente è attiva.
- Nessuna associazione esistente viene eliminata.
- La categoria predefinita del prodotto non viene mai modificata: breadcrumb e URL del prodotto restano identici.
- Il prodotto viene messo in ultima posizione in ogni categoria aggiunta, preservando l’ordinamento manuale.
- L’albero viene letto a partire dal padre di ogni categoria, quindi il risultato resta corretto anche se l’albero annidato di PrestaShop non è stato rigenerato.
Correzione in blocco
Aprite Catalogo > Correzione categorie prodotto. Il pannello Correzione in blocco elabora tutto il catalogo a lotti, con una barra di avanzamento.
Simula
Cliccate su Simula. Non viene scritto nulla. I contatori indicano il numero di prodotti nel perimetro, i prodotti da correggere e le associazioni mancanti. La tabella di anteprima elenca i primi 100 prodotti interessati con le categorie che riceveranno.
Correggi il catalogo
Cliccate su Correggi il catalogo e confermate. I lotti proseguono fino alla fine del catalogo e il contatore Associazioni aggiunte mostra il risultato. Potete rilanciare la correzione in qualsiasi momento: i prodotti già corretti non vengono modificati.
Solo prodotti attivi
Spuntate questa casella per limitare simulazione e correzione ai prodotti attivi del negozio corrente. Per impostazione predefinita vengono elaborati tutti i prodotti, anche quelli disattivati, così saranno classificati correttamente il giorno in cui li riattiverete.
Impostazioni
Includi la categoria Home
Disattivata per impostazione predefinita. Una volta attivata, la categoria Home viene aggiunta come qualsiasi altro padre. In multinegozio ogni negozio ha la propria categoria Home e l’impostazione si applica a ciascuna.
Modalità automatica al salvataggio del prodotto
Attivata per impostazione predefinita. Ogni prodotto creato o modificato viene collegato alle sue categorie padre. L’elaborazione avviene alla fine della richiesta, dopo il salvataggio delle categorie del prodotto, e copre la scheda prodotto di PrestaShop 8 e 9, l’importazione CSV e il webservice.
Modalità automatica allo spostamento di una categoria
Attivata per impostazione predefinita. Quando cambiate il padre di una categoria, tutti i prodotti del suo ramo vengono collegati ai nuovi padri. Modificare il nome o la descrizione non attiva nulla. I vecchi padri restano associati ai prodotti: rimuoveteli a mano se necessario.
Categorie escluse
Selezionate le categorie che non devono mai essere aggiunte come padre, ad esempio una categoria vetrina Saldi o Novità. Il campo filtro trova una categoria per nome e Ctrl (Cmd su Mac) permette di selezionarne più di una. Una categoria esclusa viene saltata, ma i suoi padri continuano a essere aggiunti.
Dimensione del lotto
Numero di prodotti elaborati per richiesta durante la correzione in blocco, da 20 a 2000. Il valore predefinito, 200, va bene per la maggior parte degli hosting. Abbassatelo se una richiesta supera il tempo massimo di esecuzione del server.
Navigazione a faccette
Dopo ogni aggiunta di associazioni, il modulo svuota la cache dei blocchi filtro di ps_facetedsearch, così i filtri delle categorie padre tengono conto dei nuovi prodotti. Poiché le associazioni esistono nel database, l’opzione per mostrare i prodotti delle sottocategorie nel modulo di navigazione a faccette non serve.
Buone pratiche
- Lanciate una simulazione prima della prima correzione e scorrete l’anteprima per validare il risultato.
- Impostate le esclusioni prima della correzione in blocco, non dopo: il modulo non rimuove mai un’associazione già creata.
- Dopo un’importazione grande, rilanciate una correzione in blocco per verificare che nessun prodotto sia stato tralasciato.
- Svuotate la cache del negozio se un elenco non mostra subito i nuovi prodotti.
Risoluzione dei problemi
La modalità automatica non si attiva per alcuni dipendenti
PrestaShop salta gli hook di un modulo quando il profilo del dipendente connesso non ha il permesso Visualizza su quel modulo (Parametri avanzati > Team > Permessi, sezione Moduli). Concedete questo permesso ai profili che modificano il catalogo, oppure lanciate una correzione in blocco dopo le loro modifiche.
Una categoria tolta a un prodotto ricompare al salvataggio
È il comportamento previsto della modalità automatica: ogni categoria padre di una categoria del prodotto viene aggiunta di nuovo. Aggiungete quella categoria alle esclusioni, oppure togliete dal prodotto anche la sottocategoria corrispondente.
La correzione in blocco si interrompe con un errore
Riducete la dimensione del lotto e rilanciate: i prodotti già elaborati vengono saltati al passaggio successivo. Gli errori della modalità automatica sono registrati in Parametri avanzati > Log e non bloccano mai il salvataggio del prodotto.
Compatibilità
- PrestaShop da 8.0 a 9.x, lo stesso ZIP copre entrambi i rami.
- Multinegozio e multilingua.
- Architettura ModuleAdminController, senza dipendenze Composer.
- Interfaccia disponibile in francese, inglese, spagnolo, tedesco, italiano, olandese, polacco e portoghese.