Smart Search Engine — Advanced Search for OpenCart
The module has been tested on OpenCart 3.x. Operation on other versions is not guaranteed.
Sales and technical support of the module for online stores are not provided in the Russian Federation and the Republic of Belarus.
The module code is unencrypted, without ionCube or obfuscation. You can freely view and modify the code.
The Smart Search Engine module adds fast and highly configurable product search powered by Manticore Search to OpenCart 3 and ocStore 3. The extension replaces the standard OpenCart search mechanism and supports large catalogs, multiple languages, product code search, typo correction, synonyms, suggestions, AI-generated phrases, and customer search behavior analytics.
The module works both on the search results page and in the search field in the website header. Integration is provided for the standard OpenCart theme, as well as for the live search functionality of OCTemplates Promo and OCTemplates Deals.
Important: the module can only be installed on a VPS
Smart Search Engine is intended exclusively for installation on a VPS/VDS or dedicated server. Standard shared hosting without root access and the ability to install system services is not supported.
For full functionality, Manticore Search must be installed as a regular system service. It is recommended to run OpenCart and Manticore Search on the same VPS and use a local connection.
The module does not install Manticore Search automatically. The server owner or system administrator must install and start Manticore, then specify the connection parameters in the module settings. A detailed VPS installation guide is included.
The fallback SQL search is used as an emergency mechanism when Manticore is unavailable, but it does not remove the requirement to install the module on a VPS.
How the module works
The module creates a separate product search index. For each product, it takes into account the store, active language, status, stock availability, categories, manufacturer, attributes, product codes, and other selected fields.
Data is indexed in batches through a queue. Adding products repeatedly does not create duplicates: existing records are updated according to the combination of product, store, and language. Deleted or outdated products are removed from the index during a full reindex.
A search query is processed in stages: exact code lookup, permitted partial code lookup, full-text search, synonyms, keyboard layout correction, transliteration, and fuzzy search. Once a relevant result is found, unnecessary subsequent stages are not executed.
Module features
- Search products using the high-performance Manticore Search engine
- Automatically use the fallback SQL index when Manticore is unavailable
- Work with the standard OpenCart search results page
- Work with the search field in the website header
- Integrate with OCTemplates Promo and Deals
- Search by product name, model, SKU, and other product codes
- Take the manufacturer, categories, attributes, and description into account
- Search using manually entered and AI-generated search phrases
- Perform exact and partial product code searches
- Correct queries entered using the wrong EN/RU/UA keyboard layout
- Add a transliterated version of the query
- Search using other active store languages
- Use a manually managed synonym dictionary
- Correct typing errors through Manticore fuzzy search
- Display suggestions directly in the search field
- Exclude out-of-stock products from the results
- Flexibly configure the weight of every search field
- Collect statistics on search queries, product clicks, and CTR
- Display popular searches and searches with no results
- Generate search data using OpenAI
- Automatically update the index after catalog changes
Search fields
For each field, you can separately determine whether it should participate in the search. This prevents unnecessary data from being added to the index and allows the module behavior to be configured according to the structure of a particular store.
- Name — the primary field for finding a product by its name
- Model — the product model or internal OpenCart product code
- SKU — the stock keeping unit or inventory code
- UPC — Universal Product Code
- EAN — European Article Number
- JAN — Japanese Article Number
- ISBN — International Standard Book Number
- MPN — Manufacturer Part Number
- Manufacturer — the brand or manufacturer name
- Categories — the names of the categories assigned to the product
- Attributes — product attribute names and values
- Description — the product description text
- Keywords — additional product search keywords
- Manual phrases — real customer query variations specified by the administrator
- AI phrases — automatically generated query variations for the product
Search by product codes
Model, SKU, UPC, EAN, JAN, ISBN, and MPN are first checked for an exact normalized match. Separators, hyphens, spaces, and letter case do not prevent the correct product from being found.
For example, the queries K-953156, K953156, and k 953156 can be recognized as the same code.
A separate partial search setting is available for each product code field. If customers frequently enter only part of a model or product code, partial matching can be enabled for Model, SKU, UPC, EAN, JAN, ISBN, or MPN.
Partial search should only be enabled for fields where customers actually use incomplete values. Very short fragments may produce a large number of irrelevant results.
Search query processing
- Match mode determines whether all query words must be found or whether products containing at least one word may be searched after a strict search returns no results
- Minimum word length filters out excessively short words that may produce a large number of irrelevant matches
- Keyboard layout correction converts text entered using the wrong EN/RU/UA keyboard layout
- Transliteration creates a Latin version of a Cyrillic query or a Cyrillic version of Latin input
- Search in other languages allows a product to be found even when the customer uses another active store language
- Synonyms expand the query using manually configured words and phrases
- Fuzzy search finds words containing an allowed number of typing errors
- Edit distance determines how many character insertions, deletions, or substitutions are allowed during fuzzy search
Synonym dictionary
The module includes its own synonym dictionary. For each entry, you can select the language, source word, synonym, and rule type.
- One-way rule — replacement or query expansion works only from the source word to the synonym
- Two-way rule — both words can be used as mutual synonyms
- All languages — the rule is applied regardless of the current storefront language
No-result query analytics helps identify missing spelling variations and quickly create new synonyms for them.
Ranking settings
A separate weight can be assigned to every search field. The higher the value, the more strongly a match in that field affects the product position in the results.
- Product name weight
- Model weight
- SKU weight
- UPC weight
- EAN weight
- JAN weight
- ISBN weight
- MPN weight
- Manufacturer weight
- Category weight
- Attribute weight
- Keyword weight
- Manual search phrase weight
- AI phrase weight
- Product description weight
Exact product code matches receive a separate high priority. For example, an exact Model or SKU will not be lost among products whose names or descriptions happen to contain similar words.
Manticore Search and performance
Manticore Search is used as the primary high-performance search engine. It stores prepared search documents separately from the main OpenCart tables and allows full-text queries to be processed quickly in large catalogs.
- A separate Manticore table name for each website
- Ability to use one Manticore server for multiple stores
- Automatic index table creation
- Automatic table structure updates when the module is updated
- Connection testing directly from the administration area
- Display of the Manticore version and document count
- Safe deletion of the selected table before changing its name
- Batch product indexing
- Reuse of a single Manticore connection while processing a batch
- Batch loading of descriptions, categories, attributes, filters, and search phrases
- No duplicate documents during repeated indexing
The indexing batch size can be configured in the administration area. The number of products processed in a single run can be increased for a powerful VPS or reduced for a server with limited resources.
Index and queue
Initial and full indexing is performed through a queue. You can add the entire catalog, process tasks in batches, retry failed tasks, and clear the queue.
- Add all products to the queue
- Manually process the configured number of products
- View tasks with pagination
- Localized task statuses
- View error messages
- Retry failed tasks
- Delete an individual task
- Completely clear the queue
- Protect action buttons against accidental repeated clicks
The module uses atomic task claiming. If multiple workers are started simultaneously, the same task should not be processed more than once.
Automatic index updates
The module uses standard OpenCart events and adds a product to the queue after catalog changes.
- Adding or editing a product
- Deleting a product
- Changing categories
- Changing a manufacturer
- Changing attributes
- Changing product stock after an order history update
Direct SQL queries and some third-party import tools may not trigger OpenCart events. After a large direct import, it is recommended to add all products to the queue and perform a full reindex.
AI search data generation
When an OpenAI API key is available, the module can create additional search phrases, keywords, name variations, and customer queries for products. AI features are optional: the primary search and Manticore work without an OpenAI connection.
- Use of the OpenAI Responses API and structured responses
- Selection of a GPT-5.6 family model
- Separate configuration of the data sent to AI
- Transfer of the product name, Model, SKU, UPC, EAN, JAN, ISBN, and MPN
- Transfer of the manufacturer, categories, attributes, and description
- Separate data generation for every active product language
- Processing AI tasks through a separate queue
- Configurable number of products per run
- Add all products to the AI queue
- Select products manually
- Select products by category
- Select products by manufacturer
- Add selected products to the AI queue from the catalog page
- Generate AI phrases directly from the product edit page
- View and manually edit generated phrases
- Clear the AI data of an individual product
- View the AI queue with pagination
- Retry or delete an individual AI task
- Completely clear the AI queue
AI does not modify or delete manual search phrases. Manually entered and automatically generated data is stored separately. The next AI generation replaces only the previous list of AI phrases for the corresponding product and language.
Use of the OpenAI API may be billed separately according to the API provider’s pricing. The user must obtain their own API key and access to a supported model.
AI log and result review
The module includes a separate AI operation log. For every task, it stores the product, language, model, status, duration, number of generated phrases, execution date, and error message.
- View data sent to AI
- View the structured AI response
- Readable modal window instead of raw JSON
- Separate display of keywords, phrases, and name variations
- List of products containing generated AI phrases
- View phrases for all product languages
- Pagination for the product list and log
- Clear the AI log
Search analytics
The module collects search query statistics and helps identify what customers are looking for and which queries require additional configuration.
- Search query text
- Number of searches performed
- Average number of products found
- Number of product page clicks
- Search query CTR
- Date of the most recent search
- Separate list of popular searches
- Separate list of searches with no results
- List pagination
- Sorting by query, search count, average results, clicks, and CTR
- Quickly test a query on the storefront
- Create a synonym based on a no-result query
- Configurable statistics retention period
- Completely clear analytics data
Clicks and CTR are tracked both from the standard search results page and from the search field in the website header, including supported OCTemplates themes.
Multilingual and multistore support
The index is created separately for every store and active language. One product may have multiple search documents if it is used in multiple stores or has descriptions in several languages.
Search takes the current store and customer language into account. If necessary, search using data from other languages can be enabled. For example, a product on the Ukrainian storefront can be found using a Russian or English query.
The module administration area and statuses are localized in Ukrainian, English, and Russian.
Cron and manual processing
The main operations can be started manually using buttons in the administration area. For large catalogs and regular automatic updates, separate secret-key-protected URLs are also available for the index and AI queues.
- Separate URL for processing the index queue
- Separate URL for processing the AI queue
- Ready-to-use crontab commands
- Configurable number of tasks per run
- Ability to operate entirely manually using administration buttons
Advantages
- Fast search in large catalogs
- Highly relevant results
- Exact priority for product codes
- Flexible management of search fields and their weights
- Support for typos, incorrect keyboard layouts, and transliteration
- Built-in synonym dictionary
- Autocomplete in the search field
- Integration with the standard theme, OCTemplates Promo, and Deals
- Automatic index updates after standard catalog changes
- Batch processing without creating duplicates
- Fallback SQL search in case of a Manticore error
- AI generation of additional search phrases
- Complete analytics for queries, clicks, and CTR
- Detailed built-in help explaining all settings
System requirements
- VPS/VDS or dedicated server
- Root or sudo access for installing Manticore Search
- OpenCart 3.x or ocStore 3.x
- A PHP version compatible with the installed OpenCart 3 version
- MySQL or MariaDB
- Manticore Search installed and running
- Access to the Manticore SQL port, 9306 by default
- Ability to configure Cron if automatic processing is required
- OpenAI API key only if AI features are used
Shared hosting, standard virtual hosting without root access, and servers where Manticore Search installation is not permitted are not supported.
Compatibility
- OpenCart 3.x
- ocStore 3.x
- Standard OpenCart theme
- OCTemplates Promo
- OCTemplates Deals
- Ukrainian, English, and Russian localizations
Installation
- Prepare a VPS/VDS with root or sudo access
- Install Manticore Search as a system service
- Make sure Manticore is running and accepts local connections on port 9306
- Upload the module archive through Extensions / Installer
- Go to Extensions / Modifications and click Refresh
- Go to Extensions / Extensions
- Select the Modules extension type
- Find Smart Search Engine and click Install
- Open the module settings and test the Manticore connection
Important notes
After changing the set of fields included in the index, a full reindex must be performed. Changing field weights, match mode, synonyms, or query processing parameters does not create new documents and usually does not require reindexing.
Before changing the Manticore table name, it is recommended to delete the old table using the corresponding module button, save the new name, and perform a full reindex.
If a third-party import tool modifies data using direct SQL queries, the entire catalog must be added to the queue manually after the import is completed.
The module is sold for use on a VPS. Before purchasing, make sure that you have root/sudo access and can install Manticore Search. Refunds are not provided due to the absence of a suitable server or the inability to install the required system service.
License
The license covers one domain and its subdomains.
ocStore 3.x
English
Russian
English
Russian
OCTemplates Promo
OCTemplates Deals
PHP 8.0-8.3
There are no reviews for this product, be the first to leave your review.