我正在使用下面的代码循环遍历 Magento (CE 1.7.2) 中的所有“底层”类别,以查找(并可选择删除)空类别。
<?php
require_once $_SERVER['DOCUMENT_ROOT']."/app/Mage.php";
Mage::app('admin');
$categoryCollection = Mage::getModel('catalog/category')->getCollection()
->addFieldToFilter('level', array('gteq' => 5))
->addAttributeToSelect('name')
;
foreach($categoryCollection as $category) {
if ($category->getProductCount() === 0) {
print "delete ".$category['name']. "<br>" ;
//$category->delete();
}
}
?>
我想修改代码以也或替代地查找仅包含禁用产品的类别。
我尝试了以下操作,但它运行了 5 分钟然后超时 - 我怀疑它没有做我认为应该做的事情。
foreach($categoryCollection as $category)
{
$products = Mage::getModel('catalog/category')->load($category)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter(
'status',
array('eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
);
$count = $products->getSize();
谁能建议我可以添加到此循环中以查找仅包含禁用产品的类别的正确代码。
我没有使用扁平的产品或类别结构。