DataFirefly Catalog Merge: unire attributi e caratteristiche duplicati
Installazione, impostazioni, unione dei valori di attributi e caratteristiche duplicati, ordine di visualizzazione e risoluzione dei problemi.
<h2>Installazione</h2>
<p>Installa il modulo da <strong>Moduli > Gestore moduli > Carica un modulo</strong> inviando il file ZIP, oppure copia la cartella <code>dfcatalogmerge</code> nella directory <code>/modules/</code> del tuo negozio e clicca su Installa.</p>
<p>All’installazione il modulo crea le sue due tabelle (posizioni dei valori di caratteristiche e cronologia delle unioni), registra l’hook <code>filterProductContent</code> e aggiunge una scheda <strong>Unione catalogo</strong> nel menu Catalogo.</p>
<div class=”df-callout warn”><p>Questo modulo modifica in modo definitivo i dati del catalogo. Prima della tua prima campagna di pulizia, esegui un backup del database. Le unioni non sono reversibili.</p></div>
<h2>Impostazioni del modulo</h2>
<p>Le impostazioni si trovano nella pagina di configurazione del modulo. Quattro opzioni, tutte attive per impostazione predefinita.</p>
<h3>Forzare l’ordine nelle schede prodotto</h3>
<p>Applica le posizioni definite ai valori delle caratteristiche mostrati nella scheda prodotto. Questa opzione è indispensabile su PrestaShop 8, il cui core non ordina i valori delle caratteristiche. Su PrestaShop 9 il modulo alimenta anche la colonna di posizione nativa e l’opzione garantisce lo stesso risultato qualunque sia l’impostazione <code>PS_FEATURE_VALUES_ORDER</code> del negozio.</p>
<h3>Unire le combinazioni duplicate</h3>
<p>Quando due combinazioni dello stesso prodotto diventano identiche dopo un’unione, il modulo le riunisce automaticamente. Disattiva questa opzione solo se preferisci gestire quei casi a mano, tenendo presente che PrestaShop gestisce male due combinazioni con esattamente gli stessi attributi.</p>
<h3>Aggiornare le tabelle di terze parti</h3>
<p>Il modulo cerca nel database tutte le tabelle con una colonna <code>id_attribute</code> o <code>id_feature_value</code> al di fuori delle tabelle del core, in particolare l’indice della ricerca a faccette, e vi ripunta o elimina le righe coinvolte. Senza questa opzione dopo un’unione possono restare filtri fantasma.</p>
<h3>Conservare una cronologia delle unioni</h3>
<p>Registra ogni unione applicata: valore di origine, valore di destinazione, numero di righe modificate, dipendente e data. Consultabile nella scheda Cronologia.</p>
<h2>Unire valori di attributi</h2>
<p>Apri <strong>Catalogo > Unione catalogo</strong>, scheda <strong>Valori di attributi</strong>. Scegli il gruppo di attributi da ripulire e la lingua in cui vuoi leggere le etichette.</p>
<p>La tabella elenca i valori del gruppo con, per ciascuno, il numero di prodotti e di combinazioni che lo usano. Spunta i duplicati da eliminare, scegli il valore da conservare nell’elenco «Unisci i valori selezionati in», poi clicca su <strong>Simula</strong>.</p>
<h3>Leggere il rapporto di simulazione</h3>
<p>La simulazione non scrive nulla. Il rapporto indica il numero di righe di combinazione da convertire, i prodotti coinvolti, le combinazioni che portano già il valore di destinazione e quelle che diventeranno identiche dopo l’unione. Se il rapporto ti convince, clicca su <strong>Applica questa unione</strong>.</p>
<h3>Cosa succede alle combinazioni</h3>
<p>Tutte le combinazioni che usano un valore eliminato passano al valore conservato. Tre casi particolari sono gestiti automaticamente:</p>
<ul>
<li>Una combinazione portava già il valore di destinazione e il suo duplicato: la riga duplicata viene rimossa e il resto della combinazione non viene toccato.</li>
<li>Due combinazioni dello stesso prodotto diventano identiche: vengono riunite. Le quantità sono sommate negozio per negozio, immagini e prezzi specifici trasferiti, la combinazione predefinita conservata e la giacenza del prodotto padre risincronizzata.</li>
<li>I carrelli in corso che referenziano la combinazione eliminata vengono ripuntati su quella che resta.</li>
</ul>
<div class=”df-callout note”><p>I valori da unire devono appartenere allo stesso gruppo di attributi del valore di destinazione. Il modulo rifiuta un’unione tra due gruppi diversi, che produrrebbe combinazioni incoerenti.</p></div>
<h2>Unire valori di caratteristiche</h2>
<p>La scheda <strong>Valori di caratteristiche</strong> funziona allo stesso modo: scegli una caratteristica, spunta i duplicati, scegli il valore di destinazione, simula e applica.</p>
<p>Le associazioni prodotto vengono convertite verso il valore conservato. Se un prodotto portava già entrambi i valori, l’associazione duplicata viene eliminata. Su PrestaShop 9 i valori di caratteristica legati alle combinazioni sono trattati contemporaneamente.</p>
<h3>Valori personalizzati</h3>
<p>PrestaShop consente di inserire un valore di caratteristica proprio di un solo prodotto, contrassegnato come <em>personalizzato</em> nella tabella. Questi valori sono la prima fonte di duplicati dopo un’importazione. Puoi unirli in un valore condiviso come qualsiasi altro. Se il valore di destinazione era a sua volta personalizzato e dopo l’unione risulta usato da più prodotti, il modulo lo converte automaticamente in valore condiviso.</p>
<h2>Rilevare i duplicati automaticamente</h2>
<p>La scheda <strong>Rilevamento duplicati</strong> analizza l’intero catalogo e raggruppa i valori la cui etichetta è identica ignorando maiuscole, accenti, punteggiatura e spazi ripetuti. «Rosso», «rosso» e «ROSSO» formano quindi un solo gruppo, così come «Cotone bio» e «cotone-bio».</p>
<p>Per ogni gruppo il valore più usato viene proposto come destinazione, con preferenza per i valori condivisi rispetto a quelli personalizzati. Il pulsante <strong>Simula questa unione</strong> invia il gruppo alla schermata di simulazione, dove mantieni il controllo sulla scelta finale.</p>
<p>L’analisi avviene nella lingua selezionata. Su un catalogo multilingua, rilanciala in ogni lingua: un duplicato può esistere solo in una traduzione.</p>
<h2>Definire l’ordine di visualizzazione</h2>
<p>Nelle prime due schede ogni riga ha una maniglia a sinistra. Trascina una riga per cambiarne la posizione: il nuovo ordine viene salvato subito, senza ricaricare la pagina.</p>
<p>Il pulsante <strong>Ordina automaticamente</strong> sistema i valori senza intervento manuale. Le taglie seguono la sequenza XS, S, M, L, XL, XXL invece dell’ordine alfabetico, e i valori numerici seguono l’ordine naturale: 2 prima di 10, 39 prima di 41.</p>
<h3>Cosa vede il cliente</h3>
<p>Per i valori di attributi la posizione è quella usata dal selettore delle combinazioni nella scheda prodotto, sia su PrestaShop 8 sia su PrestaShop 9. Non serve alcuna impostazione aggiuntiva.</p>
<p>Per i valori di caratteristiche l’ordine si applica alla tabella delle caratteristiche della scheda prodotto quando l’opzione «Forzare l’ordine nelle schede prodotto» è attiva. Su PrestaShop 9 la posizione nativa viene alimentata in parallelo, portando lo stesso ordine anche nelle altre schermate del back office.</p>
<div class=”df-callout tip”><p>Se l’ordine non cambia sul front dopo una modifica, svuota la cache del negozio. Le schede prodotto sono messe in cache da PrestaShop e dalla maggior parte dei moduli di performance.</p></div>
<h2>Cronologia delle unioni</h2>
<p>La scheda <strong>Cronologia</strong> elenca le unioni applicate, dalla più recente alla più vecchia: data, tipo, valore di origine con il suo identificativo, valore conservato e numero di righe modificate. Gli identificativi sono conservati per permettere un confronto con un backup del database se devi tornare indietro manualmente.</p>
<h2>Buone pratiche</h2>
<ul>
<li>Esegui un backup del database prima di una campagna di pulizia, soprattutto su cataloghi di diverse migliaia di prodotti.</li>
<li>Simula sempre. Il rapporto ti mostra le combinazioni che spariranno per unione prima che accada.</li>
<li>Lavora gruppo per gruppo invece che in un’unica passata, per mantenere rapporti leggibili.</li>
<li>Dopo un’unione importante, rilancia l’indicizzazione della ricerca a faccette se usi quel modulo.</li>
<li>Su un negozio molto trafficato, applica le unioni nelle ore di minor carico: la conversione delle combinazioni blocca brevemente le tabelle coinvolte.</li>
</ul>
<h2>Risoluzione dei problemi</h2>
<h3>L’unione viene rifiutata con un messaggio sul gruppo di attributi</h3>
<p>Tutti i valori spuntati devono appartenere allo stesso gruppo di attributi del valore di destinazione, o alla stessa caratteristica per i valori di caratteristiche. Verifica di non aver spuntato un valore di un altro gruppo con lo stesso nome.</p>
<h3>L’ordine dei valori di caratteristiche non cambia nella scheda prodotto</h3>
<p>Verifica che l’opzione «Forzare l’ordine nelle schede prodotto» sia attiva, poi svuota la cache. Se il tuo tema mostra le caratteristiche tramite un modulo di terze parti invece che tramite le variabili native della scheda prodotto, l’ordine potrebbe non essere ripreso: contattaci indicando il nome del tema.</p>
<h3>Un’unione si è interrotta</h3>
<p>Le scritture avvengono in una transazione: in caso di errore il database torna allo stato iniziale e nessun dato va perso. Il messaggio di errore mostrato in cima alla schermata contiene la causa. Le tabelle devono essere InnoDB perché l’annullamento funzioni.</p>
<h3>I filtri a faccette mostrano ancora il valore eliminato</h3>
<p>Assicurati che l’opzione «Aggiornare le tabelle di terze parti» fosse attiva al momento dell’unione, poi rilancia l’indicizzazione del modulo di navigazione a faccette dalla sua pagina di configurazione.</p>
<h2>Compatibilità</h2>
<ul>
<li>PrestaShop 8.0 fino a 9.x, lo stesso ZIP copre entrambi i rami.</li>
<li>Multinegozio e multilingua.</li>
<li>Architettura ModuleAdminController, senza dipendenze Composer.</li>
<li>Interfaccia disponibile in italiano, francese, inglese, spagnolo, tedesco, olandese, polacco e portoghese.</li>
</ul>