Имейте в виду, что метод проверяет каждую категорию в отдельности, используя модель каталога / категории. Итак, если у вас много категорий, вы можете переписать код, чтобы не столкнуться с проблемами производительности. В небольшом магазине, где мы работаем, это работает нормально.
Можно ли поместить это в расширение, которое можно поместить в локальную папку? Беспокоит код, который будет перезаписан в будущих обновлениях Magento.
MagentoMac
10
Нет встроенной функции для скрытия пустых категорий (но вы можете вручную выбрать «Активен» = «Нет» для каждой категории в области администрирования-> каталог-> управлять категориями)
Это выглядит хорошо, но по какой-то причине не работает в нашем магазине ... есть идеи, как отладить? Не получаю никаких сообщений об ошибках. Следовал инструкциям к майке, но без изменений во внешнем интерфейсе. Уже отключили, затем снова включили компилятор, очистили кеш и т. Д.
MagentoMac
4
Если вы просто хотите скрыть их в навигации по каталогу, вы можете добавить условие if в шаблон, чтобы проверить количество продуктов в этой категории.
Вы можете выполнить следующий sql, чтобы отключить все категории без продуктов.
UPDATE `catalog_category_entity_int` AS `status`
INNER JOIN `eav_attribute` AS `attr` ON `attr`.`attribute_code`='is_active'
AND `attr`.`entity_type_id`=3
AND `status`.`attribute_id`=`attr`.`attribute_id`
SET `status`.`value`= IF((SELECT COUNT(`index`.`product_id`)
FROM `catalog_category_product_index` AS `index`
WHERE `index`.`category_id`=`status`.`entity_id` GROUP BY `index`.`category_id`)>0,1,0)
WHERE `status`.`store_id`=0
то, что я сделал, чтобы скрыть пустые категории, это переписать Mage_Catalog_Model_Resource_Category_Treeload()функцию. Я должен присоединиться к коллекции продуктов с коллекцией категорий, как показано ниже.
Ответы:
Самый простой способ сделать это - переписать только
Mage_Catalog_Block_Navigation
блок:=> В методе
_renderCategoryMenuItemHtml()
вы хотите заменить цикл=> с этим:
=> и аналогично в методе
renderCategoriesMenuHtml()
заменить код=> с этим:
=> Наконец, добавьте метод, который мы только что использовали в нашем коде:
Имейте в виду, что метод проверяет каждую категорию в отдельности, используя модель каталога / категории. Итак, если у вас много категорий, вы можете переписать код, чтобы не столкнуться с проблемами производительности. В небольшом магазине, где мы работаем, это работает нормально.
источник
Нет встроенной функции для скрытия пустых категорий (но вы можете вручную выбрать «Активен» = «Нет» для каждой категории в области администрирования-> каталог-> управлять категориями)
Вот ссылка на отличный пост из блога Джоша Пратцки , где он написал пошаговое руководство о том, как сделать расширение для этой цели.
источник
Если вы просто хотите скрыть их в навигации по каталогу, вы можете добавить условие if в шаблон, чтобы проверить количество продуктов в этой категории.
источник
Может быть, это тоже поможет.
Перейдите на сервер вашего интернет-магазина.
Метка
Display Mode
может быть установлена наисточник
Чтобы скрыть пустую категорию в верхнем меню, выполните следующие действия:
источник
Для меня сработало создание дерева категорий шаблона и реализация функции условия, которая отображает дерево категорий:
источник
Вы можете выполнить следующий sql, чтобы отключить все категории без продуктов.
Более подробную информацию вы можете найти здесь http://quicktips.ru/all/hide-all-categories-without-products-and-show-categories-with-pr/
источник
то, что я сделал, чтобы скрыть пустые категории, это переписать
Mage_Catalog_Model_Resource_Category_Tree
load()
функцию. Я должен присоединиться к коллекции продуктов с коллекцией категорий, как показано ниже.добавить этот код раньше
$arrNodes = $this->_conn->fetchAll($select);
этой строкой.И оберните этот код этим условием, этот класс также вызывается из внешней и внутренней модели.
Я добавил дополнительное поле product_count, которое содержит фактическое количество активных продуктов.
Я использую сторонний модуль для отображения категории в верхнем меню, и я поставил условие на основе количества продуктов при отображении меню.
источник