Там может быть два пути, мы можем найти количество продуктов категории.
$collection = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('name')
->addAttributeToSelect('level')
->addAttributeToSelect('entity_id');
foreach($collection as $cat)
$cat->getProductCount();
Это даст вам количество продуктов только для самой глубокой категории. Так, например, у вас есть следующие категории. считая дерево подобный структура.
Одежда (6) -> Хлопок (3) -> Женщины (2)
Результат возвращается из части кода, приведенной выше. Одежды (3) Хлопка (1) Женщин (2)
Есть три продукта, непосредственно связанный только с одеждой, 1 только с и 2 с хлопковыми только женщинами. Поэтому он просто игнорирует подкатегории.
Другой способ - подсчет товаров с точки зрения продуктов.
$current_category = Mage::getModel('catalog/category')->load($cat->getEntityId());
$productCount = Mage::getModel('catalog/product')->getCollection()
->addFieldToFilter('manufacturer',$this->manufacturer["id"])
->addFieldToFilter('visibility',4)
->addFieldToFilter('status',1)
->addCategoryFilter($current_category)->getSize();
Это дает нам дополнительное преимущество фильтрации атрибутов продукта. Однако в приведенном выше сценарии возвращенный счет будет немного отличаться.
Он вернет одежду (6), так как у нее есть 3 продукта, связанных с собой и еще 3 продукта для подкатегорий. Аналогично Хлопок (3) Женщины (2).
Так что для эффективных результатов было бы неплохо использовать смесь обоих.
Это именно оно: D –