2

当有人点击父类别页面时,我希望那里列出的所有产品都按其子类别划分,例如:

(点击父类别“服装”)

衬衫:[衬衫#1] [衬衫#2] [衬衫#3]

裤子:[裤子#1][裤子#2][裤子#3]

袜子:[袜子 #1] [袜子 #2] [袜子 #3]

我的设置是父类别“服装”有三个孩子“衬衫”、“裤子”和“袜子”。当显示“服装”类别页面时,它仅列出所有产品,而不将它们分组在各自的子类别下。

我正在使用 Magento 社区 1.7.0.2

4

1 回答 1

0

一种方法:

获取所有子类别

$category_model = Mage::getModel('catalog/category')->load($currentCategoryId); 
$all_child_categories = $category_model->getResource()->getAllChildren($_category);

获取所有类别的产品

$productCollection = Mage::getResourceModel('catalog/product_collection')
                       ->addCategoryFilter($category);

编辑:

为了获得子类别产品,请按照以下步骤操作:

转到此模板文件(您可以在此处放置下面列出的所有代码):

catalog/product/list.phtml

获取当前类别 ID:

$currentCategory = Mage::registry('current_category');
$currentCategoryID = $currentCategory->getEntityId();

加载当前类别模型以获取类别子项:

$category_model = Mage::getModel('catalog/category')->load($currentCategoryID);

获取所有子类别 ID:

$all_child_categories = $category_model->getResource()->getAllChildren($category_model );

循环遍历每个子 id 并加载类别及其子项:

foreach ($all_child_categories as $child_id):
    $child_cat = Mage::getModel('catalog/category')->load($child_id);
    $products =  Mage::getResourceModel('catalog/product_collection')
                   ->addCategoryFilter($child_cat);
endforeach;

让我们知道您是否需要进一步的帮助

于 2013-01-03T17:01:22.563 回答