2013-05-02 64 views
1

如何将给定属性的值设置为所有产品(高效)的相同值?以编程方式更新所有产品属性

通过高效我的意思是在一次交易中,不必遍历整个产品集合。

在过去,我已经使用Mage_Catalog_Model_Product_Action对产品的批量更新,而且运行非常快

Mage::getSingleton('catalog/product_action') 
    ->updateAttributes($productIds, array('some_attribute' => 'some_value'), 0) 

但是,它需要你指定要更新其产品ID,创造了一个巨大的WHERE entity_id IN(...)条款MySQL语句。有没有办法做到这一切?

+0

这将更新产品,以相同的属性值工作;假设您必须将所有产品更新为不同/唯一的值 - 这将如何工作? – 2017-06-17 15:32:32

回答

-3

Amasty“Mass Product Actions”将允许您以各种方式编辑产品属性。这就是我们所使用的,一旦我们获得了可配置产品定价层的正常工作,它将成为一种拯救生命。

http://amasty.com/mass-product-actions.html

+2

你错过了“编程”这个词 – aki 2014-08-26 13:13:37

2

我收到了同样的问题,当我在我的商店增加11096产品(下载产品),然后客户端告诉我要在产品中添加新的属性,所以我创建1个属性(类型为是/否)和设置为属性集。现在我的问题是如何iIedit所有的产品,并设置该属性是否。如果我没有设置,那么值为空,所以我写了几行代码。

请检查此代码可能对您有所帮助。

$ProductId = Mage::getResourceModel('catalog/product_collection') - 
addAttributeToFilter('type_id', Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE) - 
getAllIds(); //Now create an array of attribute_code => values 

$attributeData = array("my_attribute_code" =>"my_attribute_value"); 

//Set the store to affect. I used admin to change all default values 

$storeId = 0; 

//Now Update the attribute for the given products. 

Mage::getSingleton('catalog/product_action') ->updateAttributes($ProductId, $attributeData, $storeId); 

这是工作的我,我希望它会为你

相关问题