Dicas e Soluções

Magento 2 não baixa estoque após a venda? Faça 8 testes antes de alterar o saldo

Especialista analisando o fluxo de estoque e pedidos de uma loja virtual em ambiente de servidores

Magento 2 não baixa estoque após a venda? Faça 8 testes antes de alterar o saldo

Quando o Magento 2 não baixa estoque após a venda, alterar manualmente a quantidade pode gerar uma divergência ainda maior. Em lojas que utilizam o gerenciamento de inventário com múltiplas fontes, a plataforma pode reservar a quantidade no pedido e descontar o saldo físico da fonte somente em outra etapa do fluxo, como a expedição.

Antes de cancelar reservas, editar produtos ou executar comandos de compensação, registre o SKU, o número do pedido, o horário da compra, a quantidade vendável, a quantidade por fonte e o status comercial. Os oito testes abaixo ajudam a distinguir o comportamento esperado de uma falha de processamento.

Magento 2 não baixa estoque: físico e vendável são diferentes

O primeiro passo é identificar qual número permaneceu inalterado. A quantidade cadastrada em uma fonte representa o saldo físico daquele local. Já a quantidade vendável considera reservas, limites de falta de estoque e a composição do estoque associado ao canal de vendas.

Quando um pedido é realizado, o Magento pode registrar uma reserva negativa, reduzindo a quantidade disponível para novas compras sem diminuir imediatamente o saldo físico da fonte. A dedução da fonte normalmente está relacionada à criação da remessa. Portanto, ver a mesma quantidade na fonte logo após o pedido não confirma uma falha.

Se o problema observado for o inverso — um item com saldo que aparece indisponível na vitrine — consulte também os testes para quando um produto com estoque aparece esgotado no Magento 2.

1. Confirme se o pedido realmente foi criado

Uma autorização no intermediador de pagamento não significa, isoladamente, que o pedido foi persistido no Magento. Pesquise pelo número do pedido, e-mail do cliente, horário e identificador da transação. Verifique também se houve falha no retorno do gateway ou na integração responsável por concluir o carrinho.

Se não existe pedido em sales_order, não é esperado encontrar a reserva comercial correspondente. Nesse cenário, o diagnóstico deve começar no checkout, no módulo de pagamento e nos logs da integração, e não no inventário.

2. Verifique o SKU e o tipo de produto vendido

Confirme qual SKU efetivamente controla o estoque. Em um produto configurável, por exemplo, a movimentação ocorre no item simples selecionado pelo cliente. Bundles, kits e extensões de composição também podem distribuir a movimentação entre componentes diferentes.

Abra os itens do pedido e compare o SKU registrado com o produto consultado no painel. Essa verificação simples evita corrigir o saldo do produto pai enquanto a reserva está associada ao filho.

3. Compare quantidade da fonte e quantidade vendável

No painel administrativo, verifique o saldo em cada fonte e a quantidade vendável apresentada na grade de produtos. Faça a comparação antes e depois de um pedido controlado em homologação ou com um SKU de teste.

  • Fonte inalterada e vendável reduzida: pode ser o fluxo normal antes da remessa.
  • Fonte e vendável inalteradas: investigue a criação da reserva e o estoque associado ao website.
  • Vendável negativa ou inesperada: procure reservas ausentes, duplicadas ou sem compensação.
  • Apenas uma store view apresenta o problema: confira o website e o canal de vendas, pois o estoque não é definido pela store view isoladamente.

4. Confirme o estoque associado ao website

Em uma operação com múltiplos estoques, cada estoque deve estar relacionado ao canal de vendas correto. Uma fonte pode ter mercadoria disponível e, ainda assim, não participar do estoque usado pelo website em que o pedido foi feito.

Revise a associação entre website, estoque e fontes. Confira também se a fonte está habilitada e se o SKU possui quantidade cadastrada nela. Evite remover ou reassociar fontes diretamente em produção sem avaliar pedidos abertos, reservas existentes e integrações com ERP ou WMS.

5. Procure a reserva vinculada ao pedido

Use primeiro os comandos disponíveis na instalação para identificar os recursos de inventário:

bin/magento list inventory:reservation
bin/magento inventory:reservation:list-inconsistencies --help

O primeiro comando não modifica dados. O segundo exemplo exibe a ajuda da rotina, permitindo confirmar os parâmetros suportados pela versão instalada antes de qualquer execução.

Também é possível realizar uma consulta somente de leitura na tabela de reservas, usando o SKU exato:

