Hallo Zusammen,
wie versprochen, kommt hier noch ein kleiner Erfahrungsbericht zu meiner Magento-Migration und der Anwendung des Migrationstools:
Ausgangssituation Magento:
Wir sind angefangen damals mit Magento 1.3 und mittlerweile auf der Version 1.9.2.4 angekommen. Wir besaßen nur wenige filterbaren Attribute (5 Stück). Ansonsten hatten wir noch viele weitere Attribute die nicht filterbar waren, dennoch nicht nur aus Einfachtextfeldern bestehen sondern auch Selectboxen mit Mehrauswahlen. Die Herstellerverwaltung in Magento haben wir nicht genutzt, da es das damals in der Version 1.3 nicht gab und wir nie migriert haben. Wir arbeiteten aus einer Kombination (Herstellerattribut und dazugehörigen Attributen).
Bezüglich der Migration sind wir folgendermaßen vorgegangen:
Kunden:
Die Kunden haben wir 1 zu 1 mit dem Migrationstool importieren können. Alle relevanten Daten wurden ohne Probleme übernommen
Bestellungen:
Auf den Bestellimport haben wir verzichtet, da diese teilweise unvollständig übertragen worden sind. Ich habe mit dem Migrationstool sehr viele Bestellungen erhalten, die anscheinend keine Positionen hatten. Das hängt damit zusammen, dass im Magento System Erweiterungen genutzt wurden, die vom Migrationstool nicht bedacht werden können.
Hersteller:
Wie erwähnt waren meine Hersteller in Magento in Kategorien hinterlegt. Daher habe ich mir ein einmaliges kleines PHP-Skript geschrieben, dass meine entsprechenden Kategorien ausliest und per API von Shopware importiert. Anbei eine Idee dazu:
getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('parent_id',array('in' => array(25,29,35,49,77,103,166,174,188,221,239,401,500,547,578,633,664,707,765)));
$export_file = "log_import_suppliers.log"; // assumes that you're running from the web root. var/ is typically writable
$export = fopen($export_file, 'w') or die("Permissions error."); // open the file for writing. if you see the error then check the folder permissions.
$supplier_file = "supplier_shopware.csv"; // assumes that you're running from the web root. var/ is typically writable
$export_supplier = fopen($supplier_file, 'w') or die("Permissions error."); // open the file for writing. if you see the error then check the folder permissions.
$output = "";
$output = date('d.m.Y H:i') . "Start Importing manufactuers";
$output .= "\r\n"; // add end of line
fwrite($export, $output); // write the file header with the column names
$outputSupplier = "id~name\r\n"; // column names. end with a newline.
fwrite($export_supplier, $outputSupplier); // write the file header with the column names
foreach ($categories as $category) {
$apiImportCall = $apiClient->post('manufacturers', array(
'name' => $category->getName(),
'link' => $category->getLinkweingut(),
'description' => $category->getDescription(),
'metaTitle' => $category->getMetaTitle(),
'metaKeywords' => $category->getMetaKeywords(),
'metaDescription' => $category->getMetaDescription(),
'attribute' => array(
'attr' => $category->getAdresserzeuger()
)
));
$output = date('d.m.Y H:i') . " Result Importing: " . $category->getName() . " --> " . $apiImportCall["success"];
$output .= "\r\n"; // add end of line
fwrite($export, $output);
if($apiImportCall["success"] == 1)
{
$outputSupplier = ""; // re-initialize $output on each iteration
$outputSupplier .= '"' .$apiImportCall["data"]["id"]. '"~'; // no quote - integer
$outputSupplier .= '"'.$category->getName().'"'; // quotes - string
$outputSupplier .= "\r\n"; // add end of line
fwrite($export_supplier, $outputSupplier);
}
}
echo "Finished import";
fclose($export); // close the file handle.
fclose($export_supplier);
Produktstammdaten, Kategorien und Produktbilder:
Den initialen Import der Produktstammdaten inkl. Kategorien habe ich komplett mit dem Migrationstool durchführen können. Hier handelte es sich tatsächlich nur um die Stammdaten ohne Attribute aus dem Magento-System, da ich die Zuordnung nicht sinnvoll hinbekommen habe mit dem Migrationstool.