Na última Black Friday, um vendedor de artigos para casa me chamou para um resgate: o OMS dele havia dividido um pedido de 5 linhas em três pacotes enviados da Califórnia, do Texas e de Nova Jersey. O cliente pagou um envio; a empresa pagou três — e ganhou uma avaliação de uma estrela: «Cinco itens chegaram em três dias, que loja de piada». O dono perguntou: «O sistema não era para escolher automaticamente o armazém ideal?» Ele seguiu as regras. As regras só tinham sido configuradas três anos atrás, de qualquer jeito, e nunca mais foram mexidas.

As regras de origem multiarmazém de um OMS são aquele tipo de módulo em que uma configuração errada sangra dinheiro todo dia e uma correta não ganha elogio nenhum. Aqui vão as dimensões reais das regras, como ordená-las por prioridade e as três configurações erradas mais comuns que vejo em campo.

Regra um: distância primeiro — mas «distância» não é distância em linha reta

Quase todo OMS vem com «o armazém mais próximo do cliente» como regra número um. Parece certo; o diabo está em como «próximo» é calculado. Usando milhas em linha reta, um pedido de LA poderia sair de San Bernardino — 60 milhas no papel. Mas a precificação das transportadoras funciona por zonas de CEP a CEP (ZIP-to-ZIP), e a cobrança real pode superar a de uma origem em Phoenix.

A correção é fazer engenharia reversa a partir das tabelas de zona das transportadoras: importe as matrizes de zona das suas principais transportadoras para o OMS e ordene pelo custo de frete estimado, não por milhas. Um cliente com 3,000 pedidos por dia cortou o frete mensal em 9% com essa única mudança. Número real, uma única edição na lógica de ordenação.

Vários pacotes aguardando na estação de embalagem de um armazém de e-commerce

Regra dois: profundidade de estoque — não venda sua última unidade

Distância sem consciência de estoque é a segunda maior armadilha. O armazém A é o mais próximo, mas o SKU tem 2 unidades restantes, uma já alocada para outro pedido pendente. Um OMS que ignora o disponível para promessa (available-to-promise) joga o pedido lá mesmo assim; a separação fica curta, o pedido se divide de novo e a data de envio explode.

As regras de origem precisam de um limiar de estoque: armazéns abaixo do estoque de segurança (digamos, 7 dias de vendas) são automaticamente despriorizados, por mais próximos que estejam. Defina o limiar por classe ABC — alto para SKUs A, mais baixo para C. Muitas plataformas OMS suportam limiares por classe, mas as implementações preguiçosamente definem um único número para tudo, o que equivale a não definir nenhum.

Regra três: custo não é só frete

Regras de origem maduras calculam um total: frete + manuseio no armazém + diferenças de embalagem. Exemplo: um pedido da Costa Leste custa $2 a mais de frete vindo do prédio da Costa Oeste — mas o site da Costa Oeste é próprio, com manuseio $3 mais barato que o 3PL da Costa Leste. Líquido: $1 economizado. Uma regra só de frete escolhe errado.

Ainda mais traiçoeiras são as tabelas de preço dos 3PLs: sobretaxas de pedido multipeça aqui, taxas de manuseio de oversize ali. É preciso incorporá-las ao modelo de custo de origem, ou o sistema roteia todo pedido volumoso para o prédio de «frete barato, manuseio caro» e o prejuízo só aparece na conciliação de fim de mês.

Regra quatro: promessas de entrega têm sua própria faixa

Pedidos com compromisso de prazo — frete premium, pontuação de despacho pontual da TikTok Shop — precisam de lógica de origem separada: escolha o armazém que consegue enviar no prazo, não o mais barato. Multas por atraso e punições na conta custam muito mais que alguns dólares de frete.

Recomendo dois modelos de regra: custo ótimo para pedidos normais, prazo primeiro para os comprometidos, com o OMS alternando pelas etiquetas do pedido. Um único conjunto de regras misturado para os dois sempre acaba falhando nos dois.

Ajuste na prática: a ordem de prioridade é uma arte

Essas quatro regras executam em sequência de prioridade dentro do OMS. Minha ordem recomendada: etiqueta de compromisso de prazo → limiar de estoque → custo total → distância como desempate. Por quê: a promessa é uma linha vermelha; originar num armazém curto fabrica um incidente; custo é o campo de batalha diário da otimização; distância só importa quando tudo acima empata.

Ajuste uma regra por vez, rode uma semana, leia os dados: taxa de divisão, frete médio, taxa de atraso. Leia os três juntos. Taxa de divisão caindo mas frete subindo significa que o limiar está rígido demais. Frete caindo mas atrasos subindo significa que a regra de prazo está sendo atropelada pela regra de custo. Duas ou três rodadas e converge.

Uma última coisa — o plano B. Tem de existir um caminho de «nenhum armazém consegue atender». Quando todos os prédios estão curtos ou o sistema engasga, os pedidos não podem sumir no ar: roteie-os para um pool de exceções para tratamento manual e dispare um alerta de reposição. Já vi uma configuração sem plano B em que os pedidos ficaram quatro dias no sistema; o cliente já tinha sido reembolsado antes de o armazém saber. Regras perfeitas sem plano B equivalem a zero.

Vá conferir suas regras de origem do OMS — quando foram ajustadas pela última vez? Se a resposta for «no go-live», este artigo foi escrito para você.

Traduzido do inglês. Em caso de divergência, prevalece a versão em inglês.