通过magento中的某些ID来获取产品集合

时间:2014-04-08 06:45:33

标签: php magento

我想按当前价格的具体百分比更新所有产品价格。我按照百分比得到以下代码更新价格

$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来获取产品系列?

2 个答案:

答案 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查询进行更新。