Php Magento-使用Mage编辑产品?

Php Magento-使用Mage编辑产品?,php,magento,e-commerce,Php,Magento,E Commerce,我正在尝试将Magento的一些功能集成到我的定制CMS中,以便于我的客户更新他们的一些产品 我已经编写了一些类来检索我需要的所有数据信息,但我正在尝试找出如何以相同的方式保存对产品的更改(例如,属性,如颜色、大小、包装)。这可以通过法师来完成吗 现在我基本上构建了一个如下所示的类,然后使用各种函数来过滤产品、会话和生成缩略图。。。但我似乎找不到任何关于编辑产品的东西 Mage::app() $this->model=Mage::getModel('catalog/product'); 以前

我正在尝试将Magento的一些功能集成到我的定制CMS中,以便于我的客户更新他们的一些产品

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

现在我基本上构建了一个如下所示的类,然后使用各种函数来过滤产品、会话和生成缩略图。。。但我似乎找不到任何关于编辑产品的东西


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


以前有人试过吗?

您需要先加载特定的产品。可以通过使用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();

因此,经过大量的讨论,我拼凑了一些有效的代码:

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"
);

希望这对每个人都有帮助。

是否可以编辑产品的任何属性?也就是说,我正在销售瓶装葡萄酒,希望更改一些自定义属性,如年份、ABV或类型(红色/白色)?是的,可以通过这种方式更改任何属性。唯一的例外可能是产品的图像,因为它们有点复杂。加载产品后,我可以通过执行$this->model->getResource()->getAttribute('manufacturer')->getAttribute('manufacturer')->getFrontend()->getValue($product)检索需要编辑的属性,例如“manufacturer”。检索后如何设置该值?@LinuxGnut加载产品后,可以使用setData('manufacturer','newData')