如何在不加载整个产品模型的情况下更改产品的属性值?

时间:2013-08-27 10:55:49

标签: php magento magento-1.7

检索该值非常简单:

$itemIsConsolidated = $productResource->getAttributeRawValue($productId, 'my_attr_code', Mage_Core_Model_App::ADMIN_STORE_ID);

如何更改(更新)值而不加载产品型号(catalog/product)并致电setData()

1 个答案:

答案 0 :(得分:7)

您可以通过模拟产品网格中的“更新属性”操作来执行此操作:

Mage::getModel('catalog/product_action')->updateAttributes(array($productId), array('my_attr_code'=>'Some value here'), 0);

以下是它的工作原理。 第一个参数是您要更新的产品ID数组。在你的情况下,它是一个具有一个id的数组 第二个参数是一个数组,其中包含您想要更改的属性及其值。如果您的数组看起来像这样

,您可以同时更改多个属性
array(
    'some_attr'=>'Some value',
    'some_other_attr'=>'Some other value'
)

第三个参数是您为其更改值的商店视图。 0表示'默认值'。