Vortrag produktimport

Preview:

Citation preview

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

Kontakt

Damian Luszczymak@daimcity+49-160-94 90 19 32info@icyapp.de

Donnerstag, 11. November 2010