Вопрос

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

Если у меня есть:

Category1
Category2
Category3

Но у Site1 есть продукты только в Category1 и Category2, тогда как у Site2 и Site3 есть продукты в Category2 и Category3;Я хочу, чтобы Category1 / 2 отображалась только на Site1, и только Category2 / 3 отображалась только на Site2 и Site3.

Однако, поскольку все товары на Сайтах1/2 /3 также добавляются на Основной сайт;на главном сайте будет указана категория 1/2/3.

Никакие товары не добавляются непосредственно на Основной сайт.Он просто служит хранилищем для других сайтов.

Теперь, если нет действительно простого способа включить это (в чем я уверен), было бы так же просто, как написать мою собственную тему, в которой перечислены категории, в которых есть товары только на сайте, на котором отображается шаблон?

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

Спасибо,
-нельсон

Это было полезно?

Решение

Что ж, что вы можете сделать, так это создать свой собственный помощник с коллекцией (через модель), а затем отфильтровать коллекцию на основе количества продуктов.

Только черновик, но я опубликовал некоторый код в другом вопросе, связанном с magento: Товары Magento по категориям.Вы можете видеть, как и когда он добавляет количество продуктов, я бы отфильтровал еще раз, когда это будет сделано.

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

Пока вы остаетесь в своем скине / шаблоне, серьезных проблем с обновлением не возникает.

Другие советы

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

Исходное содержимое файла top.phtml должно выглядеть следующим образом.

<?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
<?php if($_menu): ?>
<div>
    <ul id="nav">
        <?php echo $_menu ?>
    </ul>
</div>
<?php endif ?>

Замените приведенный выше код на этот код ниже.

<?php $_menu = ''?>
<?php $excludeCat = array(); ?>
<?php foreach ($this->getStoreCategories() as $_category): ?>
    <?php if($_category->getProductCount() <=0) {
          $excludeCat[] = $_category->getId(); 
    }
    ?>
    <?php $_menu .= $this->drawItem($_category) ?>
<?php endforeach ?>
<?php if ($_menu): ?>
<div>
    <ul id="nav">
    <?php foreach ($this->getStoreCategories() as $_category): ?>
    <?php if (!in_array($_category->getId(), $excludeCat)) : ?> <?php echo $this->drawItem($_category) ?>
    <?php endif; ?>
    <?php endforeach ?>
    </ul>
</div>
<?php endif; ?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top