Salve a tutti,
Ho un problema con il codice per inserire dei prodotti nel database di magento.
Dopo tanti tentativi alla fine sono arrivato a questo codice. Il problema è che i prodotti non si vedono nel frontend. Vi posto il codice che uso, se qualcuno può aiutarmi.
<?php
require_once ("app/Mage.php");
umask(0);
Mage::app();
$data = array('stock_status'=>'1', 'categories'=>'237', 'sku'=>'57420', 'display_actual_price'=>'1', 'store'=>'1', 'special_from_date'=>'2015-04-27 13:21:03', 'special_to_date'=>'2015-04-27 13:21:03', 'news_from_date'=>'2015-04-27 13:21:03', 'news_to_date'=>'2015-04-27 13:21:03', 'attribute_set'=>'1', 'website'=>'1','product_id'=>'150', 'category_ids'=>'237', 'stock_id'=>'1', 'Qty'=>'50', 'name'=>'prova100', 'description'=>'This is a try 100', 'short_description'=>'Tryed100', 'has_options'=>'0', 'store_id'=>'1', 'product_type_id'=>'simple', 'weight'=>'50', 'status'=>'1', 'visibility'=>'2', 'price'=>"500", 'tax_class_id'=>null, 'attribute_set_id'=>'4', 'entity_type_id'=>'4', 'created_at'=>'2015-04-27 13:21:03', 'updated_at'=>'2015-04-27 13:21:03', 'meta_title'=>null, 'url_key'=>'prova100', 'url_path'=>'prova100', 'Type'=>'Simple Product', 'type_id'=>'simple', 'meta_keyword'=>'prova, 100', 'website_id'=>'1', 'weight'=>'1', 'meta_description'=>'prova 100');
$model = Mage::getModel('Catalog/Product')->setData($data);
//$model->setStockData(array('product_id'=>'1', 'is_in_stock'=>'1', 'Qty'=>'50', 'manage_stock'=>'1'));
$model->setStockData(array(
'is_in_stock' => '1',
'qty' => '50',
'manage_stock' => '1'
));
try {
$insertId = $model->save()->getId();
//$insertId = $model->save();
echo "Data successfully inserted. Insert ID: ".(string)$insertId;
//$collection_of_products = Mage::getModel('catalog/product');
} catch (Exception $e){
echo $e->getMessage();
}
?>
Ovviamente è un prodotto di prova.
Se qualcuno mi può anche indicare quali sono i campi superflui mi fa un piacere. Sono entrato da poco nel mondo di magento e abbiamo fretta di mettere il nostro sito online.
Grazie,
Roberto.
Ciao!
Anche io sono nuovo. Ma perché, dato che sei nuovo, non metti i prodotti senza mettere mano al codice??
Ciao!
Anche io sono nuovo. Ma perché, dato che sei nuovo, non metti i prodotti senza mettere mano al codice??
Ciao,
Bella domanda!
Se vuoi puoi aiutarmi tu a mettere migliaia di prodotti nel database.
Roberto.
Ok devi inserire migliaia di prodotti?
una informazione in più.
Da dove li prendi queste migliaia di prodotti? hai un database? puoi farne un cvs con il database? perché non importi semplicemente?
[edit] altra domanda: hai verificato che nel db siano presenti tutti i dati dei prodotti? che estensioni usi? che versione di magento usi? alcune estensioni vanno in conflitto con il nuovo magento tipo SCP (Organic qualcosa è il namespace). Non ti si vede nessun tipo di prodotto o solo i configurabili? ecc.[/edit]
visto che in questi forum la media di risposte è di 0,5 al giorno e di queste risposte forse il 10% risolve il problema magari riusciamo a trovare soluzioni alternative... se ti va spiega qual'è il tuo obiettivo e quali sono le tue condizioni attuali. Anche io devo inserire migliaia di articoli nel mio sito ma posso inserirli solo a mano perché dal vecchio database non riesco a fare una correlazione degli articoli o gli upsell o le immagini...
Ok,
Dal codice mi sembravano ovvie alcune cose che evidentemente non sono.
I Prodotti li scarico da un file in ftp che poi dezzippo e ne prendo i valori che mi servono per creare un csv. Tutto questo ovviamente da codice.
Il problema è che i file aggiornati mi vengono ogni 4 ore ed è impensabile ogni volta caricare il tutto perché nel frattempo devo gestire fornitori, vendite e altre attività.
Inoltre il file dezzippato in realtà contiene 5 file che devo unire per creare un unico csv.
Il processo deve essere totalmente automatizzato.
Una volta preso il file e trasformatolo in csv, devo prendere le immagini da un altro fornitore ... ma questa è ancora un'altra storia.
Prima di tutto quel codice che ho postato mi mette tutti i prodotti nel backend, ma ho notato una cosa. Il codice non mi setta 2 cose fondamentalmente, il codice SKU e il valore di websites. Quando setto a mano il valore di websites, i prodotti si vedono anche nel frontend, con o senza codice sku.
Quindi la domanda fondamentale diventa questa:
Come posso settare il valore di websites?
La versione di magento che uso è la 1.9.1.1
Non posso importare direttamente il file csv creato perché mi dà un problema con il codice sku mancante.
Da codice non creo il codice sku perché nei file originali non esiste e non so se è un codice che posso creare random o ha un significato particolare.
Spero di aver chiarito un pò di più la questione.
Roberto.
Ciao,
stavo cercando una risposta al mio problema e ho trovato questa tua domanda che di sicuro mi servirà anche a me nei prossimi giorni.
Ho trovato on line questa guida che non so se puo' essere utile
http://www.magentiamo.it/import-di-prodotti-in-magento/
http://www.ciamberlini.it/importare-prodotti-magmi/
Fammi sapere se ci sei riuscito, che magari ci scambiamo info.
Io ho un problema nell'avanzamento checkout non va oltre la spedizione e sto testando il portale.
Ho cercato nel forum ma non ho trovato granché, ma questo forum è attivo?
Sono appena iscritta
Un saluto.
Magento necessita di un riferimento univoco per il prodotto. E lo stesso ti servirà per far sì che ricarichi sempre gli stessi prodotti senza generare doppioni. Normalmente tutti i cataloghi dei fornitori presentano uno o più codici identificativi unici per quel prodotto. Se non esiste devi fare uno script che generi lo sku a partire da un valore che SICURAMENTE sarà unico per ogni prodotto.
Tieni presente che l'unico parametro che Magento usa per identificare il prodtto è proprio lo sku. Se dovessi creare più profili di importazioni per vari dati (es. per le immagini) lo sku è necessario per capire quale prodotto associare un determinato attributo.
Normalmente tutti i cataloghi dei fornitori presentano uno o più codici identificativi unici per quel prodotto.
Ciao,
Ho provato a vedere i miei file da cui creo il csv.
Effettivamente ci sono diversi codici identificativi. dal "codice" al "codice prodotto" al "codice produttore" ma il primo campo contiene un numero che ha ben 13 cifre mentre gli altri due contengono numeri che hanno 10 cifre.
Per il php non è un problema ma a quanto pare per magento sì, perché non me li inserisce.
Nel campo sku, non mi appare nulla. Ho provato a fare una conversione in int: $SKU = (int) $valore ma ha prodotto un codice SKU uguale a 0 (zero) per tutti i prodotti. Ho provato a convertirlo in stringa: $SKU = (string) $valore ma con questo metodo il codice SKU non viene inserito.
Che valore viene accettato per lo SKU (numero, stringa o cosa)? e come posso inserirlo nel database?
grazie.
è un dato alfanumerico quindi puoi inserire la stringa che preferisci. Piuttosto bisogna capire che cosa non va in quella fase di import. Purtroppo non ho mai fatto un import in que lmodo e non ti saprei aiutare. Prova a vedere se gli stessi dati vengono letti dal sistema di importazione classico di magento da backend.
Magari ti dà maggiori indicazioni sul problema :/
Ciao,
Gli errori più piccoli sono sempre quelli che danno più problemi...
Ho risolto il problema dello sku...
Cerco di spiegare il problema che mi trovo nel modo più preciso possibile.
Avevo configurato un negozio in più per provare la grafica del sito e quando andavo a mettere i prodotti mi chiedeva quel parametro (websites) che non riuscivo a settare.
Essendo un negozio di prova, l'ho eliminato e nell'inserimento dei prodotti non mi appare più il parametro websites.
Ma, nonostante aver risolto il problema del parametro che non settavo, e il problema dello sku, i prodotti non vogliono saperne di visualizzarsi nel frontend.
Qualche idea?
Roberto.
P.S.: Se qualcosa non è chiara, chiedete pure.