magento: показать все продукты ниже родительского узла - PullRequest
2 голосов
/ 15 февраля 2012

На сайте magento у нас есть одно меню, в котором мы хотели бы всегда показывать все продукты ниже родительского узла, скажем, у нас есть

Root
- категория 1
- категория 2
---- подкатегория 2-1
---- подкатегория 2-2

При нажатии на категорию 2 мы хотели бы видеть все продукты, назначенные на категории 2, 2-1 и 2-2. При нажатии на Root, он должен показывать ВСЕ товары магазина. Однако при выборе категории 1 в других разделах магазина нам бы хотелось иметь поведение по умолчанию.

Обычно мы просто назначаем продукт различным категориям, но поскольку мы хотим, чтобы такое поведение было только в одном разделе сайта, я не уверен, как с этим справиться.

Есть идеи?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 29 августа 2012

Для этого можно использовать атрибут «Якорь» категории, этот параметр контролирует, как Magento «сворачивает» продукты из категорий ниже той, к которой он применяется, и при этом также устанавливает область действия для многоуровневых элементов управления навигацией (есливы используете их).

Чтобы работать так, как описано, вам необходимо поставить галочку / снять галочку напротив каждой дочерней категории под родительским.

Перейти в Каталог> УправлениеКатегории> Выберите категорию> Настройки отображения> Является ли привязка?(отметьте галочкой)

Чтобы получить требуемое поведение, вам необходимо установить поле «Is Anchor» следующим образом:

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

Затем переиндексировать все категории, связанные с ними.

0 голосов
/ 15 февраля 2012

Отображение верхнего уровня и всех подкатегорий:

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