Kowal Reservation Cleaner pour Magento 2
À qui s’adresse ce module
Le module est adapté si :
- les stocks sont régulièrement importés depuis un ERP
- Magento n’est pas le système principal de gestion des stocks
- les réservations MSI perturbent
salable quantity - un nettoyage rapide, prévisible et automatique des réservations est nécessaire
- la boutique fonctionne avec plusieurs stocks et le nettoyage doit ne concerner que certains d’entre eux
Le module n’est pas destiné aux boutiques qui gèrent les stocks exclusivement côté Magento et s’appuient sur la logique MSI complète en temps réel.
Le problème qu’il résout
Dans Magento 2 standard avec MSI, les commandes, annulations et expéditions successives enregistrent des données dans inventory_reservation. Dans les environnements intégrés à un ERP, ces enregistrements ne sont souvent plus nécessaires sur le plan opérationnel, mais continuent d’influencer la disponibilité des produits et le diagnostic des stocks.
Les conséquences les plus fréquentes :
salable quantitysous-estimée- écarts entre Magento et l’ERP
- augmentation continue du nombre d’enregistrements dans
inventory_reservation - diagnostic plus difficile des problèmes de stock
- charge supplémentaire pour les calculs liés à la disponibilité
Fonctionnalités principales
- lancement automatique avec Magento CRON
- lancement manuel via CLI
- modes
full_reset,log_onlyetclean_after_erp_sync - verrouillage empêchant l’exécution parallèle du processus
- réindexation optionnelle après le nettoyage
- cache clean optionnel après la fin du processus
- journalisation technique dans un fichier
- possibilité de limiter le nettoyage aux stocks sélectionnés
Fonctionnement du module
Le module enregistre une tâche CRON lancée fréquemment, mais l’exécution réelle n’a lieu que lorsque l’heure actuelle correspond à la configuration. Il n’est donc pas nécessaire de reconstruire dynamiquement le planning système après chaque modification des paramètres.
Déroulement du processus :
- Vérification que le module est actif.
- Vérification que l’environnement est autorisé.
- Vérification du planning.
- Mise en place du verrouillage du processus.
- Comptage des enregistrements de réservation.
- Exécution du nettoyage ou uniquement de la journalisation.
- Réindexation optionnelle.
- Cache clean optionnel.
- Libération du verrou et enregistrement du log.
Modes de fonctionnement
Full Reset
La variante la plus simple et la plus rapide pour les boutiques ERP-first.
Lorsque le nettoyage concerne tous les stocks, le module utilise :
TRUNCATE TABLE inventory_reservationCette solution est la plus performante avec un grand nombre d’enregistrements.
Log Only
Mode de diagnostic. Le module ne supprime pas les données, il se contente de compter les enregistrements et d’inscrire le résultat dans le log.
Clean After ERP Sync
Mode destiné à être lancé juste après l’import des stocks depuis l’ERP. Fonctionnellement, il nettoie les réservations comme full_reset, mais il structure le modèle de déploiement et le planning.
Nettoyage uniquement pour les stocks sélectionnés
Le module prend également en charge le scénario de nettoyage limité aux stocks indiqués.
Fonctionnement :
- si la liste des stocks est vide, toute la table des réservations est nettoyée
- si des stocks précis sont indiqués, le module supprime uniquement les enregistrements pour ces
stock_id
Dans ce cas, une requête sélective est utilisée :
DELETE FROM inventory_reservation WHERE stock_id IN (...)Cette approche est plus lente que TRUNCATE, mais elle permet de conserver les réservations des autres stocks et offre davantage de contrôle dans les déploiements plus complexes.
Avantages business
- meilleure cohérence des stocks entre Magento et l’ERP
- moins d’erreurs liées à
salable quantity - diagnostic plus simple des stocks
- réduction du risque d’accumulation de données inutiles dans MSI
- possibilité de déploiement sans désactiver Magento MSI
- processus prévisible, rapide et automatisable
Configuration
Panneau d’administration :
Stores -> Configuration -> Kowal -> Reservation Cleaner
Paramètres les plus importants :
- activation ou désactivation du module
- choix du mode de fonctionnement
- heure et minute de lancement
- choix des stocks à nettoyer
- activation de la réindexation
- type de réindexation
- cache clean après le processus
- journalisation
- durée de validité du lock
- limitation du fonctionnement aux environnements sélectionnés
Lancement depuis CLI
Commande de base :
bin/magento kowal:reservation:cleanExemples d’utilisation :
bin/magento kowal:reservation:clean --mode=full_resetbin/magento kowal:reservation:clean --mode=log_onlybin/magento kowal:reservation:clean --reindex=inventory_onlybin/magento kowal:reservation:clean --dry-run=1bin/magento kowal:reservation:clean --stocks=1,2Cela permet de lancer le module manuellement, à des fins de test ou directement après la fin de l’import ERP.
Journalisation et sécurité
Le log technique est enregistré dans :
var/log/kowal_reservation_cleaner.log
Le module inclut :
- verrouillage du processus
- gestion des exceptions
- contrôle de l’environnement
- contrôle du créneau horaire
- possibilité de fonctionner en mode
log_only
Modèle de déploiement recommandé
La variante la plus pratique pour les boutiques ERP-first :
- mode
full_reset - journalisation active
- planning lancé peu après l’import ERP
- réindexation
inventory_onlyou séparément dans le processus d’intégration - champ des stocks vide pour un nettoyage complet, ou stocks indiqués lorsqu’une variante sélective est requise
Limites
Ce module :
- ne corrige pas la logique MSI
- ne reconstruit pas l’historique des réservations
- ne remplace pas une intégration ERP correctement conçue
- n’est pas une solution universelle pour toutes les boutiques Magento
C’est un outil spécialisé pour les déploiements dans lesquels l’ERP gère le stock réel.
Package et nom du module
- Module Magento :
Kowal_ReservationCleaner - Package Composer :
kowal/reservation-cleaner
CTA
Vous avez besoin d’un déploiement ou d’une adaptation du module à une intégration ERP, à plusieurs stocks ou à un planning personnalisé ? Contactez-nous via kowal.store et décrivez votre modèle de synchronisation des stocks.


















