2010-07-13 55 views
2

我正在尝试将Magento的一些功能集成到我的自定义CMS中,以方便我的客户更新其某些产品。我试图找出如何以相同的方式(IE,颜色,大小,包装等属性)保存对产品的更改。这可能通过法师来完成吗?Magento - 使用法师编辑产品?

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

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

有任何人尝试过呢?

回答

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

希望这有助于大家。

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

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

$this->model->save(); 
+0

是否可以编辑产品上的任何属性? IE,我卖酒瓶,想改变一些自定义属性,如年份,ABV或类型(红/白)? – LinuxGnut 2010-07-14 12:31:53

+1

是的,可以通过这种方式更改任何属性。一个例外可能是该产品的图像,因为它们更复杂一些。 – 2010-07-14 14:13:03

+0

加载产品后,我可以通过执行$ this-> model-> getResource() - > getAttribute('manufacturer') - > getFrontend() - >来获取我需要编辑的属性,例如“manufacturer”的getValue($产品)。如何在检索后设置该值? – LinuxGnut 2010-07-14 17:20:02