dongwopu8210 2014-07-07 14:06
浏览 19
已采纳

无法按代码设置产品类别

According to

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

ID of the default product category is '2' but:

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();
    (...)

doesn't change product's category at all. It's either wrong ID or wrong way of changing the category.

  • 写回答

1条回答 默认 最新

  • douren6874 2014-07-07 14:55
    关注

    in the part of code you show, first you load a product, then you load a copy of the product, you change the categories of that copy, you save the copy and then, you save the original where the categories haven't been set.

    the idea is to load the $product completely with $product->load() (I do not think it is necessary just for categories) and to change everything on that product and then save it. Or, keep the logic you did and not save the original product. The problem comes, in my opinion, from the double save with an unchanged product.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?