Magento清空一类(1.5)

时间:2011-05-23 10:06:23

标签: magento categories

我想知道是否有快速方法从特定类别中删除所有产品? 或者我是否坚持让所有类别的产品然后循环并从每个类别中删除类别?

我打算在cron上运行它。

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

谢谢!

3 个答案:

答案 0 :(得分:1)

这样做的方法确实是遍历每个产品;

设置一个类别ID数组$ ids 然后使用Mage_Catalog_Model_Product中的setCategoryIds($ ids)方法设置产品的类别ID。

如果您想要实际的代码,或者您正在寻找不同的方式,请告诉我。

祝你好运。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这没有经过测试,但是这样的事情应该这样做:

$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();
}