Meilisearch Engine

v2.2.3 Abonnement annuel Mis à jour le 1 sept. 2026

Meilisearch Engine

Branche Meilisearch sur l'adapter de recherche natif de Magento : rapide, tolérant aux fautes de frappe et multilingue, sur un simple VPS.
Compatible Hyvä Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
399,00 €
Essayer la démo en ligne
  • Mises à jour et support inclus pendant 12 mois
  • Clé de licence livrée immédiatement par email
  • Garantie satisfait ou remboursé 30 jours
  • Documentation complète incluse
  • Compatible avec les thèmes Hyvä
  • Installation prête pour Composer

Meilisearch Engine

Remplacez MySQL ou OpenSearch dans Magento par Meilisearch — et obtenez un moteur de recherche rapide, tolérant aux fautes de frappe, multilingue et qui tourne sur un petit VPS. Ce module est un adaptateur production-grade par-dessus la base open source Walkwizus Meilisearch : il branche Meilisearch sur l'AdapterInterface natif de Magento, puis ajoute la couche opérationnelle qui le rend utilisable à l'échelle — cache multi-niveaux, partial sync, protection des index avec auto-backup, pagination intelligente, pricing par groupe client, ranking rules configurables, et un autocomplete soigné compatible Hyvä.

Les résultats de recherche sont mis en cache à trois niveaux (localStorage navigateur, cache backend Magento partagé entre utilisateurs, et un cache dédié aux pages catégories), pour que les requêtes répétées ne touchent jamais Meilisearch deux fois. Un controller proxy custom route l'autocomplete via Magento, ce qui veut dire que le cache backend est réellement partagé entre tous les visiteurs au lieu d'être bypassé par des appels JS directs. En coulisses, un full sync piloté par ERP devient un partial sync : seuls les champs modifiés (qty, price, status) sont poussés, avec détection de changement par hash MD5.

À qui ça s'adresse

  • Marchands fatigués d'Elasticsearch/OpenSearch lent et de la facture mémoire JVM qui va avec
  • Stores avec de gros catalogues (10k–500k SKUs) où la tolérance aux fautes et l'autocomplete instantané comptent plus que les requêtes DSL complexes
  • Stores multilingues (EN, FR, NL, ES bundlés) qui ont besoin de labels de facettes traduits out of the box
  • Stores pilotés par un ERP qui importe 10–50× par jour, où le full reindex Elasticsearch est overkill
  • Équipes qui veulent un contrôle fin sur les ranking rules, attributs searchable/filterable/sortable, et le contenu des documents

Bénéfices clés

  • Adapter Magento complet — drop-in replacement d'Elasticsearch via l'AdapterInterface natif. Compatible avec les pages catégories, layered navigation, autocomplete et résultats de recherche.
  • Autocomplete enrichi — grille de 6 produits avec image, nom, SKU, prix par groupe client, bouton Add-to-Cart AJAX fonctionnel, message de succès auto. Min characters et debounce configurables.
  • Recherche SKU partielle — champ sku_parts auto-généré qui trouve un produit par 333-2-17 même si le SKU complet est 0010333-2-17. Deux stratégies de trim pré-calculées à l'indexation.
  • Cache multi-niveaux — localStorage (navigateur, TTL 15 min), cache backend Magento partagé entre utilisateurs (TTL 2 h), et cache des pages catégories (TTL 30 min). Flush manuel depuis l'admin.
  • Partial sync — seuls les champs modifiés (qty, price, status…) sont poussés vers Meilisearch quand les imports ERP tournent. Détection de hash MD5 qui skippe les produits inchangés. Batches de 10 000 par défaut.
  • Protection des index & auto-backup — les settings sont sauvegardés avant chaque cleanIndex et auto-restaurés après, avec validation. Les 10 derniers backups conservés sous var/meilisearch_backups/. CLI health-check.
  • Pagination intelligente — pagination avec ellipsis, dropdown "Aller à la page" pour les gros résultats, compteur d'articles, popup filtres responsive mobile.
  • Pricing par groupe clientprice_0, price_1, price_2… indexés par groupe client ; le frontend choisit le bon. Compatible recherche facettée et tri par prix. TVAC stocké une fois, pas de double taxation.
  • Ranking rules custom — définissez votre propre séquence de ranking (words, typo, proximity, attribute, sort, exactness, plus popularity:desc, created_at:desc et autres) depuis l'admin.
  • Alertes suppression d'index — recevez un email quand un index est supprimé, avec logging complet des opérations.

