Importazione di prodotti da file di testo
L’aggiunta manuale dei prodotti è accettabile se nel tuo negozio ci sono solo pochi articoli. Ma cosa succede se hai centinaia o addirittura migliaia di prodotti? Questo metodo richiede molto tempo ed è poco efficiente per i negozi di grandi dimensioni. Considera che, se hai 10.000 prodotti e l’inserimento di uno richiede circa cinque minuti, occorreranno circa cinque mesi di lavoro per completare la procedura. Inoltre, potresti incontrare problemi come una connessione Internet lenta o errori di comando. Per questo motivo, la soluzione migliore è l’importazione dei prodotti da un file di testo. È possibile importare prodotti da tre tipi di file: file con valori separati da virgola (CSV), punto e virgola (SSV) o tabulazione (TSV). Un file CSV (Comma Separated Values) memorizza il contenuto di una tabella o di un elenco. Il formato CSV è costituito da righe di campi separati da virgole. Ad esempio, se hai la seguente tabella:
La rappresentazione CSV di questa tabella è la seguente:
"Name","Category","SKU","Price"
"iPod Nano","iPods",100001,"199.99"
"iPod Classic","iPods",100002,"249.99"
"iPod Shuffle","iPods",100003,"79.99"
Nei file SSV, la virgola è sostituita dal punto e virgola, mentre nei file TSV i campi sono separati da tabulazioni. Nel nostro esempio useremo file CSV, ma la procedura è identica per gli altri tipi di file.
Prima di poter importare file CSV in Ubercart, devi prima installare il modulo Node import. Per farlo, segui questi passaggi:
1. Vai su http://drupal.org/project/node_import e scarica il modulo Node import. Scegli l’ultima versione per Drupal 6.x. Dovrai anche scaricare i moduli dai quali dipende: Date e Advanced help. Dalla pagina http://drupal.org/project/date scarica il modulo Date API, e dalla pagina http://drupal.org/project/advanced_help scarica Advanced help.
2. Estrai questi file e copiali nella cartella sites/all/modules
.
3. Vai alla pagina dei moduli e attiva Date, Advanced help e Node import.
4. La pagina per l’importazione del contenuto è disponibile in Administer | Content management | Import content.
In questa pagina ci sono tre schede:
- List — mostra tutti gli import creati e i file caricati. Poiché non hai ancora importato nulla, la lista sarà vuota.
- New import — apre la procedura guidata per un nuovo import. Ci torneremo tra poco.
- Settings — apre la pagina delle impostazioni di configurazione.
Prima di iniziare l’importazione, clicca su Settings per visualizzare la pagina di configurazione.
- Import directory: qui puoi caricare i file CSV tramite FTP o attraverso la procedura guidata di importazione.
- Se vuoi consentire il caricamento dei file tramite FTP, seleziona Allow FTP uploads.
- Per motivi di sicurezza, se abiliti l’upload via FTP, devi anche specificare il proprietario del file nel campo successivo. Altrimenti, i file caricati saranno accessibili a chiunque, anche agli utenti anonimi.
- Allowed extensions: definisce le estensioni dei file consentite. Tutti gli altri verranno ignorati.
Per il tuo negozio, non è necessario modificare nulla: clicca su Save configuration per tornare alla pagina precedente. Prima di esplorare la procedura guidata di importazione, diamo un’occhiata più da vicino ai file CSV e alla loro struttura corretta.
Il modo più semplice per creare un file CSV è utilizzare un foglio di calcolo, come Microsoft Excel o OpenOffice Calc. Tutti questi programmi salvano i file nel loro formato nativo, ma consentono facilmente di esportarli in formato CSV. Inserire i dati in una tabella è molto più veloce che farlo manualmente in Ubercart. Il vantaggio maggiore è che, se hai già un database in un’altra applicazione, puoi convertirlo in CSV e importarlo in Ubercart.
Nel file del foglio di calcolo, ogni riga rappresenta un prodotto e ogni colonna rappresenta una proprietà del prodotto. Ricordi come abbiamo creato un nuovo prodotto? In pratica, per ogni campo di quel modulo, devi creare una colonna. Nel tuo negozio non saranno necessari tutti i campi, quindi userai solo i più importanti. Come esempio, ecco una tabella creata:
Salva la tabella in formato CSV.
La tabella ha sei colonne: SKU, nome, descrizione, categoria, prezzo e immagine. Puoi creare una struttura simile nella tua applicazione e salvare il file CSV. L’ultimo passo è caricare le immagini dei prodotti sul server. Usa un client FTP per caricare tutti i file nella cartella sites/default/files
. Come mostrato nella tabella, puoi usare una sottocartella dedicata (es. “import”) per separare queste immagini da tutte le altre. Per impostazione predefinita, le immagini si trovano nella cartella principale sites/default/files
. Ad esempio, se aggiungi le immagini nella sottocartella products
, dovrai modificare il percorso nel file CSV aggiungendo il prefisso /products/036.jpg
.
Dopo aver salvato il file CSV e caricato le immagini, torna in Ubercart e clicca su New import. L’importazione inizierà.
La pagina introduttiva mostra le informazioni sulla procedura e i pulsanti principali. Leggi e poi clicca su Next.
1. Nella prima pagina della procedura guidata, devi scegliere il tipo di contenuto che vuoi importare. Seleziona Product e clicca su Next.
2. Nella seconda pagina, seleziona e carica il file CSV. Se hai già caricato dei file, verranno mostrati in elenco e potrai sceglierne uno. Se vuoi caricarne di nuovi, clicca su Browse, seleziona il file e premi Upload. Dopo averlo caricato e selezionato, clicca su Next.
3. Nella terza pagina puoi configurare alcune impostazioni di base relative al file. Indica se la prima riga contiene i nomi delle colonne (nel nostro caso sì). Poi seleziona il formato del file: CSV. In basso vedrai un’anteprima delle prime quattro righe di dati.
Di solito, Microsoft Excel salva i file CSV con punto e virgola come separatore, mentre OpenOffice usa la virgola.
Clicca su Next.
Se compare l’errore:
Fatal error: Call to undefined function uc_product_node_is_product() in Z:\home\ubercart\www\sites\all\modules\node_import-6.x-1.0-rc4\node_import\supported\ubercart\uc_product.inc on line 15
Vai al forum Ubercart per trovare la soluzione:
http://www.ubercart.org/forum/bug_reports/12843/csv_import_step_3
Nella riga 15 del file node_import\supported\ubercart\uc_product.inc sostituisci
uc_product_node_is_product($node_type)
con
uc_product_is_product($node_type)
4. Nella quarta pagina devi associare le colonne del file ai campi del prodotto. Se hai usato le intestazioni mostrate nell’esempio, il modulo importerà automaticamente la corrispondenza. Verifica comunque ogni campo per assicurarti che la mappatura sia corretta. Poi clicca su Next.
5. Nella quinta pagina puoi impostare alcune opzioni aggiuntive, ma puoi lasciarle così come sono. Clicca su Next.
6. Nella sesta pagina troverai molti valori predefiniti, utilizzati quando un campo non è presente nel file CSV. Se un campo manca, puoi specificare un valore di default. Clicca su Next.
7. Nella settima pagina puoi visualizzare l’anteprima dell’importazione. Esamina attentamente i dati per individuare eventuali errori. Se tutto è corretto, premi Next.
Potrebbero verificarsi problemi di codifica: per importare correttamente il CSV è necessaria la codifica UTF-8. MS Excel salva i file in ANSI per impostazione predefinita, per cui potresti vedere caratteri illeggibili come questi:
Se tutto è corretto e non ci sono problemi, puoi procedere con l’importazione del listino prezzi.
8. L’ottava pagina è l’ultima prima dell’importazione finale. Puoi rivedere i parametri principali e visualizzare alcuni esempi di dati. Clicca su Start import per continuare. Al termine, verrà mostrato un report con le righe importate e gli eventuali errori. Se non ti serve più il file CSV, premi Delete per rimuoverlo dal server.
Dopo aver completato l’importazione dei prodotti, puoi visualizzare il report degli errori:
Ottimo! Durante l’importazione possono comparire errori, ma non preoccuparti: sono comuni e molti utenti ne discutono sui forum. Usando Google puoi trovare facilmente le soluzioni ai tuoi problemi.
Ora, se vai al catalogo prodotti, voilà: