0

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

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

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

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

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

干杯

杰森

4

2 回答 2

0

我做的。这有点骇人听闻,但效果很好。

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

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

尽管 GET 请求包含 q=Shoe+Brand,但它实际上并未将其用作搜索条件。

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

这在过滤器和面包屑中显示默认类别,因此我必须更改适当的 phtml 文件以检查并显示“所有品牌”而不是“默认类别”。

希望这对其他人有帮助

杰森

于 2012-08-17T17:07:52.113 回答
0

也许尝试务实地获取搜索模型

下面是获取 Search 模型的代码:

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

要实际搜索,请输入以下内容:

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

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

$search->getProductCollection();

希望这可以帮助

于 2012-08-16T16:58:40.447 回答