Migrazione da WooCommerce a PrestaShop — Guida completa
Installare, connettere ed eseguire la migrazione completa WooCommerce → PrestaShop: le 7 fasi, il mapping, il dry-run e la risoluzione dei problemi.
Panoramica
Migrazione WooCommerce (dfmigratewoocommerce) migra un negozio WooCommerce completo su PrestaShop 8 o 9: categorie, tag, attributi globali, prodotti semplici e variabili (variazioni convertite in combinazioni), immagini, metadati personalizzati, clienti con indirizzi e ordini. Il modulo si collega direttamente al database MySQL di WordPress, lavora a lotti AJAX senza timeout e mantiene un mapping Woo ↔ PS nel database che rende ogni fase rilanciabile senza duplicati.
Il database WooCommerce di origine viene solo letto, mai modificato. Tutte le scritture avvengono lato PrestaShop.
Installazione
- Nel back office PrestaShop, apri Moduli > Gestore moduli > Carica un modulo e seleziona il file
dfmigratewoocommerce.zip. - Il modulo crea tre tabelle tecniche:
df_woomig_mapping(corrispondenze Woo ↔ PS),df_woomig_log(log) edf_woomig_progress(avanzamento delle fasi). - Clicca su Configura per aprire l’interfaccia di migrazione.
Connessione a WooCommerce
Nella scheda Connessione, inserisci:
- Host / Porta: server MySQL del database WordPress (porta 3306 di default);
- Database, Utente, Password: credenziali del database WordPress;
- Prefisso tabelle: di solito
wp_— verifica inwp-config.php($table_prefix); - URL del sito: l’indirizzo pubblico del negozio WooCommerce, usato per scaricare le immagini (modalità HTTP), o un percorso del filesystem in modalità locale.
Clicca su Testa connessione: il modulo mostra il numero di prodotti, categorie, tag, attributi globali, clienti e ordini rilevati nell’origine.
Se il tuo hosting blocca le connessioni MySQL remote, importa un dump del database WordPress in uno schema dedicato sul server PrestaShop (es. wp_source) e collega il modulo a quello schema in localhost. Funziona anche un tunnel SSH.
Parametri
- Lingua predefinita: lingua PrestaShop in cui verranno scritti i contenuti Woo (monolingue);
- Gruppo di imposte predefinito: applicato a tutti i prodotti migrati — i prezzi Woo vengono copiati così come sono nel prezzo IVA esclusa di PrestaShop;
- Attributi come caratteristiche: attiva il doppio mapping (ogni attributo globale diventa anche una caratteristica, visibile sui prodotti semplici) e l’importazione dei postmeta personalizzati come caratteristiche
meta:*; - Dimensione del lotto: numero di entità elaborate per richiesta AJAX (25 di default; riducilo su hosting condiviso lento);
- Modalità immagini:
http(download dall’URL del sito) olocal(l’URL del sito viene trattato come percorso filesystem contenentewp-content/uploads); - Dry-run: modalità simulazione — tutto viene registrato, niente viene scritto;
- Corriere predefinito: assegnato agli ordini migrati.
Eseguire la migrazione
Nella scheda Migrazione, esegui le fasi in ordine — ognuna si basa sul mapping creato dalle precedenti:
- Attributi — ogni attributo globale Woo (
pa_*) diventa un gruppo di attributi PS (i gruppi colore vengono rilevati) e, se l’opzione è attiva, una caratteristica. Tutti i valori vengono creati su entrambi i lati. - Categorie — l’albero completo viene ricostruito; i genitori mancanti vengono risolti ricorsivamente, gli orfani agganciati alla radice con un avviso.
- Tag — deduplicati per nome.
- Prodotti — prodotti semplici e variabili: prezzi, prezzi scontati (SpecificPrice), SKU, peso, dimensioni, stock, stato, prodotti virtuali, collegamenti a categorie/tag, caratteristiche, metadati personalizzati. Le variazioni diventano combinazioni con impatto sul prezzo, stock e riferimento propri. Le immagini del prodotto vengono migrate al volo.
- Immagini — fase di recupero: scorre i prodotti già migrati e importa le immagini mancanti (immagine principale + galleria), rigenerando tutte le miniature.
- Clienti — account con indirizzi di fatturazione e spedizione. Password rigenerate in bcrypt: i clienti usano «password dimenticata» al primo accesso. Le email già presenti in PS vengono riutilizzate, mai duplicate.
- Ordini — rilevamento automatico HPOS (WooCommerce 8+, tabelle
wc_orders) o legacy (wp_posts). Righe, totali, valuta e stati mappati sugli stati ordine PrestaShop. Nessuna email viene inviata.
Ogni fase mostra una barra di avanzamento in diretta e può essere interrotta e rilanciata: riprende esattamente da dove si era fermata.
Fai prima un passaggio completo in dry-run per validare il perimetro nel log, poi disattiva il dry-run e rilancia.
Mapping e rilanci
La scheda Mapping mostra il numero di corrispondenze per tipo di entità. Ogni entità presente nel mapping viene saltata nei rilanci: puoi rilanciare una fase completa senza creare duplicati. Il pulsante di reset cancella il mapping di un tipo (o di tutto) — le entità già create lato PrestaShop restano al loro posto.
Log
La scheda Log elenca gli eventi per fase e livello (info, successo, avviso, errore): prodotti creati, variazioni saltate per mancanza di attributo globale, immagini non trovate, ordini senza cliente… Pulizia con un clic.
Dopo la migrazione
- Lancia una reindicizzazione della ricerca: Parametri negozio > Ricerca > Indicizza tutti i prodotti;
- Verifica un campione di prezzi se il tuo negozio Woo salvava prezzi IVA inclusa (PrestaShop si aspetta IVA esclusa);
- Controlla il gruppo di imposte, i corrieri e i metodi di pagamento;
- Elimina la configurazione di connessione (o disinstalla il modulo): le credenziali MySQL sono memorizzate nella configurazione PrestaShop.
Limiti noti
- Gli attributi locali (definiti su un singolo prodotto, non
pa_*) usati nelle variazioni non possono diventare combinazioni — PrestaShop richiede attributi globali. Queste variazioni vengono saltate e segnalate nel log. Convertili in attributi globali lato Woo prima della migrazione se necessario. - Gli ordini vengono migrati come storico: le imposte non vengono ricalcolate, i totali Woo vengono copiati così come sono.
- Coupon, recensioni prodotto e abbonamenti non vengono migrati in questa versione.
Risoluzione dei problemi
«Connessione fallita» al test
Verifica che l’utente MySQL possa connettersi dall’IP del server PrestaShop (GRANT ... ON db.* TO 'user'@'ip') e che la porta 3306 sia aperta. In alternativa, usa un dump locale o un tunnel SSH.
Immagini mancanti in modalità HTTP
Il sito WooCommerce deve essere raggiungibile via HTTP/HTTPS dal server PrestaShop. Se il sito di origine è offline, usa la modalità local copiando wp-content/uploads sul server PrestaShop e indicando il suo percorso come URL del sito.
Variazioni assenti su un prodotto
Consulta il log: se le variazioni usavano attributi locali (non globali), vengono saltate per progettazione. Il prodotto padre viene migrato con i suoi dati di base.