CSV
Da Maxpho Commerce Wiki.
Indice |
Premessa
In Maxpho Commerce esiste la possibilita' di importare i prodotti da fonti esterne in formato CSV.
Inserire un prodotto per volta puo' diventare un lavoro parecchio elaborioso che necessiterebbe di una persona dedicata all'inserimento degli articoli, sprecando moltissimo tempo.
Questa operazione risulta essere particolarmente utile quando si possiede gia' un magazzino di prodotti e si desidera trasferire tutti i gli articoli spendendo il minor tempo possibile.
L'utilizzo di questo modulo puo' essere utile anche per effettuare una sorte di Drop Shipping con aziende che forniscono i prodotti. Infatti e' possibile creare un automatismo in modo tale da avere perennemente aggiornato il proprio magazzino con quello che l'azienda offre, tenendo aggiornate le quantita' e i prezzi dei prodotti.
Un altro utilizzo dei csv puo' essere quello di esportare gli ordini e fornirlo ad un applicativo gestionale che si occupa della fatturazione e delle spedizioni.
Cos'e' un file csv?
Un CSV non e' altro che un file di testo che viene utilizzato per il trasferimento di una grossa mole di dati o per l'esportazione dei dati da una struttura di tipo tabellare (ad esempio un database o un foglio di calcolo).
Non esiste un vero e proprio standard per i CSV, infatti si possono trovare diverse tipologie di CSV. In linea di massima si devono comunque rispettare alcuni macro concetti:
- Encoding: un CSV possiede una codifica dettata dal sistema che lo genera. La codifica piu' comune e piu' utilizzata (preferibile in Maxpho) e' la UTF-8. E' molto importante rispettare la codifica in quanto una importazione utilizzando una codifica differente comporterebbe una mal interpretazione dei dati.
- Header: l'header (in italiano -> Testata) rappresenta la prima riga del CSV. Infatti questa riga serve al sistema che importa il file di capire e interpretare il significato dei campi che lo compongono. L'header non e' obbligatoria durante l'importazione tramite modulo CSV, ma lo diventa se si utilizzano i CSV PRO.
- Delimiter: il delimitatore e' indispensabile affinche' il sistema distingua un campo da un altro di una riga. L'header infatti specifica il significato di ciascun campo separandoli da un delimitatore (in questa parte viene specificato il delimitatore che verra' utilizzato per tutto il documento). I caratteri delimitatori piu' comunemente utilizzati sono: ';' (punto e virgola), ',' (virgola), '|' (pipe) o la tabulazione.
- Enclosure: serve per definire se i campi testuali che sono contenuti all'interno del CSV (ad esempio il titolo di un prodotto) sono contenuti o meno all'interno di delimitatori. Il piu' comune e' il carattere '"' (virgolette) che viene utilizzato come contenitore di campi testuali.
- Escaping: nel caso in cui il carattere di enclosure possa essere contenuto all'interno del testo è necessario fornire un carattere di escape che non blocchi il parsing del valore. Il carattere di escape di default è il carattere '\'.
Di seguito potete trovare alcuni esempi di file csv:
Importazione prodotti
A questo link e' disponibile la guida sulla Gestione_manuale_file_CSV per l'importazione dei prodotti in Maxpho.
Nel nostro caso, ogni prodotto contenuto nel CSV e' rappresentato da una riga mentre le caratteristiche di ciascun prodotto (ad esempio il prezzo, il titolo, la descrizione o il codice) sono rappresentate dai campi.
Di seguito l'elenco dei campi che vengono presi in ingresso durante l'importazione di un file CSV
| Nome Campo |
Tipo valore |
Esempio |
Commento |
| Titolo | TEXT | "Cuffie auricolari" | Il titolo del prodotto. |
| Descrizione | TEXT | "Descrizione di cuffie auricolari" | La descrizione del prodotto. |
| Campo personalizzato | TEXT | "testo libero" | Un campo libero. Non si tratta del campo personalizzato di eBay. |
| Nome Produttore/Marca | TEXT | Il nome del produttore | |
| Data di Disponibilità | DATETIME | 2005-08-15 15:23:13 | La data di disponibilità del prodotto |
| Immagine | TEXT / URL | immagine.png | Il nome o il link dell'immagine |
| Categoria | TEXT | Il nome della categoria del prodotto (il formato è ad albero, ovvero deve essere passato tutto l'albero delle categoria del prodotto) | |
| Sottotitolo eBay | TEXT | Il sottotitolo dell'inserzione ebay associata | |
| Aumento visibilità eBay | TEXT | La vetrina o il grassetto dell'inserzione ebay associata | |
| EAN | TEXT | Il codice EAN associato al prodotto | |
| MPN | TEXT | Il codice MPN associato al produttore del prodotto | |
| Modello | TEXT | JNKJ232jn | Il modello del prodotto |
| Prezzo scontato netto | INT | 13.2 | Il prezzo netto scontato |
| Prezzo sconato lordo | INT | 13.2 | Il prezzo lordo scontato |
| Prezzo | INT | 13.2 | Il prezzo netto del prodotto |
| Prezzo Lordo | INT | 13.2 | Il prezzo lordo del prodotto |
| Prezzo netto di stock | INT | 13.2 | Il prezzo netto per acquisti in stock del prodotto |
| Prezzo lordo di stock | INT | 132.3 | Il prezzo lordo di stock per acquisti del prodotto |
| Quantità minima acquistabile | INT | 4 | L'ordine minimo per l'applicazione del prezzo di stock |
| Tasso di aliquota IVA | INT | 21 | Il valore della tassazione |
| Quantità | INT | 12 | La quantità a magazzino |
| Peso | INT | 3.4 | Peso del prodotto |
| Larghezza | INT | 2.3 | Larghezza del prodotto |
| Altezza | INT | 2.3 | Altezza del prodotto |
| Lunghezza | INT | 4.5 | Lunghezza del prodotto |
| Stato | BOOL | 1 | Lo stato, 1 se si vuole abilitare il prodotto, 0 altrimenti |
| Stato eBay | BOOL | 0 | Lo stato di ebay |
| ID inserzione eBay | TEXT | 12321312432 | Id dell'inserzione attiva su eBay |
| ID categoria eBay | INT | 1232 | Id della categoria da assegnare al prodotto di eBay |
| ID categoria negozio eBay | INT | 3213142311412 | La categoria del negozio ebay dell'inserzione associata |
Gestione delle lingue con i CSV
E' possibile caricare per prodotti i dati relativi alle lingue, ad esempio se si dispone di un csv con titoli e descrizioni in lingue diverse dalla lingue di default dell'amministrazione.
I campi per i quali sono gestibili le lingue sono:
- Titolo prodotto
- Descrizione prodotto
- Campo personalizzato prodotto
Sono disponibili due strategie per l'importazione di questo tipo di dato:
- Disporre di tanti file CSV quante sono le lingue, di conseguenza effettuare piu' importazioni degli stessi prodotti aggiornando volta per volta la nuova lingua
- Preddisporre il file CSV affinche' vi siano tutte le lingue in un unico file e che tali campi siano interpretati e importati correttamente da Maxpho.
In ogni caso, per fare in modo che il sistema riconosca e importi il valore del campo nella corretta lingua, nell'header dovrà essere presente il riferimento alla lingua.
Ad esempio se volessimo caricare i dati in lingua tedesca i campi dell'header dovranno essere formattati in questo modo:
- titolo_de_de;descrizione_de_de;personalizzato_de_de;
Generalizzando, se l'importazione avviene per la lingua di default (ad esempio se i prodotti nel csv sono in lingua italiana e la lingua di default per Mapxho e' l'italiano) non e' necessaria una particolare formattazione. D'altro canto, se la lingua di importazione e' diversa dalla lingua di default per Maxpho, il campo riferito al titolo, descrizione e campo personalizzato devono necessariamente avere la seguente sintassi:
- nomeCampo_codiceLingua
dove per codice lingua si intende quello contenuto in Maxpho, ad esempio:
- it_it
- de_de
- fr_fr
- es_es
- etc.
E' disponibile un esempio di CSV di prodotti in piu' lingue cliccando qui.
Gestione dei listini di prezzo mediante importazione CSV
Di default il sistema, importando i prodotti tramite CSV, inserisce i prezzi nel listino di default.
Se si ha la necessita' di caricare prodotti in un listino diverso e' possibile specificare nell'header del CSV in quale listino deve essere inserito il prezzo.
Ad esempio, supponendo che in Maxpho esiste un listino chiamato "ListinoEuropa", la sintassi del campo dell'header deve essere:
- prezzoLordo_ListinoEuropa;prezzoLordoScontato_ListinoEuropa;
I campi per cui e' possibile la gestione dei listini sono:
- Prezzo Netto
- Prezzo Lordo
- Prezzo Netto Scontato
- Prezzo Lordo Scontato
Generalizzando, la sintassi del campo che si deve utilizzare e':
- nomeCampo_nomeListino
E' disponibile un esempio di CSV di prodotti con prezzi da listino differenti cliccando qui.
Gestione attributi mediante importazione CSV
È possibile importare gli attributi dei prodotti (ad esempio il colore o la taglia) attraverso il file CSV inserendo oppurtamente gli attributi in specifiche colonne.
Attributi Semplici
Con attributi semplici si intende la specifica dell'oggetto, ad esempio il tipo di materiale di una maglietta.
Per gestire questo tipo di dato, supponendo che in amministrazione esista un attributo chiamato "materiale", nel csv deve essere presente una colonna chiamata 'attribute_materiale' e, in ogni riga (dove presente l'attributo), deve comparire il valore dell'attributo (ad esempio cotone).
E' disponibile un esempio di CSV che gestisce gli attributi semplici cliccando qui.
Attributi Correlati
Con attributi correlati si intendono le coppie di attributi che possono identificare la referenza di un prodotto (ad esempio la taglia e il colore). In questo caso nel CSV ci dovranno essere tante righe quante possono essere le coppie di attributi precedute da una riga che identifica l'anagrafica e la quantità totale del prodotto.
E' disponibile un esempio di CSV che gestisce gli attributi correlati cliccando qui.
Gestione Categorie/Sottocategorie mediante importazione CSV
Nel CSV puo' essere specificata la categoria di appartenenza del prodotto o, se il vostro albero delle categorie lo prevede, la sottocategoria.
Se il prodotto deve essere associato ad una categoria e' sufficiente che vi sia una colonna nel CSV che rappresenta la categoria e per ciascuna riga del file specificare la categoria di appartenenza (ad esempio Accessori o Auto).
In alternativa, se il prodotto deve essere associato ad una sottocategoria, nel csv deve comunque esserci la colonna relativa alla categoria di appartenenza e per ciascuna riga deve essere specificato il path della categoria, separando ogni livello dal carattere '#'.
Ad esempio se la gerarchia di una vostra cartella e' la seguente:
- Auto - Ricambi - Interno
La sintassi che deve avere la riga relativa al prodotto della categoria "Interno" e' la seguente:
- Auto#Ricambi#Interno
Importazione immagini mediante CSV
E' possibile utilizzare i file CSV per importare le immagini dei prodotti. Per effettuare questa operazione sono disponibili due strategie:
- Precaricare le immagini tramite ftp o S3 (per il caricamento dei file tramite S3 consultare la guida Amazon S3
E sufficiente caricare le immagini dentro alla cartella _upload, all'interno del csv nel campo Immagine inserire il percorso dell'immagine partendo dalla cartella _upload.
Ad esempio, se il percorso reale dell'immagine e': http://www.nomedominio.com/images/products/_upload/cartella1/cartella2/immagineprodotto.jpg nel CSV dovra' essere indicato: /cartella1/cartella2/immagineprodotto.jpg
- Scaricare le immagini tramite http: se l'immagine e' su un server remoto e' sufficiente, nel csv, inserire nel campo Immagine l'url dell'immagine.
Esportazione Ordini
Maxpho fornisce la possibilita' di utilizzare i CSV anche per esportare gli ordini ricevuti, in modo tale da inserirli, ad esempio, in un applicativo gestionale in grado di elaborare i CSV e gestire la fatturazione e le spedizioni.
E' possibile inoltre addestrare il sistema affinche' vengano esportati gli ordini automaticamente con un intervallo di tempo stabilito. Seguire la guida Gestione_automatica_file_CSV per la configurazione di tale funzionalita'.
N.B. se nell'ordine sono presenti piu' prodotti, nel csv vi saranno tante righe quanti sono i prodotti che appartengono allo stesso ordine, con la referenza dello stesso ordine in modo tale da ricevere le informazioni di ogni articolo.
E' possibile vedere un esempio di csv contenente alcuni ordini cliccando qui.
Di seguito i campi che vengono esportati da Maxpho per gli ordini:
| Campo |
Tipo |
Esempio |
Commenti |
| orders_id | INT | 7 | ID dell'ordine su Maxpho |
| customers_id | INT | 2 | ID del cliente su Maxpho |
| customers_summary | TEXT | Mario Rossi via Roma, 83 |
Sommario cliente |
| customers_name | TEXT | Mario Rossi | Nome cliente |
| customers_company | TEXT | Mario Rossi S.r.l. | Nome Società cliente |
| customers_street_address | TEXT | Via Roma, 83 | Via e numero civico cliente |
| customers_suburb | TEXT | Alpo | Frazione cliente |
| customers_city | TEXT | Verona | Città cliente |
| customers_post_code | TEXT | 37067 | Codice Postale cliente |
| customers_state | TEXT | Verona | Provincia cliente |
| customers_zone_code | TEXT | VR | Codice Provincia cliente |
| customers_country | TEXT | Italy | Nazione cliente |
| customers_country_isocode2 | TEXT | IT | Iso 2 Nazione cliente |
| customer_phone | TEXT | 555 123456789 | Numero di telefono cliente |
| customers_email | TEXT | mario.rossi@mariorossisrl.it | Indirizzo e-mail cliente |
| delivery_summary | TEXT | Mario Rossi via Roma, 83 |
Sommario spedizione |
| delivery_name | TEXT | Mario Rossi | Nome destinatario |
| delivery_company | TEXT | Mario Rossi S.r.l. | Nome Società destinatario |
| delivery_street_address | TEXT | Via Roma, 83 | Via e numero civico destinatario |
| delivery_suburb | TEXT | Alpo | Frazione destinatario |
| delivery_city | TEXT | Verona | Città destinatario |
| delivery_post_code | TEXT | 37067 | Codice Postale destinatario |
| delivery_state | TEXT | Verona | Provincia destinatario |
| delivery_zone_code | TEXT | VR | Codice Provincia destinatario |
| delivery_country | TEXT | Italy | Nazione destinatario |
| delivery_country_isocode2 | TEXT | IT | Iso 2 Nazione destinatario |
| billing_summary | TEXT | Mario Rossi via Roma, 83 |
Sommario fatturazione |
| billing_name | TEXT | Mario Rossi | Nome per la fatturazione |
| billing_company | TEXT | Mario Rossi S.r.l. | Nome Società per la fatturazione |
| billing_vat_number | TEXT | 123546789789 | P. IVA per la fatturazione |
| national_identification_number | TEXT | 12345689A546 | Codice Fiscale per la fatturazione |
| billing_street_address | TEXT | Via Roma, 83 | Via e numero civico per la fatturazione |
| billing_suburb | TEXT | Alpo | Frazione per la fatturazione |
| billing_city | TEXT | Verona | Città per la fatturazione |
| billing_post_code | TEXT | 37067 | Codice Postale per la fatturazione |
| billing_state | TEXT | Verona | Provincia per la fatturazione |
| billing_zone_code | TEXT | VR | Codice per la fatturazione |
| billing_country | TEXT | Italy | Nazione per la fatturazione |
| billing_country_isocode2 | TEXT | IT | Iso 2 Nazione per la fatturazione |
| payment_type | TEXT | Pay Pal | Nome pagamento su Maxpho |
| payment_code | TEXT | paypal | Codice pagamento su Maxpho |
| date_of_payment | DATE | 2012-01-05 21:00:00 | Data di pagamento |
| delivery_type | TEXT | Tariffa Forfettaria | Nome modalità di spedizione |
| status_id | INT | 1 | ID stato dell'ordine su Maxpho |
| status_name | TEXT | In attesa | Nome dello stato dell'ordine |
| number_of_products | INT | 1 | Numero di prodotti acquistati |
| name_product | TEXT | SCHERMO DISPLAY LCD VETRO | Nome prodotto |
| code | TEXT | 12AA | Codice prodotto su Maxpho |
| private_field | TEXT | Testo privato | Campo personalizzato su Maxpho |
| vat | DECIMAL | 21,0000 | Aliquota IVA |
| product_net_price | DECIMAL | 11,9167 | Prezzo netto prodotto |
| product_gross_price | DECIMAL | 14,30004 | Prezzo lordo prodotto |
| total_products_net_price | DECIMAL | 11,9167 | Prezzo netto totale prodotti nell'ordine |
| total_products_gross_price | DECIMAL | 14,30004 | Prezzo lordo totale prodotti nell'ordine |
| sub_total | DECIMAL | 11,9167 | Subtotale ordine |
| tax | DECIMAL | 3,2167 | Valore Tasse ordine |
| shipping | DECIMAL | 4,1667 | Valore spedizione |
| low_order_fee | DECIMAL | 1 | Costo aggiuntivo dell'ordine |
| total | DECIMAL | 19,3000 | Totale ordine |
| currency | TEXT | EUR | Valuta |
| currency_value | DECIMAL | 1,0000 | Tasso di cambio rispetto alla valuta di default su Maxpho |
| date_purchased | DATE | 07/12/2011 17:46:53 | Data di acquisto |
| last_modify | DATE | 07/12/2011 17:46:53 | Data di ultima modifica dell'ordine |
| comments | TEXT | Commento all'ordine | Commenti sull'ordine |