Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何以编程方式将新产品分配到默认类别?_Php_Magento - Fatal编程技术网

Php 如何以编程方式将新产品分配到默认类别?

Php 如何以编程方式将新产品分配到默认类别?,php,magento,Php,Magento,自 返回我写的'2' Mage::app()->getWebsite(true)->getDefaultStore()->getRootCategoryId(); 但它不会更改产品的类别-在类别选项卡中,复选框“默认类别”没有勾选。假设您有一个名为$product的产品和一个名为$category\u ID的类别ID 您可以通过执行以下操作将其归入一个类别 $productCatalog = Mage::getModel('catalog/product')->load

返回我写的
'2'

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

但它不会更改产品的类别-在类别选项卡中,复选框“默认类别”没有勾选。

假设您有一个名为$product的产品和一个名为$category\u ID的类别ID

您可以通过执行以下操作将其归入一个类别

$productCatalog = Mage::getModel('catalog/product')->load($product->getId());
$productCatalog->setCategoryIds('2')->save();

我认为问题在于,您将category id包含在一个报价中。该方法需要一个整数数组作为其参数。所以试试这个

$product->setCategoryIds(array($category_id));
$product->save();

$productCatalog->setCategoryIds(数组(2))不会改变任何东西它应该可以工作。因为我已经在我的magento环境中测试了它
$product=$observer->getEvent()->getProduct()
你确定你的
productCatalog
保存了一个产品吗?当然,
var\u dump($productCatalog)
会重新保存一个巨大的
对象(Mage\u Catalog\u Model\u product)
这几乎会杀死我的浏览器,试试
var\u dump(productCatalog->getCategoryIds())
看看它是否保存了任何数据?
$category_id = Mage::app()->getWebsite(true)->getDefaultStore()->getRootCategoryId();
$productCatalog = Mage::getModel('catalog/product')->load($product->getId());
$productCatalog->setCategoryIds(array($category_id));
$productCatalog->save();