Kowal Reservation Cleaner para Magento 2
Para quién es este módulo
El módulo es adecuado si:
- los niveles de stock se importan regularmente desde un ERP
- Magento no es el sistema principal de gestión de almacén
- las reservas MSI alteran
salable quantity - se necesita una limpieza de reservas rápida, predecible y automática
- la tienda trabaja con varios stocks y la limpieza debe aplicarse solo a algunos de ellos
El módulo no está destinado a tiendas que gestionan el stock exclusivamente desde Magento y dependen de toda la lógica MSI en tiempo real.
El problema que resuelve
En Magento 2 estándar con MSI, los pedidos, cancelaciones y envíos sucesivos guardan datos en inventory_reservation. En entornos con integración ERP, estos registros a menudo dejan de ser necesarios a nivel operativo, pero siguen influyendo en la disponibilidad de los productos y en el diagnóstico del stock.
Los efectos más habituales son:
salable quantitysubestimada- desajustes entre Magento y el ERP
- aumento progresivo del número de registros en
inventory_reservation - diagnóstico más difícil de los problemas de inventario
- carga adicional en los cálculos relacionados con la disponibilidad
Funciones principales
- ejecución automática desde Magento CRON
- ejecución manual mediante CLI
- modos
full_reset,log_onlyyclean_after_erp_sync - bloqueo para evitar la ejecución paralela del proceso
- reindexación opcional después de la limpieza
- limpieza de caché opcional al finalizar
- registro técnico en archivo
- posibilidad de limitar la limpieza a stocks seleccionados
Cómo funciona el módulo
El módulo registra una tarea CRON que se ejecuta con frecuencia, pero la ejecución real solo tiene lugar cuando la hora actual coincide con la configuración. Gracias a ello, no es necesario reconstruir dinámicamente la programación del sistema después de cada cambio de ajustes.
Flujo del proceso:
- Comprobación de si el módulo está activo.
- Comprobación de si el entorno está permitido.
- Comprobación de la programación.
- Creación del bloqueo del proceso.
- Recuento de los registros de reserva.
- Ejecución de la limpieza o solo del registro.
- Reindexación opcional.
- Limpieza de caché opcional.
- Liberación del bloqueo y guardado del log.
Modos de funcionamiento
Full Reset
La variante más sencilla y rápida para tiendas ERP-first.
Cuando la limpieza afecta a todos los stocks, el módulo utiliza:
TRUNCATE TABLE inventory_reservationEsta solución es la más eficiente con un gran número de registros.
Log Only
Modo de diagnóstico. El módulo no elimina datos, solo cuenta los registros y guarda el resultado en el log.
Clean After ERP Sync
Modo diseñado para ejecutarse justo después de importar el stock desde el ERP. Funcionalmente limpia las reservas igual que full_reset, pero ordena el modelo de implantación y la programación.
Limpieza solo para stocks seleccionados
El módulo también admite el escenario de limpieza únicamente para los stocks indicados.
Funcionamiento:
- si la lista de stocks está vacía, se limpia toda la tabla de reservas
- si se indican stocks concretos, el módulo elimina solo los registros de esos
stock_id
En ese caso se utiliza una consulta selectiva:
DELETE FROM inventory_reservation WHERE stock_id IN (...)Este enfoque es más lento que TRUNCATE, pero permite conservar las reservas de los demás stocks y ofrece mayor control en implantaciones más complejas.
Beneficios para el negocio
- mejor coherencia del stock entre Magento y el ERP
- menos errores relacionados con
salable quantity - diagnóstico más sencillo de los niveles de inventario
- menor riesgo de acumulación de datos innecesarios en MSI
- posibilidad de implantación sin desactivar Magento MSI
- proceso predecible y rápido que se puede automatizar
Configuración
Panel de administración:
Stores -> Configuration -> Kowal -> Reservation Cleaner
Ajustes principales:
- activar o desactivar el módulo
- selección del modo de funcionamiento
- hora y minuto de ejecución
- selección de stocks para la limpieza
- activación de la reindexación
- tipo de reindexación
- limpieza de caché después del proceso
- registro
- tiempo de validez del bloqueo
- limitación del funcionamiento a entornos seleccionados
Ejecución desde CLI
Comando básico:
bin/magento kowal:reservation:cleanEjemplos de uso:
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,2Esto permite ejecutar el módulo manualmente, en modo de prueba o directamente después de finalizar la importación del ERP.
Registro y seguridad
El log técnico se guarda en:
var/log/kowal_reservation_cleaner.log
El módulo incluye:
- bloqueo del proceso
- gestión de excepciones
- control del entorno
- control de la franja horaria
- posibilidad de trabajar en modo
log_only
Modelo de implantación recomendado
La variante más práctica para tiendas ERP-first:
- modo
full_reset - registro activo
- programación ejecutada poco después de la importación del ERP
- reindexación
inventory_onlyo por separado dentro del proceso de integración - campo de stocks vacío para una limpieza completa o stocks indicados cuando se requiere una variante selectiva
Limitaciones
Este módulo:
- no corrige la lógica MSI
- no reconstruye el historial de reservas
- no sustituye a una integración ERP correctamente diseñada
- no es una solución universal para todas las tiendas Magento
Es una herramienta especializada para implantaciones en las que el ERP gestiona el stock real.
Paquete y nombre del módulo
- Módulo Magento:
Kowal_ReservationCleaner - Paquete Composer:
kowal/reservation-cleaner
CTA
¿Necesitas implantar o adaptar el módulo a una integración ERP, varios stocks o una programación personalizada? Ponte en contacto con nosotros a través de kowal.store y describe tu modelo de sincronización de inventario.















