Estoque Magento 2 não atualiza depois de uma venda, cancelamento, importação ou sincronização com o ERP? O saldo cadastrado em uma fonte pode estar correto enquanto a quantidade vendável continua zerada, atrasada ou diferente no frontend. Isso acontece porque quantidade física, reservas, fontes e estoque comercial não representam a mesma informação.
Antes de editar tabelas, criar compensações ou reindexar toda a loja, escolha um SKU afetado e acompanhe o caminho completo do estoque. Os dez testes abaixo ajudam a identificar onde a atualização parou sem provocar disponibilidade indevida ou venda além do saldo.
Estoque Magento 2 não atualiza: registre o cenário
Comece anotando o SKU, produto, site, visão de loja, fonte de estoque, quantidade esperada e quantidade exibida. Registre também qual evento deveria ter alterado o saldo: pedido, cancelamento, faturamento, envio, reembolso, importação ou chamada de API.
Verifique se o problema afeta todos os produtos ou apenas determinados tipos. Um erro restrito a produtos configuráveis, kits ou itens integrados ao ERP exige uma investigação diferente de uma indisponibilidade geral do catálogo.
1. Diferencie quantidade física de quantidade vendável
No modelo de inventário com múltiplas fontes, a quantidade registrada na origem não precisa ser igual ao saldo disponível para novas compras. A quantidade vendável considera, entre outros elementos, as fontes associadas ao estoque, reservas pendentes e configurações de disponibilidade.
Por isso, ver um número positivo no Admin não comprova que o produto possa ser comprado. Compare, para o mesmo SKU:
- quantidade cadastrada em cada fonte;
- status disponível ou indisponível da fonte;
- estoque associado ao canal de venda;
- quantidade vendável apresentada pelo sistema;
- reservas relacionadas a pedidos ainda em processamento.
2. Confirme a relação entre site, estoque e fontes
Uma fonte com saldo positivo pode não atender o site no qual o produto está sendo vendido. No Admin, revise a associação do canal de venda ao estoque e confirme quais fontes pertencem a ele. Em operações com lojas, centros de distribuição ou retiradas diferentes, é fácil atualizar uma origem que não abastece aquele website.
Evite alterar essas associações diretamente em produção sem avaliar pedidos em andamento. Uma mudança pode modificar a origem utilizada no cálculo de disponibilidade e na separação dos itens.
3. Verifique o status do produto em cada fonte
A quantidade pode ser maior que zero e, ainda assim, o item estar marcado como indisponível na fonte. Essa combinação costuma aparecer depois de importações incompletas ou integrações que enviam apenas o valor numérico.
Confirme também se a extensão do ERP atualiza o código correto da fonte. Nomes parecidos no painel não garantem que o identificador enviado pela API seja o esperado. Preserve o payload e a resposta da integração para comparar o dado transmitido com o efetivamente gravado.
4. Investigue reservas inconsistentes
As reservas ajudam a proteger o saldo durante o ciclo do pedido. Se um fluxo personalizado, cancelamento ou integração não concluir corretamente as etapas esperadas, a soma das reservas pode deixar a quantidade vendável diferente do estoque físico.
Em um terminal executado com o usuário da aplicação, consulte os comandos disponíveis e liste inconsistências:
bin/magento list inventory
bin/magento inventory:reservation:list-inconsistencies
Leia toda a saída e relacione cada ocorrência ao pedido correspondente. Não execute a criação automática de compensações sem validar se o pedido foi realmente cancelado, concluído ou importado de forma incorreta. Uma compensação aplicada ao pedido errado pode liberar unidades que continuam comprometidas.
Se houver repetição de vendas ou notificações, descarte também uma falha de idempotência. O roteiro sobre pedidos duplicados no Magento 2 mostra como comparar carrinhos, pedidos e eventos de pagamento antes de cancelar registros.
5. Confira consumidores e filas de mensagens
Parte do processamento de inventário pode depender de consumidores de filas. Liste os consumidores reconhecidos pela instalação:
bin/magento queue:consumers:list
Procure pelo consumidor de atualização do status vendável e confirme, na configuração de processos do ambiente, se ele está sendo iniciado e reiniciado corretamente. Também verifique logs do gerenciador utilizado, como Supervisor ou serviço equivalente.
Executar manualmente um consumidor pode servir como teste controlado, mas não substitui a correção do processo permanente. Antes disso, confirme o nome retornado pela própria instalação, a conexão de filas configurada e o impacto sobre a carga do banco.
6. Analise cron, filas acumuladas e falhas recorrentes
Mesmo quando o cron aparece configurado, ele pode estar atrasado, concorrendo com outra execução ou encerrando tarefas por falta de memória. Consulte os logs da aplicação e o histórico de cron, procurando mensagens no mesmo intervalo em que o estoque deixou de atualizar.
Em homologação ou durante uma janela controlada, o comando abaixo pode ajudar a observar a execução:
bin/magento cron:run
Não conclua que o problema foi resolvido apenas porque uma execução manual terminou. A causa pode estar no agendamento do sistema operacional, no usuário incorreto, em bloqueios ou na ausência de monitoramento dos consumidores.
7. Verifique o estado dos indexadores
Um indexador inválido ou suspenso pode manter o frontend diferente do cadastro administrativo. Consulte primeiro o estado atual:
bin/magento indexer:status
bin/magento indexer:show-mode
Se houver índice atrasado, descubra por que ele não foi processado antes de iniciar uma reindexação completa. O guia de recuperação de indexadores Magento 2 travados ajuda a avaliar filas, cron e impacto de uma reindexação.
8. Separe estoque incorreto de cache ou frontend atrasado
Teste o produto por uma sessão anônima, uma conta autenticada e, se possível, por uma consulta de API usada pela loja. Compare a resposta do backend com a mensagem apresentada na página.
Se o saldo vendável estiver correto, mas o botão continuar desabilitado, investigue cache de página, blocos privados, tema, JavaScript e extensões. Quando o produto parece disponível, mas falha ao entrar no carrinho, siga os testes para o caso em que o produto não adiciona ao carrinho no Magento 2.
Limpar todo o cache repetidamente pode ocultar o sintoma por alguns minutos sem corrigir a atualização do inventário.
9. Audite a integração com ERP, WMS ou marketplace
Registre o identificador da requisição, horário, SKU, fonte, quantidade enviada, código HTTP e corpo da resposta. Uma integração pode receber sucesso no transporte e ainda enviar a fonte errada, sobrescrever um saldo mais novo ou repetir uma atualização antiga.
Compare os fusos horários e a ordem dos eventos. Se dois sistemas escrevem no mesmo estoque, defina qual deles é a origem oficial e como conflitos serão resolvidos. Também confirme se o conector trata quantidade e status de disponibilidade como campos separados.
10. Reproduza o ciclo completo em homologação
Depois de localizar a camada suspeita, reproduza um ciclo com um SKU de teste: atualização da fonte, criação do carrinho, pedido, pagamento, cancelamento ou envio, conforme o cenário. Observe as alterações de quantidade e reservas em cada etapa.
Valide produtos simples e configuráveis, compra como visitante, cliente autenticado e o método de pagamento envolvido. A correção somente deve seguir para produção quando a equipe conseguir explicar por que o saldo divergiu e demonstrar que o fluxo volta a convergir.
O que evitar durante o diagnóstico
- alterar diretamente tabelas de inventário ou reservas;
- criar compensações para todos os pedidos sem análise individual;
- reindexar tudo durante o pico de acesso;
- desativar o controle de estoque para liberar vendas;
- apagar filas, logs ou evidências antes de identificar a origem;
- testar cancelamentos e faturamentos irreversíveis em pedidos reais.
Conclusão
Quando o estoque Magento 2 não atualiza, a causa pode estar na fonte, associação ao site, reserva, consumidor, cron, indexador, cache ou integração. O caminho mais seguro é rastrear um SKU e um evento específico, comparando a quantidade física com o saldo realmente vendável.
Se a divergência afeta pedidos reais ou volta depois de ajustes manuais, a equipe do Suporte Magento pode analisar os processos de inventário, filas e integrações sem tratar o banco de dados como primeira opção.
Perguntas frequentes
Por que o Magento mostra estoque positivo, mas o produto fica indisponível?
Porque a quantidade da fonte não é o único dado usado na venda. A disponibilidade também depende do status da fonte, da associação ao estoque do site, das reservas e das configurações do produto.
Posso apagar reservas de estoque do Magento?
Não é recomendável apagar reservas diretamente no banco. Primeiro relacione a inconsistência ao pedido e use os mecanismos de compensação somente após confirmar o estado comercial da venda.
Reindexar corrige o saldo vendável?
Pode atualizar uma exibição atrasada, mas não corrige fonte errada, reserva inconsistente, consumidor parado ou integração defeituosa. Consulte o estado dos indexadores e identifique a causa antes da reindexação.
Como saber se o problema está no ERP ou no Magento?
Compare o payload enviado pelo ERP, a resposta recebida, a fonte informada e o registro final no Magento. Use identificadores e horários para rastrear a mesma atualização entre os dois sistemas.

