所有产品(类别和子类别产品)都计入 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 - 按属性分类产品

删除magento中的空类别

Magento 类别页面未包含属性过滤器中的所有产品

从类别中加载所有产品并按 Magento 中选定的多选属性进行过滤

sql 查询以检索Magento中的所有产品ID及其所属的类别。

无法在 magento 2.4.3 中查看类别下的产品