2010-07-13 25 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

相關問題