在父类别页面上的子类别下的magento产品组

时间:2013-01-03 16:53:26

标签: magento magento-1.7

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

(点击父类别'服装')

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

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

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

我的设置是父类别'服装'有三个孩子&衬衫'裤子'袜子'当服装'显示类别页面,它只列出所有产品,而不将它们分组到各自的子类别下。

我正在使用Magento Community 1.7.0.2

1 个答案:

答案 0 :(得分: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;

如果您需要进一步的帮助,请告诉我们