3

メインサイトの同じルートカテゴリを使用するサイトがたくさんあります。追加された各製品は、追加されたサイト(wow。)とメインサイトに追加されます。ただし、サイトごとのカテゴリは、そのサイトに商品がある場合にのみ表示されるようにしたいと思います。

私が持っている場合:

Category1
Category2
Category3

ただし、Site1にはCategory1とCategory2の製品しかありませんが、Site2とSite3にはCategory2とCategory3の製品があります。Category1 / 2のみをSite1に表示し、Category2/3のみをSite2とSite3にのみ表示したい。

ただし、Site1/2/3のすべての製品もメインサイトに追加されるため。メインサイトにはCategory1/2/3が表示されます。

メインサイトに直接製品が追加されることはありません。それは単に他のサイトのリポジトリとして機能します。

さて、これを有効にする本当に簡単な方法がない場合(私が確信しているように)、テンプレートが表示されているサイトにのみ製品があるカテゴリをリストする独自のテーマを書くのと同じくらい簡単でしょうか?

私はMagentoが使用するテクノロジーの初心者ではありません。したがって、カスタムコードを書くことは問題ありません。ただし、将来、Magentoの新しいバージョンでコードベースのアップグレードが簡単になるように、あまり編集したくありません。

ありがとう、
-nelson

4

2 に答える 2

0

これは、役立つカテゴリを非表示にする簡単な方法です。

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; ?>
于 2012-07-08T18:34:53.510 に答える