如何获取magento中每个产品的最后一级类别

sha*_*ank 2 product categories magento-1.9

我正在尝试获取列表页面上每个产品的最后一级类别名称及其产品数量。解释如下-

Category
                -> Sub-category 1
                          ->Sub-sub-category 11   -> Product 1
                          ->Sub-sub-category 12 
                              -> Sub-sub-sub-category 13  ->Product 2  
                -> Sub-category 2
                          ->Sub-sub-category 21 
                              -> Sub-sub-sub-category 22  ->Product 3 
                          ->Sub-sub-category 23   -> Product 4
Run Code Online (Sandbox Code Playgroud)

我只想获取最后一级的类别“ Sub-sub-category 11 ”、“ Sub-sub-sub-category 13 ”、“ Sub-sub-sub-category 22 ”和“ Sub-sub-category 23 ”产品1、产品2、产品3、产品4的类别。我发现下面的链接获取magento中产品的最后一级类别名称,但它只获得第三级类别。

Odd*_*rew 5

有点晚了,但这可以非常简单地完成,当您想要获取给定产品的最深级别的类别时,请使用此函数:

public function getProductLastLevelCategory(Mage_Catalog_Model_Product $product)
{
    /** @var Mage_Catalog_Model_Resource_Category_Collection $categories */
    $categories = $product->getCategoryCollection()
        ->addAttributeToSelect('*')
        ->addOrder('level');

   return $categories->getFirstItem();
}
Run Code Online (Sandbox Code Playgroud)

基本集合包含给定产品所属的所有类别,技巧依赖于按级别对它们进行排序(隐式 DESC)。