我想让我的脚本正常工作。我基本上将CSV中的数据导入mysql,工作正常。然后,我想将这些数据与Magmi及其Datapump API一起导入,并将正确的属性导入magento。
我的脚本基本上可以正常工作,但导入的时间非常多。我认为这是因为每次导入都会再次调用API。
<?php
header('Content-Type: text/html; charset=utf-8');
require_once("/volume1/web/bwebshop/magmi/inc/magmi_defs.php");
require_once("/volume1/web/bwebshop/magmi/integration/inc/magmi_datapump.php");
$host="";
$user="";
$pw="";
$connection=mysql_connect($host, $user, $pw) or die ("Verbindungsversuch fehlgeschlagen");
$mysqldb="xxxxx"; // Gewuenschte Datenbank angeben
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
mysql_query('SET CHARACTER SET \'UTF8\'');
$sql = "SELECT d,q FROM test";
$result = mysql_query($sql);
$list = array();
while ($row = mysql_fetch_array($result)) {
$list[] = $row;
$dp=Magmi_DataPumpFactory::getDataPumpInstance("productimport");
$dp->beginImportSession("categories","create");
$item = array("sku"=> $row['q'], "categories"=> $row['d'], "attribute_set"=> "webshop"));
$dp->ingest($item);
$dp->endImportSession();
}
我认为最后四行应该在其他地方。我究竟做错了什么?帮助将不胜感激。感谢。
答案 0 :(得分:2)
您的项目循环中有$dp=Magmi_DataPumpFactory::getDataPumpInstance("productimport");
,$dp->beginImportSession();
和$dp->endImportSession();
。
这些只应在每次导入时调用一次(不是针对每个项目)。尝试将它们移到项目循环之外。
类似的东西:
$dp=Magmi_DataPumpFactory::getDataPumpInstance("productimport");
$dp->beginImportSession("categories","create");
while ($row = mysql_fetch_array($result)) {
$list[] = $row;
$item = array("sku"=> $row['q'], "categories"=> $row['d'], "attribute_set"=> "webshop"));
$dp->ingest($item);
}
$dp->endImportSession();