2

I have to integrate a custom search engine in a Magento installation.

Please note: before you recommend me not to change the search engine and rather to tweak the existing one, my client demands that a search services of theirs is used in this installation. So no, I can't consider other options - I have to use their custom search engine and integrate it in Magento.

What would be the best way to proceed? I think I could go with using a custom search box that will point to a non-Magento page of mine, but I'm not sure this would be a good approach. Maybe it would be better to replace the search results generation? I'm not sure either way.

  • Did you manage to find a solution for your issue? – Sander Mangel Jun 24 '15 at 13:54
1

It depends a lot on the data the custom search engine returns. If it just returns the product IDs that match the query you can probably take a lot of the original CatalogSearch module and populate a product collection that is displayed using the out of the box templates.

If you want a little more tweaking and custom a good place to start would be to check other search modules. BubbleCode (Johan Reinke) publishes an older version of his Elastic Search engine on Github.

This should give you some insight into what you need to rewrite and what hooks you have to use your own service

| improve this answer | |
  • Thanks! I will probably follow the route of basing my work on the CatalogSearch module then. Do you have any guides or articles to help me get started with that? – Simone Jun 25 '15 at 9:50
  • Hm honestly I haven't. It'll take a lot of tracing. With PHPStorm and the Magicento plugin you should be ok. At the end of the day it's just a request that retrieves data from a source so building your own controller and frontend files is also a solution – Sander Mangel Jun 25 '15 at 9:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.