2013-05-02 65 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); 

這是工作的我,我希望它會爲你

相關問題