无法按代码设置产品类别

时间:2014-07-07 14:06:35

标签: php magento magento-1.9

根据

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或改变类别的错误方式。

1 个答案:

答案 0 :(得分:0)

在您显示的代码部分中,首先加载产品,然后加载产品的副本,更改该副本的类别,保存副本然后,将原始文件保存在类别中已经设定好了。

我们的想法是使用 $ product-> load()完全加载 $ product (我不认为仅对类别有用)并更改该产品上的所有内容然后保存。或者,保持您所做的逻辑,而不是保存原始产品。在我看来,问题来自于双重保存,产品没有变化。