【问题标题】:Delete category method is not working删除类别方法不起作用
【发布时间】:2013-06-03 10:43:06
【问题描述】:

我想删除空类别和子类别。我尝试了以下脚本。但它没有从管理面板中删除类别。我的magento版本是1.7.0.2

$categoryCollection = Mage::getModel('catalog/category')->getCollection()
    ->addFieldToFilter('level', array('gteq' => 2))
;

foreach($categoryCollection as $category) {
    if ($category->getProductCount() === 0) {
        $category->delete();
        //$category->setId($category->getId())->delete();
    }
}

【问题讨论】:

    标签: magento collections magento-1.7 categories catalog


    【解决方案1】:

    试试

    $categoryCollection = Mage::getModel('catalog/category')->getCollection()
        ->addFieldToFilter('level', array('gteq' => 2))
    ;
    
    foreach($categoryCollection as $category) {
        if (!$category->getProductCount()) {
            $category->delete()->save();
            //$category->setId($category->getId())->delete();
        }
    }
    

    【讨论】:

      【解决方案2】:

      您需要明确要求将产品计数添加到您的类别集合中:

      $categoryCollection = Mage::getModel('catalog/category')
          ->getCollection()
          ->addFieldToFilter('level', array('gteq' => 2))
          ->setLoadProductCount(true);
      

      否则$category->getProductCount() 将返回null,而不是=== 0

      【讨论】:

        猜你喜欢
        • 2014-02-18
        • 2018-12-22
        • 2016-08-30
        • 2012-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        相关资源
        最近更新 更多