SELECT reservation_id, stock_id, sku, quantity, metadata
FROM inventory_reservation
WHERE sku = 'SKU-DO-PRODUTO'
ORDER BY reservation_id DESC;

O campo de metadados ajuda a relacionar a movimentação ao evento e ao pedido. Não apague nem edite registros diretamente no banco: uma reserva aparentemente incorreta pode possuir uma compensação posterior ou depender de outro estágio do fluxo.

6. Entenda em qual etapa ocorre a dedução da fonte

Se a quantidade vendável caiu, mas o saldo da fonte continua igual, verifique se a remessa foi criada. Em fluxos usuais do inventário com múltiplas fontes, a reserva protege a disponibilidade na venda, enquanto a seleção e a dedução da fonte são processadas na expedição.

Crie uma remessa apenas se isso corresponder ao processo logístico real. Não antecipe a expedição somente para “forçar” o estoque a mudar, pois isso pode notificar integrações, alterar o estado operacional do pedido e dificultar cancelamentos.

7. Analise cancelamentos, reembolsos e reservas compensatórias

O cancelamento de um pedido pode gerar uma reserva positiva para devolver a quantidade vendável. Porém, o resultado depende da etapa alcançada pelo pedido e da movimentação já realizada. Uma devolução após remessa, por exemplo, não deve ser tratada da mesma forma que um cancelamento anterior à expedição.

Procure no histórico do pedido eventos repetidos, cancelamentos parciais e ações executadas pelo ERP, gateway ou usuário administrativo. Se a loja apresenta produtos indisponíveis mesmo com saldo, a análise conjunta de reservas e dos indexadores Magento 2 inválidos ou travados ajuda a separar divergência de inventário de informação desatualizada na vitrine.

8. Revise filas, cron, logs e customizações

Integrações e módulos podem alterar o momento em que pedidos, remessas e ajustes são processados. Verifique se existem consumidores de fila parados, tarefas agendadas atrasadas ou exceções próximas ao horário da compra.

bin/magento cron:status
bin/magento queue:consumers:list
bin/magento indexer:status
grep -iE "inventory|reservation|source|shipment" var/log/system.log var/log/exception.log

O comando de status do cron pode não estar disponível em todas as versões; confirme com bin/magento list cron. Observe também os logs próprios do ERP, WMS e módulo de pagamento. Se o pedido veio de uma integração, valide o payload e o endereço comercial antes do fechamento; mudanças nessa camada podem impedir a criação completa do pedido, como explicado no artigo sobre pedidos via REST API e endereço de cobrança.

Quando usar uma compensação de reservas?

A compensação deve ser considerada somente depois de confirmar uma inconsistência real, preservar backup e entender qual pedido originou a diferença. Gere primeiro a listagem de inconsistências, revise o resultado e consulte a ajuda do comando correspondente à versão instalada.

Evite aplicar compensações em massa durante vendas ativas. Uma lista extensa pode indicar falha recorrente em cancelamentos, importações, módulos ou atualizações. Corrigir apenas os registros sem eliminar a origem faz o problema reaparecer.

Conclusão

Quando o Magento 2 não baixa estoque após a venda, o saldo físico inalterado pode ser apenas consequência do fluxo entre reserva, quantidade vendável e remessa. A falha real existe quando o pedido não gera a movimentação esperada, usa o estoque errado ou deixa reservas sem compensação.

Se a divergência envolve vários SKUs, integrações ou pedidos antigos, interrompa correções manuais e faça um diagnóstico controlado. A equipe do SuporteMagento.com.br pode ajudar a revisar inventário, logs, filas e customizações sem comprometer o histórico operacional da loja.

Perguntas frequentes

O Magento deve reduzir o saldo da fonte assim que o pedido é feito?

Nem sempre. Em fluxos com inventário de múltiplas fontes, o pedido pode reduzir primeiro a quantidade vendável por meio de uma reserva. A fonte física costuma ser deduzida na etapa de expedição.

Posso apagar uma reserva diretamente no banco?

Não é recomendado. A edição direta ignora a relação entre pedido, estoque e eventos compensatórios. Use as ferramentas de diagnóstico da instalação e aplique compensações somente após validar a inconsistência.

Por que a quantidade vendável não mudou após o pedido?

As causas possíveis incluem pedido não concluído, SKU diferente do consultado, estoque sem associação com o website, reserva ausente ou customização no fluxo. Compare o pedido, o SKU e os registros de reserva.

Reindexar corrige uma reserva de estoque incorreta?

Não. A reindexação pode atualizar informações derivadas exibidas pela loja, mas não recria automaticamente uma reserva ausente nem corrige o evento comercial que originou a divergência.