有人知道为什么api调用需要这么多时间来创建一个产品吗?
对于一个客户来说,每件产品需要1-3秒,而另一位客户的代码是在30秒到1分之间。
我是从Alan 脚本的文章“为Magento的肥皂洗涤泡沫”中得到的。
因此,您可以跳过层SOAP或XML,并在核心中使用直接调用。
更新(1):我看到索引是很久以前构建的(几个星期),在它运行得更快之后。但不要太快。每件产品6秒,再重复3秒,只为产品的创建。在其他3秒钟内,更新股票api并添加媒体api。
更新(2):索引被重建(在程序中太自动),但是今天每个产品需要40秒(怎么可能,webshop不慢)
更新(3):这是一个缓存问题,每次缓存(存储缓存)被清除,再次3-6秒(第一次没有问题,大部分产品,每晚晚些时候这将是几个新产品)。
更新(4):是的,它使用Magmi的速度非常快,每小时有18.000种产品,所有的图像和额外的图像都被创建(包括自己的ERP扩展记录)。但是插件gallery_images的目录问题花了很多时间才开始工作,我的程序是从根+子目录运行的,而Magmi将root +子目录作为“根”,所以我必须更改Magmi,也必须确定创建产品是否没有例外,因为我必须在之后做一些事情(为ERP扩展创建记录)。
更新(5):Magento (创建产品)和Magmi有什么区别?Magmi直接在数据库中创建记录,但是如果扩展做额外的事情--核心扩展--可能包含在Magento API (create product)中,我认为这类事情你必须自己做,因此我觉得Magento API (create product)也更安全吗?(第一次慢速,在正常之后,但在任何版本中都是安全的)
问:我创建这个是因为我在论坛上读到,Magmi和Martinez速度很快,但两者都有问题,你不能做所有的事情。所以我只用Magmi来更新产品,速度非常快(Martinez也是)。,但这是真的吗?或者你通常也可以用Magmi或Martinez轻松地创建产品?(我的程序对我来说总是第二种可能性)。但我现在去试试这个(Magmi),因为这一切都太慢了。
答:是的,现在看来,用Magmi来创造产品是很容易的。我还不知道我错过什么因为其他的扩展..。
代码:
$model = Mage::getModel('catalog/product_api');
$type = 'simple';
$product_attribute_set_id = '9';
$sku = ($products_array[$p][0]);
$data = array('short_description' => $products_array[$p][3],
'name' => $products_array[$p][1],
'weight' => ((float)str_replace(",", ".", $products_array[$p][16])),
'price' => ((float)str_replace(",", ".", $products_array[$p][7])) * $profit,
'cost' => ((float)str_replace(",", ".", $products_array[$p][8])),
'description' => $products_array[$p][2],
'tax_class_id' => $tax_class_id,
'status' => '1',
'eancode' => $products_array[$p][4],
'afas_sku' => $products_array[$p][0],
'leverancier' => $supplier,
'inhoud_verpakking' => $products_array[$p][0],
'size' => $products_array[$p][13],
'material' => $products_array[$p][15],
'kleur' => $color,
'manufacturer' => $manufacturer,
'delivery' => $delivery,
'pptitleadditional' => $products_array[$p][24],
'meta_title' => $products_array[$p][1] . " | " . $products_array[$p][23] . " | xxxxx.nl",
'meta_description' => "xxx.",
'categories' => array('0' => $cat_new_prod1[(string)( $products_array[$p][0])],
'1' => $cat_new_prod2[(string)( $products_array[$p][0])],
'2' => $cat_new_prod3[(string)( $products_array[$p][0])],
'3' => $cat_new_prod4[(string)( $products_array[$p][0])],
'4' => $cat_new_prod5[(string)( $products_array[$p][0])]
)
);
try {
$new_product_id = $model->create($type,$product_attribute_set_id,$sku,$data);
} catch (Exception $e) { // sku already used
userErrorHandler(E_USER_WARNING, $e->getMessage(), $e->getFile(), $e->getLine(), "");
continue;
}发布于 2013-03-04 11:17:11
看看Magmi的"项目起源“条目,你就会明白为什么要花那么多时间。
Magmi Datapump API非常适合于简单地修改脚本。
https://stackoverflow.com/questions/15193839
复制相似问题