西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

解决magento保存产品时耗时很长的问题

时间:2016-03-02 09:35来源: 作者: 点击:
以前我在更新magento产品属性值(拿price为例)的时候,通常会这样做: foreach($product_ids as $id){ $product = Mage::getModel(catalog/product)-load($id); $product-setPrice($price)-save(); } 因为之前网站产品很少,
以前我在更新magento产品属性值(拿price为例)的时候,通常会这样做:
 
foreach($product_ids as $id){  
    $product = Mage::getModel('catalog/product')->load($id);  
    $product->setPrice($price)->save();  
}  
 
因为之前网站产品很少,也就几百个,foreach下来,不会感觉这段code很慢,后来产品逐渐增多,每次走到这里,动辄就会消耗几个小时;echo了一下save,每个产品约耗费5秒,如果有1万件产品,foreach完成就是14个小时,mysql都几乎就要gone 掉了;
上网search了一下发现magento有一个直接更新Attribute的function,改code之后为
 
$store_id = Mage::app()->getStore('default')->getId();  
foreach($product_ids as $id){  
    Mage::getSingleton('catalog/product_action')->updateAttributes(array($id), array('price'=>$price), $store_id);  
}  
 
这段code要比前面的节省5倍左右的时间,很好的解决了我的需求。
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容