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

Dor*_*Dor 0 php magento magento-1.7

检索该值很简单:

$itemIsConsolidated = $productResource->getAttributeRawValue($productId, 'my_attr_code', Mage_Core_Model_App::ADMIN_STORE_ID);
Run Code Online (Sandbox Code Playgroud)

如何在不加载产品型号()和调用的情况下更改(更新)值catalog/productsetData()

Mar*_*ius 8

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

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

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

array(
    'some_attr'=>'Some value',
    'some_other_attr'=>'Some other value'
)
Run Code Online (Sandbox Code Playgroud)

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