首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以编程方式将Magento产品添加到类别

以编程方式将Magento产品添加到类别
EN

Stack Overflow用户
提问于 2011-06-27 18:32:42
回答 7查看 54.2K关注 0票数 19

我使用的是Magento 1.4.0.1。我有21000多个简单的产品,每个产品都属于一个单独的类别。在我的网站上有数百个类别。有些产品属于多个类别。有没有办法让我以编程方式将产品添加到多个类别中?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-06-29 03:50:06

在PHP代码中,您可以在导入它们时将它们放入类别中。

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

您可以通过执行以下操作设置产品所属的类别

代码语言:javascript
复制
$categories = array($category_id);
$product->setCategoryIds($categories);
$product->save();

如果产品已经有了类别,并且你想再添加一个类别,那么你可以像这样使用getCategoryIds()

代码语言:javascript
复制
$categories = $product->getCategoryIds();
$categories[] = $categoryId;
$product->setCategoryIds($categories);
$product->save();

或者,正如Joshua Peck在评论中提到的,您可以使用category_api模型在类别中添加或删除产品,而不会影响其当前的类别分配:

代码语言:javascript
复制
Mage::getSingleton('catalog/category_api')
  ->assignProduct($category->getId(),$p‌​roduct->getId());

Mage::getSingleton('catalog/category_api')
  ->removeProduct($category->getId(),$p‌​roduct->getId());
票数 56
EN

Stack Overflow用户

发布于 2015-04-30 03:25:34

我只想补充一下,你可以使用getSingleton类别接口来删除和添加:

要从类别中删除产品,请执行以下操作:

代码语言:javascript
复制
Mage::getSingleton('catalog/category_api')->removeProduct($category->getId(),$p‌​roduct->getId());

要将产品添加到类别中:

代码语言:javascript
复制
Mage::getSingleton('catalog/category_api')->assignProduct($category->getId(),$p‌​roduct->getId());

这不会覆盖该产品已在的任何类别

票数 19
EN

Stack Overflow用户

发布于 2011-06-27 18:54:58

您可以编写一个模块(这需要时间,但在导入数据时可能会更快),或者您可以将一些东西与API放在一起(较少涉及Magento编程,但在导入数据时可能会更慢)。

你的起点--你已经知道了什么,你的时间有多宝贵,以及你需要多长时间运行一次更新,这应该决定你的选择。

以下是将产品添加到类别的Magento API文档(参见页脚的示例):

http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_category

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6491548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档