如何将给定属性的值设置为所有产品的相同值(有效)?
有效率我的意思是在一次交易中,不必遍历整个产品系列。
过去我曾使用Mage_Catalog_Model_Product_Action
批量更新产品,运行速度非常快
Mage::getSingleton('catalog/product_action')
->updateAttributes($productIds, array('some_attribute' => 'some_value'), 0)
但它要求您指定要更新的产品ID,在MySQL语句中创建一个巨大的WHERE entity_id IN(...)
子句。有没有办法为一切做到这一点?
答案 0 :(得分:2)
之前我遇到过同样的问题,当我在商店中添加11096产品(可下载的产品)时,客户端告诉我在产品中添加新属性,因此我创建了1个属性(类型为是/否)并设置为属性集。现在我的问题是如何iIedit所有产品并设置该属性是或否。如果我没有设置那么值为null所以我写了几行代码。
请检查此代码可能对您有所帮助。
$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);
这对我有用。我希望它对你有用
答案 1 :(得分:-3)
Amasty“批量产品操作”将允许您以各种方式编辑产品属性。这就是我们使用的,一旦我们让可配置产品定价层正常运行,它将成为一个生命保护者。