Compatibilité

  • Magento 2.4.x / équivalent Mage-OS
  • PHP 8.1, 8.2, 8.3
  • Nécessite wimakeit/module-core 3.0.9, walkwizus/magento2-module-meilisearch 1.0.46, meilisearch/meilisearch-php
  • Fonctionne avec les frontends Hyvä, Breeze et Luma
  • Serveur Meilisearch 1.6+ requis (n'importe quel tier — l'image Docker officielle est recommandée)
  • Compatible MSI (multi-source inventory) et setups single-source standards
  • Modules compagnons : wimakeit/module-meilisearch-ai pour la recherche sémantique, wimakeit/module-indexer pour l'optimisation des reindex catalog

Installez ce module via Composer. Assurez-vous que votre auth.json est configuré avec vos identifiants Wimakeit.

Terminal
$ composer require wimakeit/module-meilisearch-engine:^2.2.3
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile

Installation notes

The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.

Required dependencies

PackageVersion
wimakeit/module-core3.0.9+
walkwizus/magento2-module-meilisearch1.0.70+
meilisearch/meilisearch-php2.0.0-beta.6+

The Meilisearch PHP SDK v2 is still a pre-release, so Composer will refuse to resolve it under the default stability. Allow it for that package only:

composer require meilisearch/meilisearch-php:^2.0.0-beta.6@beta

Composer will pull the rest automatically from the Wimakeit registry. The Walkwizus base modules (MeilisearchBase, MeilisearchCatalog, MeilisearchFrontend, MeilisearchIndices, MeilisearchMerchandising) should also be installed:

composer require walkwizus/module-meilisearch-base \
  walkwizus/module-meilisearch-catalog \
  walkwizus/module-meilisearch-frontend \
  walkwizus/module-meilisearch-indices \
  walkwizus/module-meilisearch-merchandising

External services

This module requires a Meilisearch server (1.6+).

Run Meilisearch (Docker)

docker run -d --name meilisearch \
  -p 7700:7700 \
  -e MEILI_MASTER_KEY='YOUR_MASTER_KEY' \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:latest

Dashboard: http://localhost:7700. For production, put it behind HTTPS and firewall the master-key port.

Connection settings

Configure the server in Stores → Configuration → Wimakeit → Meilisearch Engine → Server Connection (encrypted):

