我想按当前价格的具体百分比更新所有产品价格。我按照百分比得到以下代码更新价格
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('price');
foreach ($products as $product) {
$product->setPrice($product->getPrice() * 1.03);
$product->save();
echo $product->getId()."updated Sucess";
}
运作良好。但是完成上述过程需要花费很多时间,因为我们的商店里有很多产品。有时它会返回超时错误。所以我想通过拆分这些产品系列来执行上述操作,例如,如果我们有 1000个产品,请执行以下操作
Collect 1st 100 products from product collections
Update price of those products
Then collect next 100 products
Update price of those products
任何人都有想法通过某些ID来获取产品系列?
答案 0 :(得分:9)
$_productCOllection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('entity_id', array(
'from' => $startPrOID,
'to' => $EndPrOID
))
->load();
答案 1 :(得分:0)
有时使用magento(或任何其他框架,最好直接查询数据库而不是使用系统。
使用此:
SELECT * FROM `eav_attribute` WHERE `attribute_code` = ‘price’
您将获得price
属性id
。
然后用这个:
SELECT * FROM `catalog_product_entity_decimal`
WHERE `attribute_id` = [above id] and `store_id` = [id of your store]
您将获得给定商店的所有价格(您可以使用简单的MySQL UPDATE
查询进行更新。