Magento,定制产品清单

时间:2011-03-03 17:30:45

标签: php magento faceted-search layered-navigation

我根据Mage_Catalog_Block_Product_List:

创建了自己的产品列表页面

应用程序/代码/本地/法师/目录/砌块/产品/ Special.php:

class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_List
{      
    /* Original contents */

    /* Here I call addAttributeToFilter on product collection, and then... */
    return $this->_productCollection; 
}

我将其包含在中心列的CMS页面中:

<reference name="content">
    <block type="catalog/product_special" template="catalog/product/list.phtml" />
</reference>

问题是:产品列表显示正常,但我的左栏没有分层导航。

这很奇怪,因为我使用与普通列表完全相同的模板。

我检查了几件事:

  • Mage_Catalog_Block_Product_Special只是一个代理类。这不起作用。即使我在CMS页面上使用块类型“catalog / product_list”,我也不会获得分层导航。
  • 没有任何扩展可以覆盖关键的核心类。
  • 我也尝试创建自己的模块并将其列在例如'mycatalog'下。这导致完全相同的问题。

我觉得这与尝试在CMS页面上包含产品列表有关,但我无法找到确切的问题。

对此的任何帮助都将非常感激。

4 个答案:

答案 0 :(得分:4)

您需要添加将图层渲染到左列的块。

如果查看catalog.xml,您会看到catalog_category_layered节点包含以下内容:

<reference name="left">
        <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
        ...
</reference>

因此,将其添加到CMS xml布局更新中,并且应该在CMS页面上显示图层块。

如果您在单击其中一个可过滤属性时遇到产品列表未被过滤的问题,那可能是因为Layer_View块呈现的链接假定​​它们将回发到CategoryController,不是要呈现CMS页面的CmsController。这可能是也可能不是问题,所以如果它不起作用,请在此报告,我们可以尝试解决它。

答案 1 :(得分:0)

就个人而言,我会在其中包含所有产品的隐藏类别,并使用脚本将更新保留为所有产品。该脚本可以使用API​​完成,但是很慢,但它可以及时处理某个SKU计数级别。

答案 2 :(得分:0)

图层导航包含在类别视图中。 您应该包括类别使用的导航部分,因此请尝试插入

        <reference name="left">
        <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
    </reference>

之前

<reference name="content">

我不确定但是如果它不起作用它应该帮助你理解问题

答案 3 :(得分:0)

检查以下页面(他们遇到了同样的问题)

http://www.exploremagento.com/magento/some-custom-blocks-to-help-you-show-products.php http://www.chilipepperdesign.com/2009/03/23/magento-how-to-list-all-the-products-in-a-single-category-in-a-sidebar-block