根据
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 :(得分:0)
在您显示的代码部分中,首先加载产品,然后加载产品的副本,更改该副本的类别,保存副本然后,将原始文件保存在类别中已经设定好了。
我们的想法是使用 $ product-> load()完全加载 $ product (我不认为仅对类别有用)并更改该产品上的所有内容然后保存。或者,保持您所做的逻辑,而不是保存原始产品。在我看来,问题来自于双重保存,产品没有变化。