Kowal Reservation Cleaner para Magento 2
Para quem é este módulo
O módulo é indicado se:
- os níveis de stock forem importados regularmente a partir do ERP
- o Magento não for o principal sistema de gestão de stock
- as reservas MSI distorcerem a
salable quantity - for necessária uma limpeza de reservas rápida, previsível e automática
- a loja funcionar com vários stocks e a limpeza tiver de abranger apenas alguns deles
O módulo não se destina a lojas que gerem os níveis de stock exclusivamente no Magento e dependem da lógica completa do MSI em tempo real.
O problema que resolve
No Magento 2 standard com MSI, encomendas, cancelamentos e expedições sucessivos registam dados em inventory_reservation. Em ambientes com integração ERP, estes registos muitas vezes deixam de ser necessários do ponto de vista operacional, mas continuam a influenciar a disponibilidade dos produtos e o diagnóstico dos níveis de stock.
Os efeitos mais comuns:
salable quantitysubestimada- discrepâncias entre o Magento e o ERP
- número crescente de registos em
inventory_reservation - diagnóstico mais difícil de problemas de stock
- carga adicional nos cálculos relacionados com a disponibilidade
Principais funcionalidades
- execução automática com o Magento CRON
- execução manual por CLI
- modos
full_reset,log_onlyeclean_after_erp_sync - bloqueio contra a execução paralela do processo
- reindexação opcional após a limpeza
- limpeza opcional da cache no final
- registo técnico em ficheiro
- possibilidade de limitar a limpeza a stocks selecionados
Como funciona o módulo
O módulo regista uma tarefa CRON executada com frequência, mas a execução efetiva só ocorre quando a hora atual corresponde à configuração. Assim, não é necessário reconstruir dinamicamente o agendamento do sistema após cada alteração das definições.
Fluxo do processo:
- Verificação de que o módulo está ativo.
- Verificação de que o ambiente é permitido.
- Verificação do agendamento.
- Aplicação do bloqueio do processo.
- Contagem dos registos de reservas.
- Execução da limpeza ou apenas do registo.
- Reindexação opcional.
- Limpeza opcional da cache.
- Libertação do bloqueio e gravação do log.
Modos de funcionamento
Full Reset
A variante mais simples e rápida para lojas ERP-first.
Quando a limpeza abrange todos os stocks, o módulo utiliza:
TRUNCATE TABLE inventory_reservationEsta solução é a mais eficiente quando existe um grande número de registos.
Log Only
Modo de diagnóstico. O módulo não remove dados, apenas conta os registos e grava o resultado no log.
Clean After ERP Sync
Modo destinado a ser executado imediatamente após a importação dos níveis de stock a partir do ERP. Funcionalmente, limpa as reservas tal como full_reset, mas organiza o modelo de implementação e o agendamento.
Limpeza apenas para stocks selecionados
O módulo também suporta o cenário de limpeza apenas para os stocks indicados.
Funcionamento:
- se a lista de stocks estiver vazia, toda a tabela de reservas é limpa
- se forem indicados stocks específicos, o módulo remove apenas os registos desses
stock_id
Neste caso, é utilizada uma consulta seletiva:
DELETE FROM inventory_reservation WHERE stock_id IN (...)Esta abordagem é mais lenta do que TRUNCATE, mas permite manter as reservas dos restantes stocks e oferece maior controlo em implementações mais complexas.
Benefícios para o negócio
- maior conformidade dos níveis de stock entre o Magento e o ERP
- menos erros relacionados com a
salable quantity - diagnóstico mais simples dos níveis de stock
- menor risco de acumulação de dados desnecessários no MSI
- possibilidade de implementação sem desativar o Magento MSI
- processo previsível e rápido, possível de automatizar
Configuração
Painel de administração:
Stores -> Configuration -> Kowal -> Reservation Cleaner
Definições mais importantes:
- ativação ou desativação do módulo
- seleção do modo de funcionamento
- hora e minuto de execução
- seleção dos stocks a limpar
- ativação da reindexação
- tipo de reindexação
- limpeza da cache após o processo
- registo
- tempo de validade do bloqueio
- limitação do funcionamento a ambientes selecionados
Execução a partir da CLI
Comando básico:
bin/magento kowal:reservation:cleanExemplos de utilização:
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,2Isto permite executar o módulo manualmente, para testes ou diretamente após a conclusão da importação ERP.
Registo e segurança
O log técnico é gravado em:
var/log/kowal_reservation_cleaner.log
O módulo inclui:
- bloqueio do processo
- tratamento de exceções
- controlo do ambiente
- controlo da janela temporal
- possibilidade de funcionamento no modo
log_only
Modelo de implementação recomendado
A variante mais prática para lojas ERP-first:
- modo
full_reset - registo ativo
- agendamento executado pouco depois da importação ERP
- reindexação
inventory_onlyou separadamente no processo de integração - campo de stocks vazio para uma limpeza completa ou stocks indicados quando for necessária uma variante seletiva
Limitações
Este módulo:
- não corrige a lógica MSI
- não reconstrói o histórico de reservas
- não substitui uma integração ERP corretamente concebida
- não é uma solução universal para todas as lojas Magento
É uma ferramenta especializada para implementações em que o ERP gere o nível de stock real.
Pacote e nome do módulo
- Magento module:
Kowal_ReservationCleaner - Composer package:
kowal/reservation-cleaner
CTA
Precisa de implementar ou adaptar o módulo à integração ERP, a vários stocks ou a um agendamento personalizado? Contacte-nos através de kowal.store e descreva o seu modelo de sincronização de stock.













