【问题标题】:Hide categories that have no products magento隐藏没有产品 magento 的类别
【发布时间】:2008-12-17 00:17:38
【问题描述】:

我有许多站点使用相同的主站点根类别。添加的每个产品都会添加到它添加到的站点(哇。)以及主站点。但是,我希望每个站点的类别仅在该站点上有产品时显示。

如果我有:

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 升级我的代码库会更容易。

谢谢,
-纳尔逊

【问题讨论】:

    标签: php html magento e-commerce


    【解决方案1】:

    好吧,您可以做的是,使用集合创建您自己的助手(通过模型),然后根据产品数量过滤集合。

    只是一个粗略的草稿,但我在另一个与 magento 相关的问题中发布了一些代码:Magento products by categories。您可以查看它添加产品数量的方式和时间,完成后我会再次过滤。

    我不认为这在性能方面非常“出色”,因此您可以编写自己的模型类,扩展它并添加默认过滤器,或者直接使用快捷方式,而不是使用它们的模型类到数据库。

    只要您留在皮肤/模板中,更新就不会有更大的问题。

    【讨论】:

      【解决方案2】:

      这是一个隐藏类别的简单解决方案,可能会对您有所帮助。

      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; ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多