1

我正在尝试让我的脚本正常工作。我基本上将数据从 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();



}  

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

4

1 回答 1

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();
于 2013-05-14T14:55:40.460 回答