Cambio il Web - Idee e Progetti per il tuo business on-line

Curiamo ogni progetto come un neonato ...poi lo facciamo crescere!

Impariamo insieme Magento (4)
Importare i Prodotti

domenica, 25 luglio, 2010 - Magento

E’ già almeno tre volte che qualcuno mi dice qualcosa del genere:  “Magento è bello ma inserire i prodotti ad uno ad uno è un’operazione allucinante!!!”

E’ vero, inserire i prodotti ad uno ad uno è un’operazione assurda ed è praticabile solo nel caso si abbia a che fare con cataloghi di piccole dimensioni (dell’ordine di alcune decine di prodotti).

Cosa fare allora? Esistono tre strade possibili. Se stiamo migrando verso magendo da un’altra piattaforma di ecommerce potremmo prendere in considerazione questa soluzione. La seconda strada potrebbe essere quella di acquistare un plugin su magento connect. Infine, la terza strada potrebbe essere quella di utilizzare gli “Import/Export Profiles”.

Esistono molti tutorial su some utilizzare i profili di importazione/esprotazione e di seguito riporto solo due esempi: esempio 1 ed esempio 2.

In pratica:

  1. Si aggiunge un prodotto manualmente al catalogo;
  2. Lo si esporta attraverso System >> Import/Export >> Profiles e poi Export All;
  3. Si modifica il file esportato (.csv) aggiungendo i propri prodotti;
  4. Si re-importa il file attraverso System >> Import/Export >> Profiles.  Poi Import All Products.

Tutto semplice e chiaro. La pratica potrebbe però riservare delle sgradite sorprese e indurre in noi dei gran mal di testa. Come esperienza personale posso dire che la prima volta che ho provato questa procedura tutto ha funzionato a meraviglia con un piccolo contrattempo: le immagini dei prodotti, che pure avevo inserito nel percorso indicato nel file, non si vedevano!!!

Dopo molto peregrinare ho trovato la soluzione su forum di magento.

In pratica ho dovuto modificare il file app/code/core/Mage/Catalog/Model/product.php nei pressi della linea 759 cambiando:

public function addImageToMediaGallery($file, $mediaAttribute=null, $move=false, $exclude=true)
con
public function addImageToMediaGallery($file, $mediaAttribute=null, $move=false, $exclude=false)

In realtà la cosa migliore da fare e quella di non modificare il file

app/code/core/Mage/Catalog/Model/product.php
ma quella di copiarlo in
app/code/local/Mage/Catalog/Model/product.php

e poi modificarlo, il perche è spiegato in questo post dove sono elencati alcuni errori comuni commessi dai principianti.

Le immagini vanno uplodate nella cartella “media/import”, come spiegato sul forum di magento, fate attenzione ad inserire i nomi dei file tutti in minuscolo (lowercase), il resto della procedura rimane invariata. Ricordate di mettere il simbolo / prima del nome (es “/file1.jpg”) altrimenti le immagini non si vedranno!

A questo punto potrebbe sorgere un nuovo problema (come è accaduto a me!): i nomi dei file che il cliente mi aveva passato ovviamente non erano tutti in minuscolo!
Che fare? Modificare i file delle immagini ad uno a uno equivale ad inserire i prodotti ad uno ad uno in magento (quindi ci troveremmo esattamente nelle condizioni iniziali!).

In realtà per risolvere questo problema bastano conoscenze basilari di programmazione…
Utilizzando ad esempio Visual Basic si potrebbe procedere come segue (è quello che ho fatto io).

Si crea un nuovo progetto e di Visual Basic e si utilizza questo codice:

‘percorso immagini originali ad esempio C:\Proggettiweb\cliente1\immagini_da_convertire\
My.Computer.FileSystem.CurrentDirectory = “C:\Proggettiweb\cliente1\immagini_da_convertire\”

Dim Fileinfo As System.IO.FileInfo

Dim nomeOriginale As String
Dim NomeLower As String

For Each foundImage As String In _
My.Computer.FileSystem.GetFiles( _
My.Computer.FileSystem.CurrentDirectory)
Fileinfo = My.Computer.FileSystem.GetFileInfo(foundImage)
nomeOriginale = Fileinfo.Name
NomeLower = nomeOriginale.ToLower
My.Computer.FileSystem.CopyFile(My.Computer.FileSystem.CurrentDirectory + “\” + nomeOriginale, My.Computer.FileSystem.CurrentDirectory + “\New\” + NomeLower)
Next

Nella cartella New troverete i files in minuscolo.

Se nel nome dei files delle immagini ci sono spazi multipli (es. image  1.jpg) potrebbe essere necessaria un’altra modifica al file
app/code/core/Mage/Catalog/Model/product.php
eccola (sempre trovata sul forum di magento):

cambiare
$mediaGalleryAttribute->getBackend()->addImage($this, $file, $mediaAttribute, $move, $exclude);
con
$mediaGalleryAttribute->getBackend()->addImage($this, trim( $file), $mediaAttribute, $move, $exclude);

spero serva!



Articoli correlati

Tags:

feed RSS 2.0
Lascia un commento
fai il trackback dal tuo sito

Lascia un commento