Guida
Come caricare prodotti in blocco su WooCommerce
WooCommerce può importare centinaia di prodotti in una volta da un file CSV. Questa guida illustra l’importatore integrato, quando conviene un plugin o la REST API e come ottenere dati puliti nel CSV fin dall’inizio.
Aggiungere i prodotti uno per uno nell’area di amministrazione di WooCommerce va bene per un piccolo negozio, ma caricare così il catalogo di un fornitore può richiedere giorni. WooCommerce include un importatore CSV dei prodotti, e per attività più grandi o ricorrenti esistono plugin di importazione e un’API.
L’importazione in sé raramente è la parte difficile. Il difficile è produrre un CSV corretto: una riga per prodotto o variazione, le colonne giuste, attributi coerenti e descrizioni degne di essere pubblicate.
Opzione 1: l’importatore CSV integrato di WooCommerce
WooCommerce include un importatore e un esportatore CSV dei prodotti. Nell’area di amministrazione di WordPress vai su Prodotti → Tutti i prodotti e scegli Importa. Carica il CSV, associa le sue colonne ai campi di WooCommerce ed esegui l’importazione. Spuntando “Aggiorna i prodotti esistenti” puoi aggiornare i prodotti individuati tramite ID o SKU invece di creare duplicati.
- Esporta prima un prodotto esistente e usa quel file come modello: mostra i nomi esatti delle colonne attesi dal tuo negozio.
- Le colonne tipiche includono Type, SKU, Name, Published, Short description, Description, Regular price, Categories, Tags, Images e Attribute 1 name / Attribute 1 value(s).
- Le immagini vengono importate da URL, quindi devono essere raggiungibili pubblicamente al momento dell’importazione.
- I prodotti variabili richiedono una riga padre di tipo “variable” e una riga per ogni variazione che fa riferimento al padre.
- I file molto grandi possono andare in timeout su hosting condiviso: suddividili in lotti di qualche centinaio di righe.
Opzione 2: plugin di importazione
I plugin di importazione di terze parti aggiungono funzioni che l’importatore di base non ha: importazioni pianificate o ricorrenti da un feed del fornitore, supporto XML, regole di trasformazione dei campi e una migliore gestione dei file molto grandi. Hanno senso quando un fornitore invia regolarmente file aggiornati di prezzi e giacenze.
I plugin si aspettano comunque dati strutturati in ingresso. Se il tuo fornitore fornisce PDF anziché un feed, un plugin non elimina il lavoro di trasformare quei PDF in righe.
Opzione 3: la REST API di WooCommerce
Sviluppatori e strumenti di integrazione possono creare prodotti tramite la REST API di WooCommerce, che comprende un endpoint batch in grado di creare o aggiornare molti prodotti in una sola richiesta. È adatta a pipeline automatizzate e ad applicazioni che creano prodotti direttamente, senza passare dal CSV.
Doc2Shelf segue questa strada: dopo la revisione, invia i prodotti a WooCommerce come semplici prodotti in bozza con descrizioni lunghe e brevi, così puoi controllarli in WooCommerce prima di renderli attivi. Gli attributi globali per i filtri e i prodotti variabili si configurano separatamente in WooCommerce.
Preparare i dati di prodotto per un caricamento in blocco
Qualunque metodo di importazione usi, la qualità dei dati decide il risultato. Prima di importare:
- Assegna a ogni prodotto uno SKU univoco: è così che gli aggiornamenti successivi trovano il prodotto giusto.
- Crea prima in WooCommerce le categorie e gli attributi globali, poi richiamali in modo coerente.
- Normalizza le specifiche: stesse unità, stessi nomi di attributo, un solo valore per cella.
- Scrivi descrizioni vere invece di incollare il testo del fornitore; marketplace e motori di ricerca premiano i contenuti originali.
- Importa come bozze per una prima prova — imposta Published su -1 (con 0 i prodotti diventano privati) — poi controlla un campione prima di pubblicare tutto.
Quando il fornitore invia solo PDF
Molti fornitori forniscono schede tecniche e cataloghi in PDF, non feed CSV. In questo caso il collo di bottiglia è l’estrazione: qualcuno deve leggere ogni PDF, compilare le colonne e scrivere una descrizione.
Puoi farlo manualmente, oppure estrarre i dati con uno strumento e poi verificarli. Doc2Shelf legge i PDF dei fornitori, estrae le specifiche da sottoporre a revisione, prepara le descrizioni lunghe e brevi per WooCommerce e crea i prodotti come bozze tramite la REST API, sostituendo il passaggio del foglio di calcolo per i cataloghi che partono da PDF.
Errori di importazione comuni in WooCommerce
Se un’importazione fallisce o produce risultati inattesi, controlla prima questi punti:
- SKU duplicati o mancanti, che causano righe saltate o prodotti duplicati.
- Codifica del file errata: salva il CSV in UTF-8 in modo che i caratteri accentati vengano importati correttamente.
- URL delle immagini che reindirizzano, richiedono un login o puntano a file molto grandi.
- Percorsi di categoria scritti in modo incoerente (usa “Genitore > Figlio” per le categorie annidate).
- Variazioni i cui valori di attributo non corrispondono ai valori di attributo del prodotto padre.
Riferimento delle colonne CSV dei prodotti WooCommerce
L’importatore di base legge un insieme fisso di nomi di colonna. Esportando un prodotto dal tuo negozio ottieni le intestazioni esatte attese dalla tua versione di WooCommerce; la tabella qui sotto spiega le colonne più importanti per un caricamento in blocco. Solo Name è obbligatoria — tutte le altre colonne sono facoltative, ma un catalogo importato senza Type, SKU, prezzi e categorie lascia molto lavoro manuale per dopo.
Le colonne con un’unità nell’intestazione, come Weight e le tre dimensioni, mostrano l’unità configurata nelle impostazioni del negozio, quindi copia queste intestazioni da un’esportazione invece di digitarle. I dati personalizzati che non hanno una colonna propria vanno in una colonna la cui intestazione inizia con meta: seguito dalla chiave del campo.
| Colonna | Cosa contiene | Esempio | Note |
|---|---|---|---|
| ID | ID di un prodotto WooCommerce esistente | — | Lascia vuoto per i nuovi prodotti; le importazioni di aggiornamento cercano prima la corrispondenza sull’ID. |
| Type | Tipo di prodotto | simple | Anche variable, variation, grouped o external. Virtual e downloadable sono qualifiche aggiunte a un prodotto, non tipi separati. |
| SKU | Il tuo codice prodotto univoco | ACME-KTL-17 | Seconda chiave di corrispondenza per gli aggiornamenti, dopo l’ID. Deve essere univoco nel negozio. |
| GTIN, UPC, EAN o ISBN | Identificativo globale del prodotto | 4006381333931 | Campo di base. Da WooCommerce 11.2 è la chiave di corrispondenza di riserva quando ID e SKU sono entrambi vuoti. |
| Name | Titolo del prodotto | Bollitore in acciaio inossidabile 1,7 L | L’unica colonna obbligatoria. |
| Published | Stato dopo l’importazione | -1 | 1 = pubblicato, 0 = privato, -1 = bozza, 2 = in attesa di revisione. |
| Regular price / Sale price | Prezzi | 49.90 | Numeri semplici, senza simbolo di valuta. |
| Stock | Quantità in magazzino | 25 | Da usare con In stock? e Backorders allowed? secondo necessità. |
| Weight (unit), Length (unit), Width (unit), Height (unit) | Peso e dimensioni di spedizione | 1.2 | L’intestazione mostra l’unità del tuo negozio, ad esempio kg o cm. |
| Categories | Categorie di prodotto | Cucina > Bollitori, Idee regalo | Separate da virgole; “>” indica una sottocategoria. |
| Images | URL delle immagini | https://cdn.example.com/ktl-front.jpg | Separati da virgole; la prima immagine diventa l’immagine in evidenza. |
| Parent | Prodotto padre di una riga di variazione | ACME-KTL | Lo SKU del padre, oppure id: seguito dall’ID del padre. |
| Attribute 1 name / Attribute 1 value(s) | Un attributo e i suoi valori | Colore / Rosso, Blu | Aggiungi Attribute 2, Attribute 3 e così via per altri attributi. |
| Attribute 1 visible / Attribute 1 global | Flag per quell’attributo | 1 / 1 | Visible lo mostra sulla pagina del prodotto; global usa un attributo valido per tutto il negozio. |
| Attribute 1 default | Valore preselezionato di un prodotto variabile | Rosso | Impostalo sulla riga del padre. |
| meta:supplier_code | Un campo meta personalizzato | D-4471 | Qualsiasi intestazione che inizia con meta: viene salvata come meta personalizzato. |
Prodotti variabili in un CSV: righe padre e righe di variazione
Un prodotto variabile si estende su più righe: una riga padre che definisce il prodotto e i valori di attributo che offre, e una riga per ogni variazione che riporta prezzo, SKU e giacenza di una singola combinazione. La riga padre ha Type “variable”; ogni riga di variazione ha Type “variation” e rimanda al padre nella colonna Parent, usando lo SKU del padre o id: seguito dal suo ID.
Le colonne degli attributi collegano le righe tra loro. Nel padre, Attribute 1 value(s) elenca tutti i valori offerti dal prodotto, separati da virgole. In ogni variazione compare lo stesso Attribute 1 name con uno solo di quei valori. Ortografia e maiuscole devono coincidere: una variazione che riporta “rosso” sotto un padre che offre “Rosso” può finire senza un valore di attributo utilizzabile.
Imposta Attribute 1 global su 1 sul padre e sulle sue variazioni quando usi un attributo valido per tutto il negozio creato in Prodotti → Attributi — è quello con cui funzionano la navigazione a faccette e i widget dei filtri. Da WooCommerce 11.1, un’importazione di aggiornamento può anche aggiungere nuove variazioni a un prodotto variabile già esistente, così puoi ampliare una gamma senza ricostruire il padre.
- Tieni ogni riga padre sopra le sue variazioni, così il file è facile da controllare e il padre esiste quando le variazioni vi fanno riferimento.
- Assegna a ogni variazione il proprio SKU e prezzo; una variazione senza prezzo non può essere acquistata.
- Usa Attribute 1 default sul padre per controllare quale opzione è preselezionata.
| Riga | Type | SKU | Parent | Attribute 1 name | Attribute 1 value(s) |
|---|---|---|---|---|---|
| Padre | variable | ACME-KTL | — | Colore | Rosso, Blu |
| Variazione 1 | variation | ACME-KTL-RED | ACME-KTL | Colore | Rosso |
| Variazione 2 | variation | ACME-KTL-BLU | ACME-KTL | Colore | Blu |
Aggiungere le immagini dei prodotti tramite il CSV
La colonna Images accetta uno o più URL di immagini separati da virgole. Il primo URL diventa l’immagine in evidenza e gli altri formano la galleria del prodotto nell’ordine indicato. Durante l’importazione WordPress scarica ogni file nella libreria multimediale, quindi ogni URL deve essere raggiungibile pubblicamente in quel momento — senza login, senza link di condivisione che scadono e senza reindirizzamenti a una pagina web invece che al file.
Le immagini sono di solito la parte più lenta di un’importazione: poche centinaia di prodotti con cinque immagini ciascuno significano oltre mille download. Ridimensiona le immagini prima di ospitarle, usa nomi di file descrittivi (kettle-red-front.jpg, non IMG_0042.jpg) e dividi i cataloghi grandi in file più piccoli.
L’importatore di base non può impostare il testo alternativo delle immagini. Aggiungilo in seguito nella libreria multimediale, tramite la REST API o con un’estensione di importazione che lo supporti. Una variazione contiene una sola immagine, quindi assegna a ogni riga di variazione al massimo un URL.
Creare prodotti in blocco con la REST API di WooCommerce
La REST API è la strada migliore quando le importazioni si ripetono, quando i dati di prodotto risiedono già in un altro sistema o quando nessuno dovrebbe doversi occupare di un CSV. Il suo endpoint batch dei prodotti (POST /wp-json/wc/v3/products/batch) accetta operazioni di creazione, aggiornamento ed eliminazione in un’unica richiesta.
Per impostazione predefinita, una richiesta batch è limitata a 100 oggetti tra creazioni, aggiornamenti ed eliminazioni. Lo stesso limite vale per gli endpoint batch di variazioni, categorie, attributi e termini di attributo. Un catalogo di 1.000 prodotti richiede quindi almeno dieci richieste, e di più una volta aggiunte le variazioni.
- Crea una chiave REST API con permessi di lettura/scrittura in WooCommerce → Impostazioni → Avanzate → REST API, oppure lascia che un’app ne richieda una tramite la schermata di autorizzazione di WooCommerce.
- Crea prima le categorie, gli attributi globali e i termini di attributo, e annota i relativi ID.
- Invia i prodotti semplici e i prodotti padre in batch fino a 100, con stato impostato su bozza.
- Crea le variazioni di ogni prodotto variabile tramite l’endpoint batch delle variazioni di quel prodotto.
- Controlla l’esito di ogni elemento nella risposta e ripeti solo gli elementi che non sono riusciti.
- Controlla a campione alcune bozze nell’area di amministrazione, poi pubblicale.
Scegliere un plugin o una via per il caricamento in blocco di prodotti su WooCommerce
Se l’importatore di base non basta, valuta un plugin o un’estensione di importazione da come gestisce i tuoi dati, non dalla lunghezza dell’elenco di funzionalità, e provalo su una copia di staging del negozio con un vero file del fornitore prima di adottarlo. La tabella confronta le quattro vie, seguita dalle domande da porre a qualsiasi plugin.
- Formati di origine: solo CSV, oppure anche XML, fogli di calcolo e feed remoti recuperati tramite URL.
- Pianificazione: se può rieseguire un’importazione a intervalli programmati per recepire nuovi prezzi e giacenze.
- Mappatura e trasformazioni: rinominare colonne, dividere valori, convertire unità e applicare regole di prezzo durante l’importazione.
- Prodotti variabili: se crea in modo affidabile padri, variazioni e attributi globali.
- Immagini: come le scarica, se rileva i duplicati e se imposta il testo alternativo.
- File di grandi dimensioni: elaborazione in background o a blocchi, perché le importazioni lunghe non vadano in timeout.
- Regole di aggiornamento: su quale chiave cerca la corrispondenza (ID, SKU o GTIN) e quali campi può sovrascrivere.
| Via | Ideale per | Attenzione a |
|---|---|---|
| Importatore CSV di base | Importazioni una tantum e aggiornamenti in blocco da parte del personale del negozio | Limiti di upload e di tempo del server; nessun testo alternativo per le immagini |
| Plugin o estensione di importazione | Feed ricorrenti dei fornitori, fonti XML o fogli di calcolo, aggiornamenti programmati | Un plugin in più da mantenere e da tenere compatibile |
| Richieste batch della REST API | Pipeline automatizzate e sincronizzazione da un altro sistema | Tempo di sviluppo; per impostazione predefinita 100 oggetti per richiesta batch |
| App che crea i prodotti per te | Dati di prodotto che nascono fuori da un foglio di calcolo, come i documenti dei fornitori | Verifica quali tipi di prodotto e campi l’app imposta davvero |
Checklist pre-importazione e correzione degli errori
La maggior parte delle importazioni fallite risale a un passaggio di preparazione saltato. Segui la checklist prima di ogni importazione di grandi dimensioni e usa la tabella per diagnosticare i problemi che si presentano comunque.
- Esegui il backup del database, oppure esegui l’importazione su una copia di staging del negozio.
- Esporta un prodotto esistente e copia la sua riga di intestazione nel tuo file.
- Crea le categorie, gli attributi globali e i termini di attributo a cui il file fa riferimento.
- Verifica che ogni SKU sia univoco e che il valore Parent di ogni variazione corrisponda allo SKU di un padre esistente.
- Usa numeri semplici nelle colonne di prezzo, giacenza, peso e dimensioni.
- Apri un campione di URL di immagini in una finestra del browser privata per confermare che si caricano senza login.
- Imposta Published su -1 in modo che i prodotti arrivino come bozze.
- Salva il file come CSV UTF-8.
- Importa un file di prova di dieci righe, controlla i risultati, poi importa il resto a blocchi.
| Problema | Causa probabile | Rimedio |
|---|---|---|
| Prodotti duplicati invece che aggiornati | “Update existing products” non selezionato, oppure ID e SKU non corrispondono al negozio | Seleziona l’opzione; copia ID o SKU da un’esportazione recente |
| Righe saltate in un’importazione di aggiornamento | Nessuna corrispondenza su ID o SKU (il GTIN viene provato solo quando entrambi sono vuoti, dalla 11.2) | Aggiungi a ogni riga lo SKU o l’ID del prodotto esistente |
| Variazioni importate come prodotti separati | Type non impostato su variation, oppure colonna Parent vuota o scritta in modo errato | Usa Type “variation” e lo SKU esatto del padre |
| Immagini mancanti | L’URL richiede un login, reindirizza oppure l’host blocca il download | Ospita le immagini su URL pubblici e diretti ed esegui di nuovo l’importazione |
| File rifiutato al caricamento | File più grande della dimensione massima di upload del server | Dividi il file oppure chiedi al tuo hosting di aumentare il limite |
| L’importazione si interrompe a metà | Raggiunto il limite di tempo o di memoria del server | Importa file più piccoli |
Provare con prodotti fittizi prima dell’importazione vera
Un piccolo file fittizio individua gli errori di mappatura prima che tocchino centinaia di prodotti. Crealo dal tuo vero modello in modo che le intestazioni siano identiche e assegna a ogni prodotto di prova un contrassegno evidente — un prefisso “TEST-” nello SKU e un tag “test” — così potrai trovare ed eliminare i prodotti in seguito.
Copri ogni caso presente nel tuo file reale, non solo quello più semplice. In genere bastano circa dieci righe:
- Un prodotto semplice con tutte le colonne che intendi usare compilate.
- Un prodotto variabile con due attributi e almeno tre variazioni.
- Un prodotto con una galleria di più immagini e uno senza immagini.
- Un prodotto in una categoria annidata che non esiste ancora.
- Un prodotto con caratteri accentati, virgolette e una virgola nella descrizione.
- Una riga che aggiorna un prodotto esistente tramite SKU.
- Controlla i risultati nell’area di amministrazione e nel negozio — prezzi, menu a tendina delle variazioni, ordine delle immagini e pagine delle categorie — poi elimina i prodotti di prova prima dell’importazione vera.
Domande frequenti
- WooCommerce ha un caricamento in blocco dei prodotti integrato?
- Sì. WooCommerce include un importatore CSV dei prodotti in Prodotti → Tutti i prodotti → Importa e un esportatore corrispondente. Per le importazioni CSV standard non serve alcun plugin.
- Quanti prodotti posso importare in WooCommerce in una volta?
- L’importatore non ha un limite fisso di prodotti, ma timeout del server e limiti di memoria del tuo hosting determinano ciò che è realistico. Suddividere i cataloghi grandi in lotti di qualche centinaio di righe è il rimedio abituale.
- Posso aggiornare i prodotti esistenti con un’importazione CSV?
- Sì. Attiva “Aggiorna i prodotti esistenti” nell’importatore; le righe vengono associate ai prodotti esistenti tramite ID o SKU e vengono aggiornate solo le colonne che includi.
- Posso importare prodotti in WooCommerce direttamente dai PDF?
- Non con l’importatore di base, che richiede il CSV. Devi prima estrarre i dati di prodotto dai PDF, manualmente o con uno strumento di estrazione, e poi importarli tramite CSV oppure creare i prodotti con la REST API.
- Quali colonne servono in un CSV di prodotti WooCommerce?
- L’importatore di base richiede solo Name. Per un catalogo utilizzabile includi almeno Type, SKU, Published, Regular price, Categories, Images e Description. Esporta un prodotto dal tuo negozio per ottenere i nomi esatti delle intestazioni attesi dalla tua versione.
- Come importo prodotti variabili con un CSV?
- Aggiungi una riga padre con Type “variable” che elenca tutti i valori degli attributi, poi una riga per ogni variazione con Type “variation”, lo SKU del padre nella colonna Parent, un solo valore di attributo e il suo SKU e prezzo.
- Posso importare immagini e testo alternativo dei prodotti con l’importatore CSV?
- Le immagini sì: elenca URL pubblici delle immagini nella colonna Images, separati da virgole, con l’immagine in evidenza per prima. Il testo alternativo no — l’importatore di base non può impostarlo, quindi aggiungilo in seguito o usa la REST API o un’estensione.
- Quanti prodotti posso creare per richiesta della REST API di WooCommerce?
- Per impostazione predefinita l’endpoint batch accetta fino a 100 oggetti per richiesta, conteggiando insieme creazioni, aggiornamenti ed eliminazioni. I cataloghi più grandi vengono inviati come serie di richieste batch.