SettingDefault
Server Address(empty — e.g. http://localhost:7700 or https://meilisearch.example.com)
API Key(empty — read-only search key, stored encrypted)
Master Key(empty — admin key for settings/indexes, stored encrypted; falls back to API Key)

Then point Magento at Meilisearch in Stores → Configuration → Catalog → Catalog → Catalog Search:

FieldValue
Search EngineMeilisearch
Index Prefixmagento_ (or your own)

MSI modules

Inventory modules must be enabled for stock filtering to work:

bin/magento module:enable Magento_Inventory Magento_InventoryApi \
  Magento_InventorySales Magento_InventorySalesApi \
  Magento_InventoryIndexer Magento_InventoryCatalog \
  Magento_InventoryCatalogApi Magento_InventoryConfiguration \
  Magento_InventoryConfigurationApi Magento_InventorySourceSelectionApi

ACL permissions

ResourceDefault
Wimakeit_MeilisearchEngine::config (edit module configuration)granted to Administrator role only

Configuration

Stores → Configuration → Wimakeit → Meilisearch Engine

General

SettingDefault
Enable Debug LoggingNo — leave off in production

Search settings

SettingDefault
Maximum Results10000
Autocomplete Results Limit6

Autocomplete behavior

SettingDefault
Minimum Characters3
Debounce Delay (ms)500

Search cache

SettingDefault
Enable Frontend Cache (localStorage)Yes
Frontend Cache TTL (seconds)900 (15 min)
Max Cached Queries (localStorage)150
Enable Backend Cache (Magento cache)Yes
Backend Cache TTL (seconds)7200 (2 h)
Use Search ProxyYes — routes autocomplete through Magento so backend cache is shared
Enable Category Page CacheYes
Category Cache TTL (seconds)1800 (30 min)
Flush CacheManual button in admin

Document content

SettingDefault
Include DescriptionYes
Description Max Length150 (set 0 for no truncation)

Layered navigation

SettingDefault
Enable Stock Availability FilterNo

Custom ranking rules

SettingDefault
Ruleswords, typo, proximity, attribute, sort, exactness (one per line; add popularity:desc, created_at:desc, etc.)
Reset Ranking RulesButton — restore defaults

Index drop alerts

SettingDefault
Enable Email AlertsNo
Notification Emails(empty — comma-separated list)

Embedders (AI Search)

SettingDefault
Embedders Configuration (JSON)(empty — managed by wimakeit/module-meilisearch-ai if installed)

Partial sync

SettingDefault
EnabledYes
Sync Fieldsqty, price, prixHT, status, codeDispo
Batch Size10000

Debug

SettingDefault
Throw Exceptions on Search ErrorNo — development only

CLI commands

# Server and indexes status
bin/magento wimakeit:meilisearch:status

# Push admin settings to Meilisearch
bin/magento wimakeit:meilisearch:sync-settings

# Health check + manage backups
bin/magento wimakeit:meilisearch:health
bin/magento wimakeit:meilisearch:health --backup
bin/magento wimakeit:meilisearch:health --list-backups
bin/magento wimakeit:meilisearch:health --restore=var/meilisearch_backups/backup_XXXXXXXX.json

# Clean succeeded/canceled tasks
bin/magento wimakeit:meilisearch:clean-tasks

# Reindex a specific Meilisearch index by UID
bin/magento wimakeit:meilisearch:reindex <index_uid>
bin/magento wimakeit:meilisearch:reindex <index_uid> --clear

# Reindex specific products by SKU
bin/magento wimakeit:meilisearch:reindex-skus SKU1,SKU2,SKU3

# Inspect partial-sync state
bin/magento wimakeit:meilisearch:sync-state
bin/magento wimakeit:meilisearch:sync-state --clear

Cron jobs (registered automatically)

JobSchedule
wimakeit_meilisearch_process_reindex_queue (process the per-product reindex queue)every minute
wimakeit_meilisearch_clean_tasks (purge succeeded/canceled Meilisearch tasks)daily at 2 AM

No setup needed — just make sure Magento cron is running.

Initial reindex

After install, reindex in this order:

bin/magento indexer:reindex catalog_category_product
bin/magento indexer:reindex catalog_product_category
bin/magento indexer:reindex meilisearch_categories_fulltext
bin/magento indexer:reindex catalogsearch_fulltext
bin/magento wimakeit:meilisearch:sync-settings

If you also installed wimakeit/module-indexer, you can replace the first four lines with bin/magento wimakeit:indexer:reindex-all.

Version
v2.2.3
Licence
Abonnement annuel
Support
12 mois
Dernière mise à jour
1 sept. 2026
Magento
Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
PHP
PHP 8.1 PHP 8.2 PHP 8.3
Hyvä
Compatible
Package
wimakeit/module-meilisearch-engine

Vérifier la compatibilité

Indiquez votre stack pour vérifier la compatibilité du module.

Compatibilité 4

Oui. Meilisearch Engine est testé sur Magento Open Source 2.4.4 → 2.4.7, Adobe Commerce sur la même ligne, et Mage-OS 2.0+ — en PHP 8.1, 8.2 et 8.3. L'onglet « Spécifications » liste les combinaisons testées. Si votre stack y figure, l'installation est garantie. Wimakeit est une agence Magento certifiée Adobe basée à Presles, en Wallonie (entre Charleroi et Namur) — chaque module est validé sur la même matrice que celle livrée à nos clients enterprise en Belgique, France et Pays-Bas.
Oui — complètement. Meilisearch Engine embarque un frontend natif compatible Hyvä (Tailwind + Alpine.js) et s'intègre avec Hyvä Checkout le cas échéant. Aucun module de compatibilité supplémentaire requis. Chaque module estampillé Hyvä est développé par la même équipe Wimakeit qui réalise les migrations Hyvä pour nos clients en production.
Hyvä Storefront (Tailwind + Alpine.js, rendu serveur) et Hyvä Checkout (React, headless au-dessus de Magento) sont deux packages distincts. Meilisearch Engine embarque une compatibilité Hyvä Storefront native — son frontend est rendu via les templates Hyvä, sans fallback Luma. L'intégration Hyvä Checkout est livrée quand le module a un touchpoint d'étape checkout (input de paiement custom, case CGV, etc.) ; sinon le module tourne côté serveur sans customisation Hyvä Checkout nécessaire. Voir l'onglet Spécifications pour le scope Hyvä exact de ce module.
Oui. Meilisearch Engine respecte le scope Magento standard (default / website / store / store_view). Chaque configuration est surchargeable par store view. Les libellés frontend utilisent les fichiers de traduction Magento standard — livrés en français, anglais et néerlandais d'origine. Les devises suivent la configuration Magento standard, sans câblage supplémentaire. Un store Magento Wimakeit type fait tourner un triplet fr_BE / nl_BE / en_GB depuis un seul back-office — Meilisearch Engine est prêt pour ce setup B2B / international.

Tarification & licence 4

199 € — paiement unique, licence perpétuelle, pas de frais récurrents. Inclut 1 an de mises à jour mineures + support email en français, anglais et néerlandais, 1 domaine production + 1 domaine staging/dev. Le renouvellement du support après 1 an est optionnel. Tarifs agence ou multi-store négociés directement à contact@wimakeit.com.
Oui. Meilisearch Engine dispose d'une démo en ligne sur demo.wimakeit.be/module-meilisearch-engine où vous pouvez explorer l'admin et le frontend avec une installation réelle pré-remplie de données. Pour une évaluation plus longue, demandez une licence d'évaluation via notre formulaire de contact — l'évaluation couvre la même scope que la licence payante et se convertit en clé permanente à l'achat.
Nous étudions les demandes de remboursement au cas par cas. Si le module ne livre pas ce qui est annoncé, envoyez un email à contact@wimakeit.com depuis l'adresse liée à votre licence. La politique de remboursement Wimakeit est publiée sur la page Conditions Générales et s'applique à tous les modules de cette marketplace.
Meilisearch Engine est distribué sous licence commerciale propriétaire — pas MIT, pas GPL, pas open source. Le code PHP est livré dans vendor/wimakeit/ après composer require, donc vous pouvez le lire, l'auditer, et le patcher localement pour votre propre installation Magento. Vous ne pouvez PAS le redistribuer, le sous-licencier, le publier sur un registre Composer public, ou le revendre. 1 licence = 1 domaine production + 1 domaine staging/dev (voir les Conditions Générales pour l'EULA complet). Les modules Wimakeit ne sont PAS sur le packagist.org public — ils sont distribués exclusivement via le registre Composer privé packages.wimakeit.be.

