A customer opens an online store, types a product name with one incorrect letter and receives an empty results page. The product is available in the catalog, but the standard search cannot recognise the mistake. From the customer's point of view, the outcome is simple: the store does not sell what they need, so they leave.
The same problem occurs when a query is entered using the wrong keyboard layout, a local product name is typed with Latin characters, or the customer uses a familiar term that differs from the wording in the catalog.
We have released the first version of Ewonta Smart Search for PrestaShop. It helps customers find products from imperfect queries, displays matching products directly below the search field and shows merchants what their visitors are trying to find.
Why the Default Search May Not Be Enough
A conventional search works well when the customer types a word exactly as it appears on the product page. Real search queries are rarely perfect. They may contain:
-
one or more missing or incorrect letters;
-
a word typed using the wrong keyboard layout;
-
a local-language word written with Latin characters;
-
a synonym instead of the term used in the catalog;
-
only the beginning of a word or part of a reference code;
-
an everyday product name instead of its official name.
An empty search page does not always mean that the product is unavailable. It may simply mean that the search engine could not connect the customer's wording with the product data.
The purpose of smart search is to understand the customer's intent as accurately as possible without requiring the merchant to add every possible spelling manually.
Automatic Typo Correction
The module builds a search vocabulary from the products available for the selected shop and language. When a customer makes a mistake, the search engine looks for the closest suitable term in the current index.
For example:
futbal shirt → football shirt
sneker → sneaker
The administrator can configure the maximum permitted edit distance. This helps balance useful correction against excessively broad matching between unrelated words.
When a correction is found, it appears as a “Did you mean” suggestion. The customer can see which query was used and immediately view relevant products.
Wrong Keyboard-Layout Correction
A customer may forget to change the input language and type a word using the wrong keyboard layout. Standard search usually treats the result as an unrelated sequence of characters.
Ewonta Smart Search checks the alternative Russian or English layout and uses the converted query when the resulting word exists in the index for the current shop and language.
The vocabulary check prevents the module from displaying meaningless corrections for every entered query.
Transliteration Search
The module supports bidirectional transliteration. A customer can enter a Russian product name using Latin characters:
futbolka → футболка
Common combinations such as sh, shch, ch, zh, kh, ts, ya, yu and yo are supported.
A converted query is used only after it has been validated against the search vocabulary or index. This allows transliteration to lead to a real catalog term instead of producing arbitrary suggestions.
Typo correction and transliteration can also work together when a customer both transliterates and misspells a word.
Synonyms and Forced Corrections
An automatic algorithm cannot know every term used in a particular industry or store. The module therefore allows merchants to create their own rules.
Synonyms
Synonyms connect alternative names for the same product type:
sneakers => trainers, running shoes
cell phone => smartphone, mobile phone
poster => wall print
Synonym rules work in both directions, allowing customers to search using any familiar term.
Forced Corrections
A forced correction replaces a particular incorrect query with the required term:
sneekers => sneakers
headfone => headphone
cofee maker => coffee maker
These rules are one-directional. They are useful for frequent mistakes, unusual brand spellings, abbreviations and terminology specific to your catalog.
Live Product Suggestions
Customers do not need to open a separate page and wait for the complete search results. Matching products appear in a drop-down panel while the query is being entered.
Suggestions may include:
-
product image;
-
product name;
-
reference code;
-
current price;
-
a corrected query;
-
total number of results;
-
a link to the complete results page.
Prices are calculated with the applicable product combination, discounts and taxes. This is important when the base product price differs from the actual price of the available variant.
The module can display its own search form or enhance a standard search field used by the theme. When the native ps_searchbar module is enabled, duplicate rendering of two identical search forms is prevented.
Configurable Search Scope
The merchant decides which catalog data should be searchable. The index can include:
-
product name;
-
product reference;
-
combination references;
-
manufacturer;
-
categories;
-
features;
-
combination attributes;
-
tags;
-
short and full descriptions.
Not every store needs to search all available fields. Reference codes and technical features may be essential for a spare-parts shop, while a fashion store may prioritise product name, category, brand, colour and size.
The index must be rebuilt after changing the search scope so that the new settings can be applied to existing products.
Relevance Controls
A match alone does not determine which product should appear first. A word found in the product name is normally more significant than the same word mentioned in a long description, while an exact reference match should receive a high priority.
The module provides an individual weight for every searchable field. The merchant can control the importance of the name, reference, manufacturer, categories, features, attributes, tags and description.
Additional controls make it possible to:
-
boost products that are in stock;
-
prioritise products with images;
-
assign a manual multiplier to an individual product;
-
boost a selected category or manufacturer;
-
exclude out-of-stock products;
-
hide products that cannot be ordered;
-
exclude products without a price.
Search therefore becomes both a navigation feature and a practical merchandising tool.
Full Results Page and Sorting
Customers can open the full results page when the autocomplete panel is not sufficient.
Available sorting options include:
-
relevance;
-
product name;
-
price from low to high;
-
price from high to low.
Price sorting uses the effective product price, including combinations, specific prices, discounts and taxes. A product should not be placed in the wrong position simply because its base price differs from the price of the purchasable combination.
Customer Search History
When a visitor reopens the search field, the module can display their recent queries. This makes it easier to return to a previously viewed part of the catalog.
Customers can:
-
remove one query;
-
clear their complete search history.
Personal search history is handled separately from the store's aggregated search analytics.
Popular Searches and Zero-Result Queries
Search data is useful not only to customers. It also reveals real demand to the merchant.
The back office displays popular queries from the last 30 days. The report includes the number of searches and the average number of results returned for each query.
A separate report lists queries that returned no products. These searches can reveal:
-
a product missing from the catalog;
-
a term that should be added to a product page;
-
a missing synonym;
-
a frequent typo that needs a forced correction;
-
an existing product that customers cannot discover with their usual wording.
Instead of relying on assumptions, the merchant can work with the actual language used by store visitors.
Indexing and Cron Jobs
The module creates a separate product index to provide fast search responses. A complete index must be built once after installation.
The index is then updated automatically after changes to:
-
a product;
-
a combination;
-
a reference code;
-
stock quantity.
Batch indexing through cron is available for larger catalogs. Each execution continues from the saved position, so the process does not restart from the first product every time.
The cron task also removes stale index records and old search analytics, preventing service tables from growing indefinitely.
A complete reindex is recommended after a bulk product import performed directly in the database.
Multistore and Multilingual Catalogs
A separate index is created for every shop and language. Products, vocabularies, rules and analytics from different storefronts are not mixed.
For example, a query entered on a Russian storefront is validated against the Russian index, while an English query uses the English catalog data.
Russian and English interface translations are included. Catalog search can work with other languages as well, but automatic correction quality depends on the words available in the selected language's product index and on the rules configured by the merchant.