2014-07-07 81 views
0

設置產品的類別根據默認的產品類別的無法通過代碼

Mage::app()->getWebsite(true)->getDefaultStore()->getRootCategoryId(); 

ID是'2'但:

public function initProduct(Varien_Event_Observer $observer) 
// catalog_product_new_action event 
{ 
    $product = $observer->getEvent()->getProduct(); 
    (...) 

    $productCatalog = Mage::getModel('catalog/product')->load($product->getId());   
    $productCatalog->setCategoryIds(array("2")); 
    $productCatalog->save(); 
    $product->save(); 
    (...) 

不會改變產品的類別都沒有。這可能是錯誤的ID或改變類別的錯誤方式。

+0

所以'2'是你的根類別...根類別可以有產品嗎? –

回答

0

在您展示的部分代碼中,首先加載產品,然後加載產品的副本,更改該副本的類別,保存副本,然後將原始位置保存在類別避風港沒有設置。

的想法是與$產品 - >負載()(我不認爲這是必要的只是類別),並改變在該產品上的一切,然後將其保存完全加載$產品。或者,保持您所做的邏輯並不保存原始產品。在我看來,問題來自於雙重保存和未改變的產品。