Vortrag produktimport
-
Upload
damian-luszczymak -
Category
Technology
-
view
1.056 -
download
0
Transcript of Vortrag produktimport
Mythos ProduktimportDamian Luszczymak
Donnerstag, 11. November 2010
Damian Luszczymak• Fachinformatiker
• Wirtschaftsinformatik
• PHP, Java, Objective-C
• Magento seit Beta
• Datenimport / Suche
• Magento Solr Extension
http://connect.get-the-code.deDonnerstag, 11. November 2010
Warum?
• Initialimport
•Warenwirtschaft
• Keiner hat Lust dies einzutippen!
• 4 mögliche Wege
Donnerstag, 11. November 2010
Möglichkeiten
•Dataflow
• SOAP API
•Model
• RAW Datenbank
Donnerstag, 11. November 2010
•CSV mit Attributen
• Einstellung im Magento Backend
•Nur Simple Products
•Cron kann eingerichtet werden
Dataflow
Donnerstag, 11. November 2010
Dataflow
Donnerstag, 11. November 2010
Dataflow
Donnerstag, 11. November 2010
• Problem ist immer die CSV ! Wegen Leerzeichen oder Zeilenumbrüchen
Dataflow
Donnerstag, 11. November 2010
• SOAP API vI v2 (v3)
•Unterstützt jede Programmiersprache
•Overhead
SOAP API
Donnerstag, 11. November 2010
• recht langsamen
• Probleme je nach Sprache mit wsdl
• schwer zu debuggen,erweitern (IMHO)
SOAP API
Donnerstag, 11. November 2010
SOAP API
$proxy = new SoapClient('http://magentohost/api/soap/?wsdl');
$sessionId = $proxy->login('apiUser', 'apiKey');
Donnerstag, 11. November 2010
SOAP API$attributeSets = $proxy->call($sessionId,'product_attribute_set.list');$set = current($attributeSets);$newProductData = array( 'name' => 'name of product', 'websites' => array(1), // array(1,2,3,...) 'short_description' => 'short description', 'description' => 'description', 'price' => 12.05 );
Donnerstag, 11. November 2010
SOAP API
// Create new product$proxy->call($sessionId, 'product.create', array('simple', $set['set_id'], 'sku_of_product', $newProductData));
// Get info of created product$proxy->call($sessionId, 'product.info', 'sku_of_product');
Donnerstag, 11. November 2010
• schneller als SOAP aber langsam
•Upgradefähig
• Robust
• alles was Magento macht, ist möglich
Model API
Donnerstag, 11. November 2010
Model API
require_once("../app/Mage.php");Mage::app('admin');
$product = Mage::getModel('catalog/product');$existSku = $product->getIdBySku($int_sku);
Donnerstag, 11. November 2010
Model API
$product->setWebsiteIds(array('0')); $product->setAttributeSetId(4);$product->setSku($int_sku);$product->setTypeId('simple');$product->setName('Meet Magento');$product->setDescription('Alles ganz duffte');$product->setShortDescription('jep'); $product->setPrice($arr_products2[8]);
Donnerstag, 11. November 2010
Model API
$product->setWeight(10);$product->setTaxClassId(2);
//0-Disabled; 1-Enabled$product->setStatus(1);
// 1-Nowhere; 2-Catalog; 3-Search; 4-Catalog/Search$product->setVisibility(4);
Donnerstag, 11. November 2010
Model API
$stockData['qty'] = 1;$stockData['is_in_stock'] = 1;$stockData['manage_stock'] = 0;$product->setStockData($stockData);
$product->save();
Donnerstag, 11. November 2010
•man muss die Magento DB Struktur kennen
• nicht upgradefähig
• dafür schneller beim import
• eigene Logik muss implementiert werden
Raw DB
Donnerstag, 11. November 2010
Raw DB
insert into catalog_product_entity(entity_type_id,attribute_set_id,sku,created_at) ...
Soll ich die Struktur genauer erklären? Ist das gewünscht?
Donnerstag, 11. November 2010
•Wenn man schnell importieren will autoindexer deaktivieren
• nach manuell anstossen
Optimierungen
Donnerstag, 11. November 2010
uRapidFlow• das schnelle Dataflow
• 80.000 simple Products 20min
•Magento Backend werden Attribute zugewiesen
•CSV Dateien, läd automatisch Bilder herunter (optional)
Donnerstag, 11. November 2010
MIP
• Egal ob CSV,XML,SOAP
•XSLT basierend
• schneller als normal API
• robust
Donnerstag, 11. November 2010
Anmerkungen oder Fragen?
Donnerstag, 11. November 2010