Indexer Optimizer
v1.0.14
Indexer Optimizer
- 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
- Installation prête pour Composer
Indexer Optimization
Réduisez les temps de reindex Magento sur les gros catalogues, de plusieurs heures à quelques minutes. Ce module intercepte les indexers natifs Magento (price, EAV, category-product, catalog rule, stock, fulltext) avec des routines de batch optimisées et des tailles de batch configurables, les exécute dans le bon ordre de dépendance et évite le travail redondant — par exemple quand catalog_category_product et catalog_product_category reconstruiraient deux fois la même table partagée.
Une seule commande CLI, bin/magento wimakeit:indexer:reindex-all, remplace la séquence habituelle d'appels indexer:reindex. Elle affiche une progress bar en temps réel, exécute chaque indexer dans le bon ordre, et expose un flag --skip-fulltext pour les stores qui délèguent la recherche à Meilisearch ou à un worker séparé.
À qui ça s'adresse
- Marchands avec de gros catalogues (10k+ SKUs, produits bundle, ou de nombreux groupes clients) où le reindex natif est douloureusement lent
- Stores avec import piloté par ERP où le reindex partiel ou complet est déclenché plusieurs fois par jour
- Stores utilisant Meilisearch ou OpenSearch comme moteur de recherche, où les indexers catalog doivent tourner mais le fulltext est géré séparément
- Équipes DevOps qui veulent une commande de reindex unique et scriptable pour les déploiements et le cron
Bénéfices clés
- Une commande pour tout reindexer —
wimakeit:indexer:reindex-allexécute tous les indexers catalog dans l'ordre de dépendance, avec progress bar globale et résumé temps par indexer. - Tailles de batch configurables — ajustez les batch sizes price, EAV, category-product, catalog rule, bundle et stock depuis l'admin, pour matcher la mémoire serveur et le profil base de données.
- Toggles par indexer — gardez l'indexer Magento natif pour un index spécifique que vous ne voulez pas surcharger ; l'optimiseur est opt-out par index.
- Reindex redondants évités —
catalog_category_productetcatalog_product_categorypartagent une table ; si l'un est déjà valide, l'autre est skippé. Gain de plusieurs minutes à chaque deploy. - Fulltext vérifié sur dépendances — avant que
catalogsearch_fulltexttourne, le module vérifie que les indexers prérequis sont valides et les reindexe au besoin. - OPTIMIZE TABLE après full reindex — l'optimisation MySQL optionnelle des tables récupère de l'espace et défragmente les tables d'index après les gros reindex.
- Détecteur d'indexer bloqué — un cron horaire log un warning dans
system.logsi un indexer reste en état "invalid" au-delà du seuil configuré.
Compatibilité
- Magento 2.4.x / équivalent Mage-OS
- PHP 8.1, 8.2, 8.3
- Nécessite
wimakeit/module-core3.0.9 ou supérieur - Fonctionne aux côtés de
wimakeit/module-meilisearch-engine(utilisez--skip-fulltextet laissez Meilisearch gérer la recherche) - Compatible avec la recherche MySQL native et OpenSearch
Installez ce module via Composer. Assurez-vous que votre auth.json est configuré avec vos identifiants Wimakeit.
$ composer require wimakeit/module-indexer:^1.0.14
$ 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.
Prerequisites
The price indexer must run in dimension mode none. The optimized routines write to the base catalog_product_index_price table with a website_id column; the dimensional modes (website, customer_group, website_and_customer_group) create per-dimension tables (_ws0, _cg0, ...) that this module does not populate. The price plugin transparently falls back to Magento's native indexer when dimension mode is anything other than none, and wimakeit:indexer:fast-reindex aborts with an explicit error.
Verify and configure:
bin/magento indexer:show-dimensions-mode catalog_product_price
bin/magento indexer:set-dimensions-mode catalog_product_price none
bin/magento indexer:reindex catalog_product_price
bin/magento cache:flush
Required dependency
This module requires wimakeit/module-core 3.0.9 or later. Composer will pull it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
ACL permissions
After installation, one ACL resource is registered under System → Permissions → User Roles:
| Resource | Default |
|---|---|
Wimakeit_Indexer::config (edit module configuration) | granted to Administrator role only |
Configuration
The module ships with safe production defaults. Go to Stores → Configuration → Catalog → Catalog → Wimakeit Indexer Optimization only if you want to change them.
General
| Setting | Default |
|---|---|
| Enable Optimized Indexers | Yes |
| Enable Performance Logging | No — turn on temporarily to measure batches |
| Enable Table Optimization | Yes (runs OPTIMIZE TABLE after full reindex) |
| Stale Indexer Threshold (hours) | 4 |
Per-indexer toggles
| Setting | Default |
|---|---|
| Enable Price Optimizer | Yes |
| Enable EAV Optimizer | Yes |
| Enable Category Optimizer | Yes |
| Enable Catalog Rule Optimizer | Yes |
| Enable Stock Optimizer | Yes |
Batch sizes
| Setting | Default |
|---|---|
| Price Indexer Batch Size | 1000 (recommended 500–2000) |
| Bundle Price Batch Size | 2000 (recommended 500–2000) |
| Category-Product Batch Size | 5000 |
| EAV Indexer Batch Size | 5000 |
| Catalog Rule Batch Size | 5000 |
| Stock Indexer Batch Size | 5000 |
CLI commands
# Reindex all catalog indexers in dependency order, with progress bar
bin/magento wimakeit:indexer:reindex-all
# Skip fulltext (when Meilisearch handles search)
bin/magento wimakeit:indexer:reindex-all --skip-fulltext
# Without progress bar (cron/scripts)
bin/magento wimakeit:indexer:reindex-all --no-progress
# Detailed indexer status
bin/magento wimakeit:indexer:status --detailed
# Category-product reindex (full or per-id)
bin/magento wimakeit:indexer:category-product --full
bin/magento wimakeit:indexer:category-product --product-ids=123,456
# Fast bundle-price reindex
bin/magento wimakeit:indexer:fast-reindex
Cron jobs (registered automatically)
| Job | Schedule |
|---|---|
wimakeit_indexer_stale_detector (warn if indexer stuck invalid) | hourly |
No setup needed — just make sure Magento cron is running.
- Version
- v1.0.14
- Licence
- Abonnement annuel
- Support
- 12 mois
- Dernière mise à jour
- 5 juin 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ä
- Non compatible
- Package
-
wimakeit/module-indexer
Vérifier la compatibilité
Indiquez votre stack pour vérifier la compatibilité du module.
Compatibilité 4
Tarification & licence 4
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
composer require wimakeit/module-indexer:^1.0.11, 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). 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-indexer:^1.0.11. Dans les pipelines CI/CD, injectez COMPOSER_AUTH en variable d'environnement JSON pour éviter de commiter auth.json. composer require, même code module, même schéma de base — pas de fork à maintenir, pas de changement de licence. composer update reste sûr à l'intérieur d'une version majeure. 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
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). 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. À propos de Wimakeit 1
Quelque chose n'est pas couvert par la FAQ ?
Signalez un bug ou posez une question — le formulaire est pré-rempli avec ce module.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[1.0.12] - 2026-06-02
Fix
- Price plugin now falls back to Magento's native indexer when the price indexer dimension mode is not
none, instead of silently leaving the per-dimension tables (_ws0,_cg0, ...) stale and causing 1146 "table doesn't exist" errors on bundle product saves. wimakeit:indexer:fast-reindexaborts with a clear error and the exactindexer:set-dimensions-modefix command when dimension mode is notnone.
[1.0.11] - 2026-05-10
Admin
- Enable Debug Logging now defaults to off on fresh installs, matching the convention adopted across every Wimakeit module after the core 3.0.9 rollout. Existing deployments with the value explicitly saved are not affected.
Perf
- Fresh deploys no longer write ~100+ info/debug/warning traces per indexer run into
var/log/system.log. Hard errors still log unconditionally.
[1.0.10] - 2026-05-10
Feature
- New Enable Logging toggle (Stores → Configuration → Catalog → Wimakeit Indexer → Logging). Four logger consumers (fulltext indexer plugin, stock indexer plugin, product-category plugin, optimized stock indexer) emit
info/debug/notice/warningonly when the toggle is on;error/criticalalways log.
Deps
- Requires
wimakeit/module-core3.0.9+ for the shared debug logger virtual type.
[1.0.9] - 2026-05-08
Admin
- Admin menu group standardized — module appears under a top-level Wimakeit_Indexer entry with a Settings child that opens directly on the native catalog configuration where the Wimakeit Indexer group lives.
Deps
- Certified PHP 8.1 → 8.3 support. Composer
phpconstraint tightened to>=8.1 <8.4.
[1.0.8] - 2026-04-29
Admin
- Internal release pipeline standardized (validate, tag, deploy, release stages). No functional change for merchants.
[1.0.7] - 2026-04-07
Deps
- Depends on
wimakeit/module-corefor shared CLI and config abstractions.
[1.0.6] - 2026-03-17
Admin
- CLI commands and config readers refactored to extend the shared abstractions provided by
wimakeit/module-core3.0 — consistent logging and option handling across all Wimakeit CLI commands.
[1.0.5] - 2026-03-12
Fix
wimakeit/module-corecomposer dependency now points to the published package (wimakeit/module-core) instead of the legacy nested path that brokecomposer installon stores that bypassed the GitLab registry.
[1.0.4] - 2026-03-12
Fix
- Indexer table-clear step now uses the context-aware
clearTableutility — safer when an indexer runs against a custom store scope or a partial dataset.
[1.0.3] - 2026-02-27
Admin
- New
wimakeit:indexer:statusandwimakeit:indexer:bundle-pricesCLI commands stabilized; admin tab definition consolidated under the shared Wimakeit_Core admin section.
[1.0.2] - 2025-12-18
Fix
- Added stock and
catalogrulecoverage to the optimized indexer plugins. Saving a product or price rule now triggers the optimized partial reindex path instead of falling back to a full reindex.
[1.0.1] - 2025-12-15
Admin
- Initial post-launch hotfix release — pipeline and package-name corrections so the module installs cleanly from the Wimakeit GitLab Composer Registry.
[1.0.0] - 2024-12-15
Feature
- Initial release with optimized bundle price indexer (
BundlePriceOptimized) and EAV attribute indexer (EavOptimized). - Delta indexing plugin to reduce work on incremental reindex.
- Auto-adjusted batch sizes for large catalogs.
- New CLI commands
wimakeit:indexer:fast-reindex,wimakeit:indexer:status,wimakeit:indexer:bundle-prices.
Admin
- New admin panel under Stores → Configuration → Catalog → Catalog → Wimakeit Indexer Optimization to tune batch sizes and toggle per-indexer optimizers.
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 Indexer OptimizerBesoin d'aide ?
Notre équipe est disponible pour vous accompagner dans l'intégration.