【问题标题】:Unable to set product's category by code无法通过代码设置产品类别
【发布时间】:2014-07-07 14:06:34
【问题描述】:

根据

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

【问题讨论】:

  • 所以'2'是你的根目录...根目录可以有产品吗?

标签: php magento magento-1.9


【解决方案1】:

在您显示的代码部分中,首先加载产品,然后加载产品的副本,更改该副本的类别,保存副本,然后将原件保存在类别没有的地方没有设置。

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

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2018-07-23
    • 2012-07-15
    相关资源
    最近更新 更多