magento catalogsearch搜索所有产品(如查看所有品牌页面)

时间:2012-08-16 16:53:26

标签: magento

对于一个项目,我需要对所有制造商页面进行一种查看,我希望使用catalogsearch但没有任何参数。我的意思是运行正常的catalogsearch并返回所有制造类别中的所有鞋子。

通常通过的网址是testshop.com//catalogsearch/result/index/?manufacturer=2522&q=shoe%20manufactures这是有效的,但当我尝试通过testshop.com//catalogsearch/result/index/ ? (或沿着这些方向)这不起作用。

我还没有开始编码,因为我不知道从哪里开始所以需要一个正确方向的点。

我正在考虑找到默认的类别ID并使用它,但不确定这是否是最佳选择。

任何建议或帮助都将一如既往的伟大。将完成的代码发布在此处,因为我认为使用magento帮助可能会有点限制。

干杯

杰森

2 个答案:

答案 0 :(得分:0)

也许尝试实用地搜索模型

以下是获取搜索模型的代码:

$search = Mage::getSingleton('catalogsearch/advanced');

要实际搜索以下内容:

$search = Mage::getSingleton('catalogsearch/advanced')->addFilters(array('name' => $term));

然后要在对象中获取结果,请输入以下行:

$search->getProductCollection();

希望这有帮助

答案 1 :(得分:0)

我做到了。这有点像黑客但完美无缺。

我注意到,如果你进行搜索并删除所有过滤器,你会得到类似于/ catalogsearch / result / index /?q = Shoe + Brand的GET请求。但是没有在左侧显示为正常目录搜索的过滤器会。

所以我找到了默认的类别ID并将其添加到GET请求中。 GET请求现在看起来像/ catalogsearch / result / index /?cat = 2& q = Shoe + Brand。

虽然GET请求中包含q = Shoe + Brand,但实际上并没有将此作为搜索条件。

现在返回一个目录搜索页面,其默认类别为过滤器。

这显示了过滤器和面包屑中的默认类别,所以我不得不更改相应的phtml文件以检查这一点,并显示“所有品牌”而不是“默认类别”。

希望这有助于其他人

杰森