对于一个项目,我需要对所有制造商页面进行一种查看,我希望使用catalogsearch但没有任何参数。我的意思是运行正常的catalogsearch并返回所有制造类别中的所有鞋子。
通常通过的网址是testshop.com//catalogsearch/result/index/?manufacturer=2522&q=shoe%20manufactures这是有效的,但当我尝试通过testshop.com//catalogsearch/result/index/ ? (或沿着这些方向)这不起作用。
我还没有开始编码,因为我不知道从哪里开始所以需要一个正确方向的点。
我正在考虑找到默认的类别ID并使用它,但不确定这是否是最佳选择。
任何建议或帮助都将一如既往的伟大。将完成的代码发布在此处,因为我认为使用magento帮助可能会有点限制。
干杯
杰森
答案 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文件以检查这一点,并显示“所有品牌”而不是“默认类别”。
希望这有助于其他人
杰森