我使用的是Magento 1.4.0.1。我有21000多个简单的产品,每个产品都属于一个单独的类别。在我的网站上有数百个类别。有些产品属于多个类别。有没有办法让我以编程方式将产品添加到多个类别中?
发布于 2011-06-29 03:50:06
在PHP代码中,您可以在导入它们时将它们放入类别中。
假设您有一个名为$product的产品和一个名为$category_id的类别ID
您可以通过执行以下操作设置产品所属的类别
$categories = array($category_id);
$product->setCategoryIds($categories);
$product->save();
如果产品已经有了类别,并且你想再添加一个类别,那么你可以像这样使用getCategoryIds()
:
$categories = $product->getCategoryIds();
$categories[] = $categoryId;
$product->setCategoryIds($categories);
$product->save();
或者,正如Joshua Peck在评论中提到的,您可以使用category_api
模型在类别中添加或删除产品,而不会影响其当前的类别分配:
Mage::getSingleton('catalog/category_api')
->assignProduct($category->getId(),$product->getId());
Mage::getSingleton('catalog/category_api')
->removeProduct($category->getId(),$product->getId());
发布于 2015-04-30 03:25:34
我只想补充一下,你可以使用getSingleton类别接口来删除和添加:
要从类别中删除产品,请执行以下操作:
Mage::getSingleton('catalog/category_api')->removeProduct($category->getId(),$product->getId());
要将产品添加到类别中:
Mage::getSingleton('catalog/category_api')->assignProduct($category->getId(),$product->getId());
这不会覆盖该产品已在的任何类别
发布于 2011-06-27 18:54:58
您可以编写一个模块(这需要时间,但在导入数据时可能会更快),或者您可以将一些东西与API放在一起(较少涉及Magento编程,但在导入数据时可能会更慢)。
你的起点--你已经知道了什么,你的时间有多宝贵,以及你需要多长时间运行一次更新,这应该决定你的选择。
以下是将产品添加到类别的Magento API文档(参见页脚的示例):
http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_category
https://stackoverflow.com/questions/6491548
复制相似问题