Magento добавить список брендов в выпадающее меню категории

Я пытаюсь добавить список брендов в раскрывающемся списке каждой категории из главного меню. Я считаю, что это будет рассматриваться как "мега-меню".

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

Бренды создаются двумя способами:

  1. Все продукты имеют атрибут "бренд". Поэтому мы могли бы попытаться получить все продукты в категории и отобразить список всех брендов, связанных с продуктами в этой категории. Это должно было бы включать многоуровневую навигацию, чтобы при выборе этого пункта меню отображался фильтр элементов из этой категории И этого атрибута бренда.

  2. Я думаю, что этот метод будет проще - у каждого бренда уже есть своя собственная категория, и каждый товар относится как к основной категории, так и к соответствующей категории бренда. Первоначально это было сделано, чтобы мы могли показать большой список всех брендов. Есть ли функция в Magento внутри цикла навигации, чтобы получить "другие выбранные категории"? Например, если элемент находится в категории A, в раскрывающемся списке отображаются все подкатегории, а также любые другие связанные категории верхнего уровня, выбранные в продуктах.

Я пробовал различные решения, которые включали изменение Navigation.php (magento 1.6), но я мог получить его только для отображения ВСЕХ брендов в магазине, а не только брендов в определенной категории. Смотрите код ниже:

// Navigation.php code
// render children
    $htmlChildren = '';
    $j = 0;
    foreach ($activeChildren as $child) {
    $htmlChildren .= $this->_renderCategoryMenuItemHtml(
    $child,
    ($level + 1),
    ($j == $activeChildrenCount - 1),
    ($j == 0),
    false,
    $outermostItemClass,
    $childrenWrapClass,
    $noEventAttributes
    );
    $j++;
    }
    if (!empty($htmlChildren)) {
    if ($childrenWrapClass) {
    $html[] = '<div class="' . $childrenWrapClass . '">';
    }
    $html[] = '<ul class="level' . $level . '">';
    $html[] = $htmlChildren;

    // My modifications start here

    $product = Mage::getModel('catalog/product');
    $attributes = Mage::getResourceModel('eav/entity_attribute_collection')
    ->setEntityTypeFilter($product->getResource()->getTypeId())
    ->addFieldToFilter('attribute_code', 'brands');
    $attribute = $attributes->getFirstItem()->setEntity($product->getResource());
    $manufacturers = $attribute->getSource()->getAllOptions(false);
    $html[] = '<ol id="nav-drop-brands">';
    foreach ($manufacturers as $manufacturer) {
    $html[] = '<li><a href="http://www.domain.com/catalogsearch/advanced/result?manufacturer[]=';
    $html[] = $manufacturer['value'];
    $html[] = '">';
    $html[] = $manufacturer['label'];
    $html[] = '</a></li>';
    }
    $html[] = '</ol>';

    // end of my modifications 

    $html[] = '</ul>';
    if ($childrenWrapClass) {
    $html[] = '</div>';
    }
    }

    $html[] = '</li>';

    $html = implode("\n", $html);
    return $html;
    }

1 ответ

Вы можете пойти по этому:
Добавить категорию
Затем добавьте подкатегорию
Затем добавьте подкатегорию
(Это будет ваше имя всех брендов, которое является только категорией)

Чтобы получить эти категории вы можете перейти по этой ссылке.

Надеюсь, это поможет вам.

Другие вопросы по тегам