【问题标题】:Magento Products on Homepage in combination with Flat Catalog not working主页上的 Magento 产品与平面目录组合不起作用
【发布时间】:2012-11-05 13:41:20
【问题描述】:

我在主页和平面目录上显示的产品存在一些问题。

关闭平面目录选项:

在 CMS 中,我创建了一个包含内容的静态块:

{{block type="catalog/product_list" category_id="18" template="catalog/product/list.phtml"}}

在我的模板中,我定义了对该静态块的调用。因为我想在特定地点使用产品,所以我使用这种方式并且效果很好。

当我将平面目录切换为是时,重新索引并清除缓存:

首页不再显示类别中的产品,而是显示“没有与选择匹配的产品。”。我一直在做一些简单的调试,看起来list.phtml 页面得到了一个空的productcollection。

关于如何解决这个问题的任何提示?

【问题讨论】:

  • 您可以在更改代码之后和之前查找差异,在 phtml 上执行 echo $collection->getSelect()->__toString();看看有什么问题
  • 谢谢。平面目录 ON 的查询在内连接上选择了错误的 cat_index.category_id。正确的 category_id = 18 但由于某种原因它使用 2

标签: magento-1.6 magento


【解决方案1】:

我搜索了一种方法来解决这个问题并找到了类似的东西:

  <reference name="content">
 <block type="catalog/product_list" name="new-arrival-products" alias="arrival_products" template="catalog/product/new_arrival.phtml">
....
    <action method="setData"><key>category_id</key><value>6</value></action>
 </block>

试试这个代码,如果不工作,你可能需要从 phtml 更改代码来渲染这个集合。

要在静态块上使用新类别,您必须转到目录 -> 管理类别 -> 单击您的类别,在您的类别上选择显示设置选项卡,然后在 CMS 块上选择您的块。

【讨论】:

  • 我使用的是静态块而不是 cms 页面,我无法在静态块中设置这些设置。?
  • 使用静态块你做对了。但也许magento不能在集合中使用这个参数,你需要改变核心代码来使用你的参数。
  • 好的,我找到了解决您需要的方法。看看我编辑的答案。
  • 不工作。它仍然呈现错误的 category_id 并返回 emtpy
  • 因为您的类别块不使用此参数 category_id 来呈现集合,您应该转到 view.phtml 并在那里通过 $this->getCategoryId();并设置为 $_category 应该可以完成这项工作。
【解决方案2】:

找到了解决办法。

我想要在主页上显示的类别 (18) 不在我商店的根类别 (2) 中。我将cat 18移到cat 2下,问题解决了。

看起来 Magento 1.6 确实适用于根目录之外的平面目录和类别

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多