Magento updateAttributes在自己的模块IndexController中不起作用

时间:2014-01-11 23:52:12

标签: php magento update-attributes

我创建了自己的模块,想要调用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()

如何访问此方法? 非常感谢你提前!

1 个答案:

答案 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);
?>