Installation & mises à jour 6

Lancez composer require wimakeit/module-meilisearch-engine:^1.12.2, puis bin/magento setup:upgrade, bin/magento setup:di:compile, et enfin bin/magento cache:flush. L'onglet « Installation » de cette page liste chaque étape de configuration (ACLs, crons, valeurs par défaut) — un déploiement prend quelques minutes, pas des heures. Besoin d'aide ? Wimakeit propose des prestations d'installation Magento depuis notre bureau wallon (Presles, entre Charleroi et Namur).
Étape 1 : récupérez un token sur packages.wimakeit.be → Mon compte → Tokens. Étape 2 : à la racine de votre projet, ajoutez à auth.json : {"http-basic": {"packages.wimakeit.be": {"username": "VOTRE-EMAIL", "password": "VOTRE-TOKEN"}}}. Étape 3 : enregistrez le repo : composer config repositories.wimakeit composer https://packages.wimakeit.be. Étape 4 : composer require wimakeit/module-meilisearch-engine:^1.12.2. Dans les pipelines CI/CD, injectez COMPOSER_AUTH en variable d'environnement JSON pour éviter de commiter auth.json.
La plupart des marchands sont en ligne en 30 minutes : composer install (1-2 min) → setup:upgrade + di:compile (5-10 min selon la taille de la stack) → configuration admin (5-15 min en suivant l'onglet Installation) → smoke test sur un produit ou une commande. Comptez plus de temps si vous avez un thème custom qui override des templates similaires. L'équipe Wimakeit a livré ce module sur de nombreuses boutiques B2B et DTC en Belgique.
Meilisearch Engine est conçu pour Magento 2.4.x / Mage-OS 2.0+ et n'a pas d'équivalent Magento 1. Lors d'une migration depuis Magento 1, l'équipe Wimakeit prend en charge l'audit, la migration de données et l'intégration de Meilisearch Engine dans le nouveau back-office, dans le cadre d'un projet de migration Magento. Passer d'Adobe Commerce à Mage-OS est transparent pour Meilisearch Engine : même composer require, même code module, même schéma de base — pas de fork à maintenir, pas de changement de licence.
Les mises à jour passent par votre dépendance composer (ce package exact), hébergée sur le registre Composer privé Wimakeit packages.wimakeit.be. Chaque release est annoncée sur l'onglet Changelog + les actualités Wimakeit et suit le versioning sémantique — composer update reste sûr à l'intérieur d'une version majeure.
Tous les templates .phtml sont overridables depuis votre thème : copiez le fichier dans app/design/frontend/{VotreVendor}/{theme}/Wimakeit_{Module}/templates/ en respectant le même chemin relatif. Blocks, ViewModels et Helpers s'override via DI preference dans votre propre module custom — déclarez <preference for="Wimakeit\…\OriginalClass" type="VotreVendor\Override\Class" /> dans etc/di.xml. Le XML layout s'étend (préféré) ou s'override de manière standard Magento. Les modules Wimakeit n'utilisent jamais le keyword final sur les classes que vous pourriez raisonnablement vouloir override — surcharger est un scénario de premier ordre, pas un hack.

Support & sécurité 3

Ouvrez un ticket via le formulaire de contact wimakeit.be ou envoyez un email à contact@wimakeit.com avec le nom du module, sa version, votre version Magento/Mage-OS et les étapes pour reproduire. Les correctifs sont livrés dans le prochain patch. Le support Wimakeit répond en français, anglais et néerlandais en jours ouvrables (horaires CET).
Envoyez les rapports privés à contact@wimakeit.com avec le préfixe [SECURITY] dans l'objet — précisez le module, la version et les étapes de reproduction. Accusé de réception en jours ouvrables, mention dans le Changelog sur souhait du déclarant. Wimakeit est une SRL belge (société à responsabilité limitée) soumise au droit belge et européen sur la vie privée et la divulgation responsable.
Oui. Meilisearch Engine ne stocke que les données nécessaires à son périmètre fonctionnel, ne suit jamais les acheteurs entre les sites, et ne fait aucun appel tiers par défaut. Combinez-le avec le module RGPD Wimakeit pour publier les bandeaux cookies et les formulaires de demande d'accès aux données conformes aux guidances DPA belge, française et néerlandaise. Les hébergeurs Wimakeit (OVH Roubaix / Gravelines, Cblue Gembloux) gardent toutes les données en UE.

À propos de Wimakeit 1

Wimakeit est une agence Magento certifiée Adobe basée à Presles, en Wallonie (entre Charleroi et Namur), Belgique, qui construit des boutiques Magento et Mage-OS depuis 2020, pour des clients BE / FR / NL. Chaque module de cette marketplace tourne en production chez au moins un client Wimakeit (eat your own dog food). Ligne directe avec les développeurs qui ont écrit le code, support multilingue (FR / EN / NL), horaires CET, pas d'offshore. Consultez nos références pour voir le type de projets Magento que nous livrons.

Quelque chose n'est pas couvert par la FAQ ?

Signalez un bug ou posez une question — le formulaire est pré-rempli avec ce module.

Signaler un bug

Changelog

Categories: Security, Feature, Fix, Perf, Admin, Deps.

[2.2.1] - 2026-08-10

Fix

  • Category pages no longer all return the same products: cached listings are keyed per category, filter set and customer group.
  • Layered navigation filters and product ranking now survive a cache hit instead of coming back empty.
  • Cached results are cleared when the catalog is reindexed, a product changes or a category is saved — no more stale listings until the cache expires.
  • Products are no longer left behind in the index when a deletion and an update overlap.

Perf

  • Full page cache restored across the whole storefront: a search block was disabling it on every frontend page, not just on search and category pages.
  • Search no longer writes a log line per request, which filled log files on busy catalogs.

[2.1.2] - 2026-08-07

Deps

  • PHP 8.5 certified — constraint widened to >=8.1 <8.6.

[2.1.1] - 2026-07-09

Fix

  • Installation no longer fails during setup:di:compile: three catalog attribute mappers still carried an outdated signature.

[2.1.0] - 2026-07-08

Feature

  • Layered navigation now works with Meilisearch: every "filterable in navigation" dropdown attribute is indexed so its facet returns the matching products.

[2.0.0] - 2026-07-07

Feature

  • Compatible with Magento / Mage-OS 2.4.9 through walkwizus 1.0.70 and the Meilisearch PHP v2 SDK.

Fix

  • Indexing writes documents again: a full reindex used to report success while pushing nothing to Meilisearch.
  • Category and search pages return products again instead of coming back empty.
  • Price-per-customer-group and category indexing overrides apply again after the upstream code was relocated.

Deps

  • Requires walkwizus/magento2-module-meilisearch ^1.0.70 and meilisearch/meilisearch-php ^2.0.0-beta.6. The Meilisearch SDK v2 is still pre-release, so the consuming project must allow its beta stability.

[1.12.8] - 2026-06-30

Fix

  • Category pages always show their products: when a category's position sort is missing from the search index, the proxy automatically retries without it instead of returning an empty page.

[1.12.7] - 2026-06-29

Fix

  • Accents now display correctly in autocomplete and search results: the search proxy decodes leftover HTML entities (such as &#233; for é) in indexed text — no reindex needed.

[1.12.6] - 2026-06-24

Fix

  • Products kept available by a manual stock override or a backorder are no longer indexed as out of stock.

[1.12.5] - 2026-06-05

Deps

  • PHP 8.4 deprecation cleanup — explicit-nullable params across constructors. No behavior change.

[1.12.4] - 2026-06-05

Deps

  • Marketing documentation refreshed to list PHP 8.4 in the supported PHP range.

[1.12.3] - 2026-06-05

Deps

  • PHP 8.4 certified — constraint widened to >=8.1 <8.5.

[1.12.2] - 2026-05-28

Fix

  • Adapter no longer crashes when Meilisearch returns a facet that isn't marked as filterable — it falls back to a safe empty result instead of throwing.

[1.12.1] - 2026-05-28

Fix

  • Autocomplete prices respect customer VAT settings again. calculateDisplayPrice reapplies the tax-inclusive / tax-exclusive rule per customer, so the price shown in the autocomplete matches the cart and product page.

[1.12.0] - 2026-05-28

Fix

  • Bundle product prices in autocomplete and search now match the storefront. The price mapper computes the rendered bundle price (option selections + price view) instead of only the base price.

[1.11.0] - 2026-05-28

Fix

  • Bundle products whose description is stored as an array no longer cause "Array to string conversion" warnings during reindex — the description truncate helper handles both shapes.

[1.10.34] - 2026-05-27

Feature

  • Autocomplete now exposes hasSearchedTerm, noResults and showAutocomplete Knockout observables, so themes can render a real "no results" state and keep the autocomplete container visible while loading.

[1.10.33] - 2026-05-12

Admin

  • Admin dashboard widget code extracted to companion module wimakeit/module-meilisearch-engine-admin-dashboard. The main module is now installable on stores that don't use wimakeit/module-admin-dashboard.

Deps

  • To keep the Meilisearch indexer/health widget on the admin dashboard, install wimakeit/module-meilisearch-engine-admin-dashboard alongside this module.

[1.10.32] - 2026-05-11

Feature

  • wmi_stock_status is now part of the partial-sync field map — stock status changes propagate to Meilisearch incrementally instead of waiting for a full reindex.

[1.10.31] - 2026-05-10

Feature

  • New Enable Debug Logging toggle (Stores → Configuration → Wimakeit → Meilisearch Engine → General), off by default. 9 hot paths (reindex queue cron, task cleanup, cache observer, multisearch controller, searchable updater, search cache, sync state, search adapter, partial sync) emit info/debug/notice/warning only when the toggle is on; error/critical always log.

Perf

  • Production stores stop emitting tens of thousands of trace lines per day in var/log/system.log once the toggle is left off.

Deps

  • Requires wimakeit/module-core 3.0.9+ for the shared debug logger virtual type.

[1.10.30] - 2026-05-08

Admin

  • Admin menu group standardized — module appears under a top-level Wimakeit_MeilisearchEngine entry with a Settings child that opens directly on the configuration section.
  • Config section path renamed from wimakeit_meilisearch to wimakeit_meilisearch_engine for consistency with the other Wimakeit modules. A data patch migrates existing core_config_data rows automatically on setup:upgrade — no manual reconfiguration needed.

[1.10.29] - 2026-04-29

Deps

  • Certified PHP 8.1 → 8.3 support. Composer php constraint tightened to >=8.1 <8.4.
  • Fixed implicit-nullable parameter declarations flagged by PHP 8.4-rc deprecation notices.

[1.10.28] - 2026-04-23

Fix

  • Category listings on stores with HT catalog prices (tax/calculation/price_includes_tax=0) now apply VAT correctly. Block\CustomerGroup::isPriceIncludingTax() returns the real Tax\Model\Config::priceIncludesTax() instead of a hard-coded true, so both TTC and Anowave TaxSwitch HT toggles render correct prices on autocomplete and live-search.
  • New ViewModel\Ssr preference applies the same tax rule server-side so SSR HTML of category and search listings matches the client-side rendering. Index stays raw (no risk of double-taxation elsewhere).

[1.10.27] - 2026-04-23

Fix

  • Reverted 1.10.26 (VAT applied at index time). That approach would have caused double-taxation on autocomplete and live-search paths, which apply VAT client-side. Prices are back to being indexed HT when the catalog is configured as HT — VAT is applied in the theme override instead.

[1.10.22] - 2026-04-16

Fix

  • Empty product grids on pages with a price facet (e.g. /fr/nos-libraires/<name>) fixed. IndexSettingsUpdater now registers price_<groupId> for every customer group as both filterable and sortable, so Meilisearch accepts the facet query the adapter builds.

[1.10.16] - 2026-03-19

Fix

  • Category page filters, sorting and pagination work again. The isSsrMode() check in search.js was disabling JS subscriptions on SSR-rendered category pages — now SSR initial state is used for first render only, while JS handles dynamic user interactions.
  • Loading spinner no longer stays stuck on SSR pages (added searchState.isLoading(false) after init).
  • Autocomplete hitsPerPage now respects catalog/frontend/grid_per_page instead of a hard-coded fallback.

[1.8.7] - 2026-02-24

Feature

  • Progress bar support during Meilisearch sync — new progressCallback parameter on syncBatch() and syncFromCsv() for real-time CLI feedback.

Fix

  • SKU values are now consistently handled as strings throughout SyncStateManager and PartialSyncService to prevent PHP type errors.
  • getIndexName() correctly resolved (was incorrectly calling resolve()).

[1.8.6] - 2026-02-24

Fix

  • Added string casting on SKU in SyncStateManager iteration loops (preloadHashes, updateHashBatch, getChangedSkus, deleteHashes).
  • Added string casting on SKU in PartialSyncService::syncBatch().

[1.8.5] - 2026-02-24

Fix

  • Index name resolver: switched from resolve() to getIndexName() for compatibility with Walkwizus MeilisearchBase.

[1.8.4] - 2026-02-24

Fix

  • SyncStateManager::hasChanged(), getStoredHash(), updateHash() now accept string|int for the SKU parameter with internal string casting.

[1.8.3] - 2026-02-24

Fix

  • PartialSyncService::buildPartialDocument() accepts int|string for entityId (matches what fetchPairs returns).

[1.8.2] - 2026-02-24

Fix

  • Replaced non-existent ClientManager with ConnectionManager from Walkwizus MeilisearchBase.

[1.8.0] - 2026-02-23

Feature

  • Partial Sync Service: send only changed fields (stock, price, status) to Meilisearch instead of full documents. Drastically reduces indexing load on ERP-driven imports.
  • SyncStateManager performs hash-based change detection to skip unchanged products.
  • New PartialSyncConfig admin section.

Admin

  • Sync now uses partial updates for stock/price changes; full reindex only when needed.

[1.6.4] - 2026-02-23

Fix

  • Search proxy UTF-8 error fixed via sanitizeUtf8() to handle malformed characters in Meilisearch responses (prevents JSON serialization errors).
  • Search proxy SearchQuery conversion fixed ("Call to a member function toArray() on array") by converting frontend JSON arrays to proper Meilisearch\Contracts\SearchQuery objects.
  • Double tax on prices fixed (e.g. 20.05 → 21.25). Meilisearch stores TVAC, so priceIncludesTax now always returns true in CustomerGroup block.

Admin

  • Simplified calculateDisplayPrice() in product.js — prices are passed through (Meilisearch already stores TVAC).

[1.6.3] - 2026-02-19

Feature

  • Meilisearch Search Proxy — new controller /meilisearch/search/multisearch routes autocomplete searches through Magento, so the backend cache is truly shared across all users/browsers. Configurable via Admin → Search Cache → "Use Search Proxy" (on by default). Falls back to direct Meilisearch if the proxy fails.

Admin

  • Autocomplete JS now calls the Magento proxy by default; direct Meilisearch call remains the fallback.

[1.6.2] - 2026-02-19

Fix

  • Backend cache now shared across users/browsers. SearchCacheService was using a generic CacheInterface instead of the dedicated meilisearch_search cache type — switched to FrontendPool so the cache type is honored. Respects bin/magento cache:enable meilisearch_search.

[1.6.1] - 2026-02-19

Feature

  • Multi-level cache system with configurable TTL. Frontend localStorage cache (default 5 min, max 100 queries) for autocomplete; backend Magento cache (default 15 min) shared across users; native Magento cache type meilisearch_search so the standard cache management UI and CLI work.
  • New admin Autocomplete Behavior group: Minimum Characters (default 3) and Debounce delay (default 500 ms).
  • New Debug section with "Throw On Error" — surfaces search errors to users instead of silent empty results (development only).
  • New admin button to manually flush the Meilisearch backend cache.

Security

  • API key validation in RetryableApiClient rejects placeholder values (CHANGE_ME, YOUR_API_KEY, etc.).
  • Search errors no longer expose stack traces by default.

Perf

  • Optimized task polling with exponential backoff (250 ms initial, 3 s max).
  • Model\Config has a bounded in-memory cache (MAX_CACHE_SIZE 100) for parsed config values.
  • DescriptionTruncatePlugin::truncateHtml() rewritten with early exits and fewer string operations.

Fix

  • Unbounded memory leak in Observer\ReindexProductAfterSave (static $processedProductIds now capped at 1000).
  • ObjectManager anti-pattern in SearchAdapter\ResponseFactory replaced with proper factory injection.
  • N+1 queries in Cron\ProcessReindexQueue replaced with batch product preload and attribute caching.
  • Reflection in SafeIndexerPlugin and SaveIndexValidatorPlugin replaced with injected SearchIndexNameResolver.
  • Silent search failures in SearchAdapter\Adapter get user-facing error messages (gated by debug mode).

[1.4.7] - 2026-02-06

Feature

  • New Document Content admin group: toggle Include Description on/off and set Description Max Length (default 150 chars). Truncates at word boundary, strips HTML, normalizes whitespace.
  • DescriptionTruncatePlugin on AttributeMapper::map() removes or truncates description/short_description depending on config.

Fix

  • Synced system.xml with upstream — restored the missing autocomplete_limit field and layered_navigation group.

Perf

  • Index size optimization: descriptions can be excluded entirely or trimmed to reduce Meilisearch index footprint.

[1.3.14] - 2026-01-20

Deps

  • Composer patch for Walkwizus SettingsManager to fix return-type compatibility with meilisearch-php 1.16.x (reverts return types to array).

[1.3.11] - 2026-01-19

Fix

  • SkipWalkwizusIndexerPlugin return type fixed from void to IndexerInterface (resolves "Return value must be of type IndexerInterface, null returned" during catalogsearch_fulltext reindex).
  • Plugin re-added to di.xml (was missing from source module).

[1.3.6] - 2026-01-09

Fix

  • SafeIndexerPlugin reflection error resolved by reading the property from BaseIndexerHandler instead of the interceptor (was failing during reindex with "Property searchIndexNameResolver does not exist").

[1.3.5] - 2026-01-08

Fix

  • .block.filter .filter-content max-width 100% on mobile.

[1.3.4] - 2026-01-08

Fix

  • Mobile filter button visibility (display: flex !important).
  • Z-index hierarchy fixed: button (900), overlay (999), popup (1000).
  • .filter-option padding set to 5px.
  • noUiSlider handle positioning fixed (top: -3px, 20 px size).
  • Desktop hide rule loosened so the mobile override applies properly.

[1.3.3] - 2026-01-08

Feature

  • Mobile Filter Popup: floating "Filters" button fixed to the bottom of the screen, badge counter for active filters, slide-in popup from the right (85% width, max 340 px), dark overlay with click-to-close and Escape-key support, sticky footer with "Apply Filters" button, iOS scroll lock with position restoration.
  • Override of Walkwizus facets.html template with full mobile popup structure.

Admin

  • Refactored layer-navigation styles: clear desktop/mobile separation, CSS custom property --header-height, transform/visibility for smooth animations.

[1.3.1] - 2026-01-08

Feature

  • Smart pagination JS: ellipsis-style page numbers as a Knockout.js override of the Walkwizus pagination component.
  • Full styles for layered navigation (checkbox, swatch, price slider).

Fix

  • Pagination was rendering every page number instead of using ellipsis.

[1.3.0] - 2026-01-08

Feature

  • New IndexHealthMonitor service to detect missing attributes.
  • New SettingsBackupService for automatic backup/restore of index settings (stored in var/meilisearch_backups/).
  • New IndexSettingsValidator to verify settings were actually saved on Meilisearch.
  • New RetryableApiClient HTTP client with exponential backoff and retry.
  • New SaveIndexValidatorPlugin validates index health after every saveIndex to catch silent failures.
  • New CLI Health Check command (wimakeit:meilisearch:health): check health, create backups (--backup), list backups (--list-backups), restore (--restore=…).
  • Configurable Maximum Results admin setting (was hard-coded to 10 000).
  • Smart pagination with ellipsis, jump-to-page dropdown for >10 pages, item-count display, responsive design.
  • Translation files for en_US, fr_FR, nl_NL, es_ES covering all UI strings.

Security

  • escapeFilterValue() in Mapper.php prevents filter injection.
  • escapeHtml() in product.js prevents XSS on autocomplete render.
  • SSL verification (CURLOPT_SSL_VERIFYPEER) enabled in RetryableApiClient.
  • File-permission checks in SettingsBackupService before writing.
  • All settings changes logged with full context for audit.

Perf

  • Layered-navigation facet config (labels, options) cached in memory per store.
  • CleanTasksCommand and CleanTasks cron switched to RetryableApiClient (replaces raw cURL).

Fix

  • Settings no longer silently lost during cleanIndex (auto-backup + auto-restore).
  • Attribute updates validated to ensure they were actually persisted.
  • Strict comparison for swatch type checks.
  • Division-by-zero in jitter calculation fixed.

[1.0.6] - 2026-01-08

Fix

  • SafeIndexerPlugin return types corrected (must return IndexerInterface, not void). Prevents "Return value must be of type IndexerInterface, null returned" during indexation.

[1.0.2] - 2025-12-15

Fix

  • Removed hard dependency on Anowave\TaxSwitch in the CustomerGroup block — prevents errors when that module is not installed.

[1.0.0] - 2024-12-15

Feature

  • Initial release.
  • Custom Meilisearch search adapter for Magento 2.
  • Enhanced autocomplete frontend (6-product grid) with image, name, SKU, price, AJAX Add-to-Cart.
  • Partial SKU search (sku_parts field).
  • Dynamic attribute management (searchable / filterable / sortable from admin).
  • Auto-configuration of Magento attributes ("Use in Search = Yes" toggled automatically).
  • New CLI wimakeit:meilisearch:sync-settings.
  • Customer-group-based pricing (price_<group>) in autocomplete and listings.
  • Custom ranking rules support.

Deps

  • Requires walkwizus/magento2-module-meilisearch.

Vous avez trouvé un bug ? Faites-nous-en part.

Un court formulaire s'ouvre dans un nouvel onglet — le nom du module et votre langue sont déjà pré-remplis. Décrivez ce que vous avez tenté, ce qui n'a pas fonctionné, et nous vous répondrons sous un jour ouvré.

Signaler un bug pour Meilisearch Engine
SKU module : wimakeit-module-meilisearch-engine · Langue : fr_FR

Besoin d'aide ?

Notre équipe est disponible pour vous accompagner dans l'intégration.

Contactez-nous
Planifier un appel