Magento - 使用Mage编辑产品?

时间:2010-07-13 14:46:54

标签: php magento e-commerce

我正在尝试将Magento的某些功能集成到我的自定义CMS中,以便我的客户更轻松地更新他们的某些产品。

我已经编写了类来检索我需要的所有数据信息,但我正在试图找出如何以相同的方式保存对产品的更改(IE,颜色,大小,包装等属性)。这可以通过法师来做吗?

现在我基本上构建了一个类如下,然后有各种函数来过滤产品,会话和生成缩略图...但我似乎无法找到任何编辑产品的东西。

Mage::app();
$this->model = Mage::getModel('catalog/product');

有没有其他人尝过这个?

2 个答案:

答案 0 :(得分:5)

您需要先加载特定产品。您可以使用load()方法并传入产品ID:

来实现
$this->model = Mage::getModel('catalog/product')->load(1111);

然后您可以设置(修改)您的产品数据:

$this->model->setName('New Product Name');
$this->model->setPrice(99.99);
$this->model->setShortDescription('New Short Description');

然后只需运行save()方法来保存产品:

$this->model->save();

答案 1 :(得分:2)

所以经过多次麻烦之后,我拼凑了一些有用的代码:

function setAttribute($pid,$options)
{
  Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
  $this->model = Mage::getModel('catalog/product')->load($pid);
  foreach ($options as $k=>$v)
  {
    $this->model->setData($k,$v);
  }
  $this->model->save();
}

您传递了产品ID以及您要为所述产品更新的数据数组 如下所示:

$options = array('labels'=>"No",
'sizee_us_gal'=>1.98,
'size_l'=>7.5,
'makes_us_gal'=>7,
'makes_l'=>23,
'timeframe_weeks'=>4,
'composition'=>"grapes",
'packed'=>"case of 2"
);

希望这有助于每个人。