我有使用主站点的同根类别很多网站。添加的每个产品添加到它被添加到(WOW),也是主要站点的站点。不过,我想在每个站点的类别是否有产品在该网站上只出现。

如果我有:

Category1
Category2
Category3

但是,站点1只具有产品组别和类别2,而站点2和Site3具有产品类别2和类别3;我只想要组别/ 2到上Site1和仅类别2/3似乎只出现在站点2和Site3。

然而,因为所有的产品在站点1/2/3也被添加到主站点;主站点将列出组别/ 2/3

没有产品被直接添加到主站点。它只是简单地用作用于其他站点的存储库。

现在,如果没有非常简单的方法,以使这个(我敢肯定),那会是因为写我自己的主题,其中列出了只产品正在显示模板上的网站类别一样简单?

我不在于Magento的使用的技术是新手;所以编写自定义代码是没有问题的。我会,不过,不喜欢编辑它那么多让我升级代码库将与更高版本的Magento在未来更容易。

谢谢, 点击 -nelson

有帮助吗?

解决方案

那么,你可以做的是,根据产品计数和收集(通过模型)创建了自己的助手,然后过滤收集。

只有一个草稿,但我已经张贴在另一个Magento的相关问题的一些代码: Magento的产品通过类别的。你可以看到怎样及何时将乘积数,我会筛选时再次做到这一点。

我不认为这是在性能方面非常“大”,所以不是用他们的模型类,你的可能的写自己的,扩展它并添加默认的过滤器,或者直接shortcutting到数据库中。

只要你留在你的皮肤/模板,没有更大的问题与更新。

其他提示

这是一个简单的解决方案,以隐藏类别,可以帮助你。

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