所有产品(类别和子类别产品)都计入 magento 中的类别列表页面
Posted
技术标签:
【中文标题】所有产品(类别和子类别产品)都计入 magento 中的类别列表页面【英文标题】:All products (category and sub category products) count on category list page in magento 【发布时间】:2014-03-16 07:00:34 【问题描述】:我想显示类别和子类别下所有产品的计数。我不能为此目的使用工具栏。我知道默认的 magento 工具栏有代码,但我想使用自定义代码仅获取计数。我尝试通过调用block方法getTotalNum()
获取收藏,但没有成功。在此先感谢
【问题讨论】:
您能告诉我们您打算将代码放入哪个 .phtml 文件中以显示总数吗?还是您打算创建一个完全独立的区块? @Malachy 如果您看到我的问题标题,我提到我想在类别列表页面上显示该计数。 【参考方案1】:在list.phtml
你可以试试这个代码:
//get the current layer
$layer = Mage::getSingleton('catalog/layer');
//get the current category
$currentCategory = $this->getLayer()->getCurrentCategory();
//get the subcategories
$categoriesChildren = $currentCategory->getChildrenCategories(); //means get your children
$categoriesSiblings = $currentCategory->getParentCategory()->getChildrenCategories(); //means get your siblings
//(decide if you want to use siblings or children, here we use children)
//get the product collection for the current layer
$productCollection = Mage::getResourceModel('catalog/product_collection');
$layer->prepareProductCollection($productCollection);
//count up
$productCollection->addCountToCategories($categoriesChildren); //note the function accepts a collection of categories and counts them all
//display
echo("<ol>".php_EOL);
foreach ($categoriesChildren as $key=>$_category)
if($_category->getIsActive())
echo("<li>".PHP_EOL);
echo("<a href=\"".$this->getCategoryUrl($_category)."\">".$this->htmlEscape($_category->getName()));
echo("(".$_category->getProductCount().")</a>".PHP_EOL);
echo("</li>".PHP_EOL);
echo("</ol>".PHP_EOL);
//done
我想你可能想稍微自定义一下。
【讨论】:
以上是关于所有产品(类别和子类别产品)都计入 magento 中的类别列表页面的主要内容,如果未能解决你的问题,请参考以下文章
从类别中加载所有产品并按 Magento 中选定的多选属性进行过滤