Overview

Doofinder is a company with more than 10 years of experience in search services for e-commerce. Doofinder Search can be integrated on any website with very little configuration, in just a few minutes, providing fast, accurate results based on your website contents.

  • Incredibly fast, search results as you type
  • The smart algorithm that learns from your user behavior
  • Suggestions, autocomplete, and visual search

The Doofinder extension provides the most advanced search experience with minimal effort from the user’s side. The extension integrates with the Magento store just like a native search engine, indexing content automatically through their API so that it is always updated. When searching, Doofinder will provide the most relevant results for user queries.

 

At Magently, we were responsible for developing the Magento 2 module (and our sister brand Chop-Chop developed the WooCommerce plugin). The module communicates between the Doofinder API and Magento.

The biggest challenge was to make the Doofinder module a fully-fledged Magento Search Engine and this will be the focus of this case study.

Doofinder module was initially a hybrid based on MySQL and only worked on the search results page. 

Along with the release of Magento 2.3, the Doofinder team decided to extend the functionality to work on the category pages. We had to rewrite the module logic from scratch to integrate it with Magento Search Engine logic.

Our Solutions

Compatibility issues

At the time of the Doofinder Search development, Magento CMS was undergoing a series of updates that were causing compatibility issues for Doofinder.

Solution

We created a compatibility module that took over some of the functions. The module is available in different Magento versions for different Magento store version owners. From then on, we decided that the core module will contain functionalities available in all versions. The compatibility module would only supply the features required for it to work with a specific version.


Downtime in loading category pages

In Magento 2, the indexer deletes the old products’ index and creates it from scratch whenever reloading the results view. This caused downtime in loading category pages because the old products were gone by the time the new ones were fetched. 

Solution

We managed to solve the issue thanks to the new Doofinder API version that provided a temporary index. The API creates the temporary index first and then and then replaces it with the main index, hence avoiding downtime.


Indexing products On Save

The second problem occurred whenever a store indexed products On Save. For whatever reason, Magento calls for products’ index update three or four times on that occasion. If working with multiple store views, it can result in dozens of such requests at a given time. And, if we count in bulk products’ updates, then the API can receive large amounts of requests. It slows down both the API and Magento, as a result.

Solution

We resolved this problem with Delayed Updates. The module keeps track of products that are updated and saves them to the database. Next, using cron, it collects the information and updates the Doofinder products only once. It limited the number of requests to just a few – only when they are actually needed.

Outcome

Today, Doofinder Search is a fast and smart Magento Search Engine. Our cooperation with Doofinder has been going on since 2015 and we continue to develop and improve the module. If you need help with developing your Magento 2 module, Contact Us!

Doofinder Search Magento 2 Module

Aleksandra Gałońska Magently
Aleksandra Gałońska

Project Manager

Adrian Szulc

Lead Developer

Dawid Mączyński Magently
Dawid Mączyński

Co-developer

Roman Ludwicki Magently
Roman Ludwicki

Support Developer

Carlos Escribano Rey
Web Developer at Doofinder

In Doofinder we needed a skilled Magento Developer in charge of correcting, improving and maintaining our search module.

In Doofinder we needed a skilled Magento Developer in charge of correcting, improving and maintaining our search module.

From the beginning the team at Magently was very receptive and it was very easy to find a way to work together on a long-term project like this.

They reviewed our code very fast and adapted it to the Magento programming standards. In no time we had a stable module to start building onto.

Besides the quality of their code, I’d like to highlight their vast knowledge of Magento and their proactivity. They not only write code, but prove it thoroughly and propose new approaches if something can be improved. The dialogue with them is very fluid and we receive daily updates on the status of the project, which make us feel fully integrated in its development.

Magently is listed on Clutch

If you're interested in what our clients think about us or would like to add a review yourself, visit Magently Clutch profile.