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 错误,要么是更改类别的方式错误。

4

1 回答 1

0

在您显示的代码部分中,首先加载产品,然后加载产品的副本,更改该副本的类别,保存副本,然后保存未设置类别的原始文件.

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

于 2014-07-07T14:55:26.090 回答