Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
Magento清空类别(1.5)_Magento_Categories - Fatal编程技术网

Magento清空类别(1.5)

Magento清空类别(1.5),magento,categories,Magento,Categories,我想知道是否有一种快速的方法可以从某一特定类别中删除所有产品? 还是我一直在获取所有类别的产品,然后循环浏览并从每个类别中删除该类别 我计划在cron上运行这个 编辑:目前我正在使用setCategoryIds(),但这似乎是一种非常低效的方法 谢谢 我不知道cron,但是您可以使用导入/导出功能。或者,根据这些类别中的产品数量,您可以在管理员的产品网格中使用批量处理功能。我有一个模块可以按类别过滤这个网格:如果你想要它,请告诉我,我会上传到某个地方。哦,批量属性更新无法使用该类别。但是进口/出

我想知道是否有一种快速的方法可以从某一特定类别中删除所有产品? 还是我一直在获取所有类别的产品,然后循环浏览并从每个类别中删除该类别

我计划在cron上运行这个

编辑:目前我正在使用setCategoryIds(),但这似乎是一种非常低效的方法


谢谢

我不知道cron,但是您可以使用导入/导出功能。或者,根据这些类别中的产品数量,您可以在管理员的产品网格中使用批量处理功能。我有一个模块可以按类别过滤这个网格:如果你想要它,请告诉我,我会上传到某个地方。哦,批量属性更新无法使用该类别。但是进口/出口会很好。

这样做的方法确实是循环每种产品

设置类别ID的数组,$ID 然后使用Mage_Catalog_Model_产品中的setCategoryIds($ids)方法设置产品的类别id

让我知道,如果你想为这个实际的代码,或者如果你正在寻找一个不同的方式


祝你好运。

这没有经过测试,但像这样的东西应该可以:

$category = Mage::getModel("catalog/category")->load($id);
$products = $category->getProductCollection();
foreach($products as $product) {
    $productCategories = $product->getCategoryIds();
    $index = array_search($productCategories, $id);
    unset($productCategories[$index]);
    $product->setCategoryIds($productCategories);
    $product->save();
}

谢谢,但这确实需要通过cron作业运行。谢谢你的回答。实际上,我使用的是setCategoryIds(),这似乎是一种非常费力的清空类别的方法,我希望有一种更快的方法可以使用。(我可能应该提到这一点。我会编辑这个问题。)谢谢你的回答(不过有点输入错误:$category->getCategoryIds();应该是$product->getCategoryIds();)