我已经创建了自己的模块,并想调用updateAttributes方法:
Mage::getSingleton('catalog/product_action')
->updateAttributes(array($product_id), array('sku','123'), 0);
我收到以下错误:致命错误:在 [...] 中的非对象上调用成员函数 getAttributeId()/httpdocs/app/code/core/Mage/Catalog/Model/Resource/Product/Action.php 在第 69 行
如何访问此方法?提前非常感谢!
在更新产品属性时,传统方法如下:
<?php
//Load the Product
$product = Mage::getModel('catalog/product')->load($product_id)); //By ID
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $oldSku);//By SKU
//Update product attributes via Setters
$product->setSku($newSku);
$product->setName('New product name');
$product->setShortDescription(addslashes("short description here."));
$product->setDescription(addslashes("long description"));
//Perform Save
$product->save();
?>
请查看以下内容作为另一个参考: Magento getSingleton() vs getModel() 问题
--更新--
仔细检查要传递的属性的数组语法。
<?php
Mage::getSingleton('catalog/product_action')
->updateAttributes(array(
$data['product_id']),
array("sku" => $data['sku'], 'price' => $data['price']),
$storeId);
?>