使用datapump api将产品从mysql导入magento非常慢

时间:2013-05-14 10:04:58

标签: php mysql magento magmi

我想让我的脚本正常工作。我基本上将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();



}  

我认为最后四行应该在其他地方。我究竟做错了什么?帮助将不胜感激。感谢。

1 个答案:

答案 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();