magento:显示父节点下的所有产品



在一个magento网站上,我们有一个菜单,我们希望始终显示父节点下的所有产品,假设我们有


-类别1
-类别2
----子类别2-1
----子类别2-2

单击类别2时,我们希望看到分配到类别2、2-1和2-2的所有产品。当点击Root时,它应该显示商店的所有产品。但是,当从商店的其他部分中选择category1时,我们希望有一个默认行为。

通常,我们只会将产品分为不同的类别,但由于我们只希望在网站的一个部分出现这种行为,我不知道如何处理。

有什么想法吗?

提前谢谢。

您可以使用类别的"Anchor"属性来实现这一点,此设置控制Magento如何从其应用的类别以下的类别中"汇总"产品,并在这样做的过程中设置分层导航控件的范围(如果您正在使用它们)。

要按照描述工作,您需要在父类别下的每个子类别上适当地勾选/取消勾选"是锚点"框。

转到目录>管理类别>选择类别>显示设置>是否为锚点?(勾选)

为了获得你想要的行为,你需要设置"是锚"框,如下所示:

Root - tick
- category 1 - untick
- category 2 - tick
-- foreach child of category 2 - tick

然后重新索引任何与类别相关的内容。

显示顶级和所有子类别:

$collection= Mage::helper('catalog/category');
$categories = $collection->getStoreCategories();
$currentCategory = Mage::registry('current_category');

<ul>
    <?php foreach($categories as $category): ?>
    <li><a href="<?php echo $collection->getCategoryUrl($category) ?>">
        <?php echo $category->getName() ?>
        </a>
    <?php $category = Mage::getModel('catalog/category')->load($category->getId()) ?>
    <?php $subCategory = $category->getChildrenCategories() ?>
    <?php if(count($subCategory > 0)): ?>
        <ul>
            <?php foreach($subCategory as $_subCategory):) ?>
            <li>
                <a href="<?php echo $collection->getCategoryUrl($_subCategory) ?>">
                   <?php echo $_subCategory->getName() ?>
                </a>
            </li>
            <?php endforeach; ?>
        </ul>
     <?php endif; ?>
     </li>
     <?php endforeach; ?>
 </ul>

相关内容

最新更新