Como fazer um sistema de controle de estoque sob medida
O que um sistema de estoque precisa ter para bater com o físico: movimento como registro imutável, saldo calculado, reserva, inventário e rastreio por lote.
Um sistema de estoque confiável não guarda o saldo como um número editável: ele guarda cada movimento como registro imutável e calcula o saldo a partir deles. Sobre essa base entram reserva, múltiplos depósitos, inventário cíclico, leitura por código de barras e alerta de ruptura.
Um sistema de controle de estoque que bate com o físico é construído sobre uma decisão de modelagem: o saldo nunca é um campo que se edita, é um número calculado a partir de movimentos imutáveis. Todo o resto, reserva, múltiplos depósitos, inventário, leitura por código de barras, se apoia nessa base. Sistema que deixa alguém digitar o saldo direto vai divergir do físico em algumas semanas e ninguém vai saber explicar por quê.
O modelo de dados que sustenta o resto
Comece por três tabelas e resista à tentação de simplificar:
Produto. Código interno, descrição, unidade de medida, código de barras (EAN), se controla lote, se controla número de série, estoque mínimo e curva de importância.
Movimento. Data e hora, produto, depósito, quantidade com sinal, tipo (entrada por compra, saída por venda, transferência, ajuste de inventário, perda, devolução), documento de origem, usuário e observação. Esse registro nunca é alterado nem apagado. Errou, lança o movimento contrário com motivo.
Saldo. Uma tabela derivada, atualizada a cada movimento dentro da mesma transação do banco, com produto, depósito, quantidade disponível e quantidade reservada. Ela existe por desempenho, mas precisa ser reconstruível a partir dos movimentos. Guarde um procedimento de recálculo e rode periodicamente para conferir.
Essa separação é o que permite responder a pergunta que toda empresa faz: por que ontem tinha 40 e hoje tem 32, sendo que só vendemos 5.
Reserva: a diferença entre disponível e físico
A maior parte das divergências percebidas não é erro de contagem, é confusão entre três números diferentes:
| Número | O que significa |
|---|---|
| Físico | O que está na prateleira agora |
| Reservado | Já comprometido com pedido não faturado |
| Disponível | Físico menos reservado |
| Em trânsito | Comprado e ainda não recebido |
Quando um pedido é confirmado, o sistema reserva, não baixa. A baixa acontece na separação ou no faturamento, conforme a regra da operação. Sem reserva, dois vendedores vendem a mesma peça e alguém liga para o cliente pedindo desculpa.
A reserva precisa de prazo de validade. Pedido não pago em 48 horas libera o item de volta, com registro do que foi liberado.
Múltiplos depósitos e transferência em duas pernas
Se existe mais de um local, transferência não é um movimento, são dois: saída da origem e entrada no destino, ligados pelo mesmo documento. Entre eles existe um estado de trânsito.
Isso importa porque a mercadoria em caminhão não está em nenhum dos dois lugares, e tratar isso como movimento único faz o estoque aparecer nos dois depósitos ou em nenhum durante horas.
Vale também controlar endereço dentro do depósito (rua, prateleira, nível) quando a operação tem mais de algumas centenas de itens. O ganho não é no saldo, é no tempo de separação.
Lote, validade e número de série
Nem toda operação precisa, mas quando precisa, precisa desde o início, porque adicionar depois exige reprocessar histórico.
- Lote com validade é obrigatório em alimentos, cosméticos, medicamentos e insumos químicos. A saída deve seguir a ordem de vencimento (primeiro que vence, primeiro que sai) e o sistema precisa avisar sobre lote próximo do vencimento.
- Número de série individual serve para equipamentos, ferramentas e itens com garantia. Cada unidade vira um registro próprio, com histórico de onde esteve.
Em setores regulados, a exigência específica de rastreabilidade deve ser confirmada com quem cuida da área regulatória da empresa antes de definir o modelo.
Entrada de dado: o gargalo real
Sistema de estoque falha mais na coleta do que na lógica. Alguns caminhos, do mais simples ao mais robusto:
| Método | Custo | Onde funciona bem |
|---|---|---|
| Digitação em tela web | Baixo | Volume pequeno, poucos itens |
| Leitor USB de código de barras | Baixo | Balcão e recebimento fixo |
| Celular com câmera lendo código | Baixo | Equipe que já tem celular |
| Coletor de dados dedicado | Médio | Armazém com muito volume |
| Etiqueta impressa interna | Baixo | Itens sem EAN do fabricante |
O celular com câmera cobre a maioria dos casos hoje, desde que a tela seja desenhada para uso com uma mão e funcione mesmo com internet instável, guardando as leituras localmente e enviando quando reconectar. Depósito com paredes grossas costuma ter sinal ruim, e ignorar isso derruba a adoção.
Inventário: cíclico em vez de parada geral
Contagem anual com a operação parada é cara e produz um retrato que envelhece em dias. O padrão mais eficiente é o inventário cíclico:
- Classifique os itens por importância, combinando valor e giro.
- Conte os itens da faixa mais crítica com frequência alta, por exemplo mensal.
- Conte a faixa intermediária a cada trimestre e o resto uma vez por ano.
- Cada contagem gera um movimento de ajuste com motivo obrigatório.
- Acompanhe o indicador de acuracidade por faixa, não só o valor total ajustado.
A contagem deve ser cega: quem conta não vê o saldo esperado na tela. Quando vê, tende a confirmar o número do sistema.
Alertas que evitam ruptura e excesso
Estoque mínimo fixo é uma aproximação ruim para itens com demanda variável. O cálculo mais útil considera consumo médio no período, prazo de reposição do fornecedor e uma margem de segurança:
Ponto de pedido igual a consumo médio diário vezes prazo de entrega em dias, mais o estoque de segurança.
Com isso o sistema consegue sugerir compras em vez de apenas avisar que acabou. Vale também o alerta inverso: item parado há muitos dias, que é dinheiro imobilizado na prateleira.
Integrações que quase sempre aparecem
- ERP ou emissor fiscal, para que a nota de entrada gere movimento automaticamente e a nota de saída baixe.
- Loja virtual ou marketplace, publicando o saldo disponível e recebendo pedidos. Aqui a reserva é essencial, senão vende o que não tem.
- Sistema de compras, para transformar sugestão em pedido ao fornecedor.
- Painel de gestão, com giro, ruptura e cobertura em dias.
Quando sob medida compensa
Sistema pronto de estoque resolve bem operações padronizadas. Sob medida compensa quando a operação tem regra própria que o pronto não expressa: conferência com foto obrigatória, kit que é montado no ato consumindo componentes, unidade de compra diferente da unidade de venda, ou controle por peso variável.
Nesses casos, um caminho comum é o sistema próprio cuidar do chão de operação e devolver ao ERP apenas o movimento consolidado, mantendo uma verdade só sobre o saldo. A Retti Tech trabalha nesse formato, com ou sem componentes de IA, dependendo de o problema ser de regra ou de leitura de documento.
Perguntas frequentes
Por que meu estoque no sistema nunca bate com o físico?
Quase sempre porque o sistema permite editar o saldo diretamente, sem registrar o motivo. Quando o saldo é calculado a partir de movimentos com origem obrigatória, qualquer diferença tem rastro e pode ser investigada. A segunda causa é a falta de tratamento para reserva e mercadoria em trânsito.
Preciso de código de barras para controlar estoque?
Não é obrigatório, mas reduz drasticamente o erro de digitação e o tempo de conferência. Um leitor comum funciona como teclado e não exige integração especial. Para itens sem código do fabricante, dá para imprimir etiqueta interna com código próprio.
Faz sentido um sistema de estoque separado do ERP?
Faz quando a operação física tem regras que o ERP não cobre, como conferência com foto, separação por rota, controle de lote com validade ou endereçamento de prateleira. Nesse caso o sistema próprio cuida do chão e devolve ao ERP apenas o movimento consolidado, evitando duas verdades sobre o mesmo saldo.
Tem um processo que consome o time?
Me conta como funciona hoje. Se der para automatizar, eu te digo por onde começar — a conversa de diagnóstico não é cobrada.
Natiam Gabriel é AI Engineer & Full-Stack Developer e fundador da Retti Tech, estúdio de desenvolvimento de software que atende empresas em todo o Brasil. Constrói sistemas web sob medida, automações e integrações, com ou sem inteligência artificial, do levantamento de requisitos até a operação em produção. Mais de 20 empresas usam em produção os sistemas que desenvolveu.