我创建了自己的模块,想要调用updateAttributes方法:
Mage::getSingleton('catalog/product_action')
->updateAttributes(array($product_id), array('sku','123'), 0);
我收到以下错误: 致命错误:在第69行的[...] / httpdocs / app / code / core / Mage / Catalog / Model / Resource / Product / Action.php中的非对象上调用成员函数getAttributeId()
如何访问此方法? 非常感谢你提前!
答案 0 :(得分:0)
在我们更新产品属性时,传统方法如下:
<?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() issue
- 更新 -
仔细检查要传递的属性的数组语法。
<?php
Mage::getSingleton('catalog/product_action')
->updateAttributes(array(
$data['product_id']),
array("sku" => $data['sku'], 'price' => $data['price']),
$storeId);
?>