User Feedback
UP Search Normalize replaces OpenCart's default search logic. Its job is simple: show the right product even when the customer does not type the query exactly as it appears in the catalog.
The module is especially useful for stores where customers search in Ukrainian, Russian, and English, switch between Cyrillic and Latin, or search by model, SKU, product code, or a familiar product name.
Module functionality
Search and relevance
- Standard search and Live Search. The module replaces the logic of OpenCart's standard search page and uses the same search index for its own live suggestions.
- Complete product-field list. Name, tags, model, SKU, manufacturer, Meta Keywords, categories, UPC, EAN, JAN, ISBN, MPN, Meta Title, and description. Each field has a configurable weight from 0 to 20; a zero weight disables that field.
- Initial field weights. Name, tags, model, SKU, manufacturer, Meta Keywords, and categories are enabled by default. Product codes, Meta Title, and description can be enabled separately in settings.
- Optional description search. It is disabled by default. HTML, links, and formatting are removed and the per-product index is bounded. Rebuild the index after enabling it. A small group containing every word of a multi-word query may rank above partial matches.
- Typos. For example, "сімпріка" instead of "сімпаріка", as well as missing, extra, or transposed letters.
- The wrong keyboard layout. For example, ",hfdtrnj" instead of "бравекто". EN, UA, and RU layouts are supported.
- Cyrillic and Latin spelling. A query for "simparica" can find a product named "Сімпаріка", and vice versa.
- Mixed scripts and spelling variations. The module normalizes similar-looking Latin and Cyrillic letters, apostrophes, hyphens, and other characters.
- Synonyms and word forms. Dictionaries can connect familiar alternative product names and different forms of the same word.
- Phonetic similarity. An additional low-weight signal helps find similarly sounding words without displacing exact matches.
- Purpose-built ranking. Products that match the complete query more closely appear higher, taking field weights, coverage, exact words, phrases, and product popularity into account.
- Exact-code priority. An exact model, SKU, or other enabled public product-code match receives protected priority in the results.
Live Search and result handling
- Out-of-stock handling. These products can remain in the normal order, be hidden, or be moved lower. Live Search can display three stock states.
- Live suggestions. Live Search can show products with images, prices, discounts, stock status, and selected codes, plus categories, manufacturers, popular queries, and a "Did you mean" suggestion.
- Live Search settings. Result sections can be enabled separately, reordered by drag and drop, and given individual limits. Custom labels can be set for Model, SKU, EAN, MPN, UPC, JAN, and ISBN. Minimum query length, delay, input CSS selector, and product-card elements are also configurable.
- Mobile and keyboard modes. Live Search opens fullscreen on phones and supports keyboard navigation and match highlighting on desktop.
Admin controls
- Search settings. Field weights, match threshold, result count, sales-popularity influence, correction modes, SKU protection, and out-of-stock rules are configurable.
- Test search. The dashboard can run a real query, show matching products, categories, and manufacturers, and display relevance scores.
- Dictionary management. Separate sections cover SymSpell corrections, stop words, word forms, and synonyms, with add, edit, delete, search, and batch-import tools. Manual entries survive index rebuilds.
- External dictionary import. Lemma and synonym dictionaries can be uploaded as JSON or JSON.GZ through the admin panel and reimported from storage.
- Search analytics. Overview, query, product, category, and manufacturer reports are included, together with a journey journal and a product funnel from impression and click to cart, order, and purchase. Filters, search, CSV, zero-result queries, and search timings are available.
- Analytics data controls. Analytics is enabled in the default settings, and popular queries are ready to appear after Live Search is enabled. Search analytics data stays in the store database; IP addresses are masked, the log TTL defaults to 90 days, and a signed HttpOnly first-party cookie with a one-year lifetime links related actions. Cron or manual cleanup removes records past the TTL. Logging and the public popular-query block can be disabled separately.
- Automatic index updates. Product additions, edits, and deletions are reflected in search automatically. During a full rebuild, the store keeps using the current index until the new one is ready.
- Ready-to-use cron commands. The admin panel generates CLI and HTTP commands for full rebuilds, single-product reindexing, index statistics, and old-analytics cleanup.
- System diagnostics. Five groups show server, database, OpenCart integration, table, and search readiness. Problems are visible in the group summary, with details and actions inside. Table storage is shown separately. Diagnostics do not run repairs or rebuilds.
- Automatic migrations. After a new version is installed, the module aligns its own tables, events, and settings without requiring reinstallation.
How search works: BM25, BM25F, and SymSpell
UP Search Normalize is not a basic SQL LIKE search. The module builds its own index and processes a query through several stages: exact matches, normalization, fuzzy retrieval, typo correction, and final ranking.
- Trigram BM25. Candidate retrieval uses character trigrams and BM25 scoring, which accounts for match rarity, indexed product-data length, and the configured field weight.
- Token BM25F. When enabled and its index is ready, eligible multi-term queries receive an additional evaluation of meaningful-term coverage across active product fields. This refines the order of results that were already found.
- Context-aware SymSpell. Correction handles joined and split words, uses neighbouring-word context and a confidence threshold, and protects SKUs. Original search results are not displaced by an uncertain correction.
- Protected priority tiers. Exact model, SKU, and other product-code queries, together with active stock rules, retain protected priority over weaker fuzzy matches. BM25F may reorder results only within the current tier.
- A versioned index for each store and language. A full rebuild is prepared in separate staging tables. The current index remains active until the new one is ready, then the tables are swapped atomically.
Installation and compatibility
The module is installed as a single .ocmod.zip package, runs on your store's server, and does not require an external search service or per-query fees. Ready-made integrations are included for OcTemplates, CyberStore, Upstore, OcFilter, and SortsLimits.
OpenCart's standard search and the built-in Live Search work out of the box. A separate adaptation may be required if a theme heavily modifies search or uses its own AJAX search module.
Safe fallback to standard search. If the module's index or integration is temporarily unavailable, the store continues using OpenCart's native search.
Compatibility, requirements, and license
Platform: OpenCart 3.x, OpenCart 2.3, OcStore 3.x, and OcStore 2.3.
Server: PHP 7.1+ (8.1+ recommended), MySQL 5.7+ or MariaDB 10.2+, mbstring.
License: one domain and all its subdomains, with no time limit. The code is supplied in editable form and may be modified internally for the licensed store, but the module is not open-source software; copyright and proprietary rights remain with the developer. License verification works offline.
Updates and support terms
- Updates without a time limit. The purchaser receives, without an additional fee, every update that the developer publishes for this product. This does not establish a release schedule or guarantee compatibility with future OpenCart, PHP, theme, or third-party extension versions. Installing an update is charged separately.
- 12 months of standard support. It is available to the official purchaser or an authorized representative and includes brief guidance on installation, activation, standard settings, and use of the module, plus initial diagnosis of a possible defect. The first substantive response is normally provided within one business day. This is a response target, not a guaranteed resolution time.
- After the standard period. The developer may continue answering brief questions without charge at the developer's discretion. Connecting to the store, environment diagnosis, configuration, urgent corrections, and other technical work are charged separately.
- Access for technical work. When connection to the store is required, the purchaser must provide a temporary OpenCart account with full administrator permissions, file access through SFTP/FTP or the hosting file manager, and database access through phpMyAdmin or an equivalent tool. Without the required access, the developer may limit assistance to general guidance or decline the technical work.
- Paid services. Installation and basic configuration can be added during purchase. Adaptation for one theme on one licensed store starts at USD 25 for the first hour. Further work starts only after the scope and price have been approved.
- Non-standard stores. A modified OpenCart core, third-party build, modifications, or a complex theme may require separately paid diagnosis. If the required work depends on an encoded third-party extension or theme whose source is unavailable for inspection, the developer may decline the work. If the base adaptation is insufficient, a separate estimate is approved or the adaptation fee is refunded when no usable result has been delivered.
- Code changes. If the purchaser or a third party modified the module files, the developer may require restoration of the official release or decline support, including paid support. Custom work may be overwritten by an update; porting it is charged separately.
- The key is bound to the domain. It covers the named main domain, www, its subdomains, and staging on a subdomain. Changing the main domain requires a new license.
- Refunds. Requests are reviewed individually, taking into account the reason, work performed, marketplace rules, and applicable law. If the module fee is refunded, the license is revoked and every copy must be deleted.
- External service ping. License validation is local, but while an administrator uses the module pages, they automatically send the developer service the domain, license key, module name and version, OpenCart version, and PHP version. The browser attempts to limit this to one request every five minutes per browser-tab session. A failed request does not block the module; search queries, catalog data, orders, customer records, and search analytics are not sent.
The complete rules are provided in support_terms.html and LICENSE, both included with the module.
Характеристики
-
5
upcodedev's Other Downloads
-
Recently Browsing 0 members
- No registered users viewing this page.