Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保存Magento需要很长时间_Magento - Fatal编程技术网

保存Magento需要很长时间

保存Magento需要很长时间,magento,Magento,在Magento中,我编写了许多小的命令行脚本,用于在许多产品上设置新属性。我发现更新900个产品需要大约6个小时才能完成 加载单个产品所需的时间与我的速度一样快,但一旦我做了更改,保存的动作需要很长时间 我附上我如何加载的情况下,我可以做一些事情,以更好地优化过程的产品。这里的任何帮助都将不胜感激 $product = Mage::getModel('catalog/product')->load($magento_id); $product->setMadeInUsa(1); t

在Magento中,我编写了许多小的命令行脚本,用于在许多产品上设置新属性。我发现更新900个产品需要大约6个小时才能完成

加载单个产品所需的时间与我的速度一样快,但一旦我做了更改,保存的动作需要很长时间

我附上我如何加载的情况下,我可以做一些事情,以更好地优化过程的产品。这里的任何帮助都将不胜感激

$product = Mage::getModel('catalog/product')->load($magento_id);
$product->setMadeInUsa(1);
try {
    $product->save();
} catch(Exception $e) {
    echo "ERROR: " . $e->getMessage() . "\n";
}

代码运行时不会出错,但会花费很长时间。

请尝试先将索引设置为手动,然后在更新完成后重新索引。这将提高性能。但是,如果您要经常导入,最终的解决方案是遵循更新属性mass action中的代码思想,该操作经过优化,可以一次保存多个产品

Mage::getSingleton('catalog/product_action')
            ->updateAttributes(array($product->getId()), $attributesData, $storeId);
此代码仅更新要更改的属性。第一个参数是产品ID数组,第二个参数是属性名称和值数组,第三个参数是要更新的存储ID

这比保存整个模型快得多