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

时间:2012-02-15 11:29:16

标签: magento categories product

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


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

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

通常情况下,我们只会将产品分配给不同类别 - 但由于我们只想在网站的一个部分上使用此行为,因此我不确定如何处理此问题。

有什么想法吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以使用类别的“锚点”属性来实现此目的,此设置控制Magento如何从应用的类别下方的类别“卷起”产品,并且这样做也为分层导航控件设置了范围(如果你正在使用它们。)

要按照描述进行操作,您需要在父级下的每个子类别上勾选/取消选中“Is Anchor”框。

转到目录>管理Catagories>选择一个类别>显示设置>是锚吗? (蜱)

要获得您需要设置“Is Anchor”框后的行为,如下所示:

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

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

答案 1 :(得分:-1)

显示顶级和所有子类别:

$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>