13 de maio de 2026 · Equipe Jefacil
Atacado e varejo no mesmo PDV — o erro de quem improvisa no Bling ou Tiny
Lojista misto (B2C + B2B) que tenta operar atacado dentro de ERP de varejo tradicional acaba com gambiarra de planilha, cliente confuso e comissão errada. Aqui está o que muda quando o sistema entende as duas operações nativamente.
Tem um tipo de lojista que sofre calado: o que vende varejo no balcão E atacado pra revenda. Loja de moda no shopping com lojas de bairro que pedem 50 peças, distribuidora de cosméticos com salão como cliente VIP, mercearia que vende no varejo mas atende restaurante na zona, autopeças que vende balcão de manhã e oficina à tarde.
Se você é esse tipo de varejista, conhece a dor: o sistema que serve pro balcão não entende atacado — e quando você improvisa, gera erro caro.
Como o lojista normalmente improvisa
Cenário comum em Bling/Tiny/Omie:
- Tem um cliente atacadista que sempre leva 50+ unidades.
- Você cadastra o produto com preço de varejo (R$ 49,90).
- Quando esse cliente vai comprar, você edita manualmente o preço no PDV.
- Comissão do vendedor sai errada (calculou sobre o R$ 49,90 base).
- Cliente do balcão olha a tela e vê o desconto — começa a pedir o mesmo.
- Vendedor fica perdido sobre “quem tem desconto”.
- Você cria uma planilha externa: “lista de clientes especiais e seus preços”.
- Planilha desatualiza. Vendedor consulta o WhatsApp do dono.
- Caos.
Tem variações: alguns abrem “produtos clones” (Camisa-Atacado vs Camisa-Varejo), outros usam descontos manuais por venda, outros fazem 2 cadastros do cliente (1 atacadista, 1 varejista). Tudo são paliativos. Nenhum desses sistemas foi desenhado pra atacado.
O que muda num ERP que entende atacado nativamente
Atacado real precisa de 3 conceitos que ERP de varejo PME não tem:
1. Tiers de preço por quantidade (no SKU)
O produto tem escada de preço: 1-9 unidades = R$ 49,90, 10-49 = R$ 39,90, 50+ = R$ 32,00.
No ERP que entende isso, o lojista cadastra as 3 faixas no produto. Quando o caixa marca 50 unidades no PDV, o sistema automaticamente aplica R$ 32,00. Sem edição manual, sem vendedor lembrar de aplicar desconto.
No Bling, isso não existe. No Tiny, idem. Você abre um produto e só tem um preço de varejo + um preço de atacado (binário). Pra ter 3 faixas, gambiarra.
2. Tabela de preço por cliente
Tem cliente que sempre leva preço especial, mesmo que comprando 5 unidades — porque é fidelidade, parceria, contrato.
Sistema correto deixa você criar tabelas de preço (“Preço Distribuidor”, “Preço Salão Parceiro”) e vincular a clientes específicos. Quando esse cliente passa no PDV, o sistema identifica e aplica automaticamente a tabela dele.
Tabela pode ter:
- Desconto linear sobre o varejo (15% off em tudo)
- Preço fixo por SKU específico (“Camisa Polo M = R$ 35 pra esse cliente”)
- Combinação dos dois: desconto linear, exceto SKUs que têm preço estrito
No Bling: cadastra o cliente, anota “desconto 15%” no campo de observações, vendedor lê e aplica manualmente. Errar é regra, não exceção.
3. Pedido de venda em etapas
No varejo, venda é imediata: passa o cartão, sai o produto. No atacado, é negociada:
- Cliente pede orçamento
- Vendedor monta carrinho com preços de atacado
- Cliente confirma (às vezes leva 1 semana)
- Vai pra separação no estoque
- Emite NF-e (modelo 55, pra PJ)
- Cliente paga (geralmente boleto 30/60/90 dias)
- Caixa recebe via conciliação bancária
Esse fluxo não cabe num PDV de varejo. Bling e Tiny tratam toda venda como imediata. Pra atacado real você precisa de pedido de venda como entidade distinta de venda:
- Pedido = orçamento + confirmação (snapshot de preço congela quando confirma)
- Venda = invoice do pedido (gera NF-e, decrementa estoque, gera receivable)
Pedido pode ser cancelado sem mexer em estoque. Venda só com cancelamento fiscal.
Como o Jefacil entende isso
A gente desenvolveu pra atender lojista misto. Funciona assim:
No cadastro do produto
Aba “Faixas de preço” (atacado) deixa cadastrar quantas faixas quiser:
Quantidade mín. → Preço unitário
1 R$ 49,90 (varejo, default)
10 R$ 39,90
50 R$ 32,00
100 R$ 28,00
Atacado vale por loja — algumas filiais operam só varejo, outras misto. Configuração Store.wholesale_enabled liga/desliga.
No cadastro do cliente
Campo price_table_id aponta pra uma tabela negociada:
Distribuidor Alpha → Tabela "Distribuidores" (15% off linear)
Salão Bela → Tabela "Salões Parceiros" (preço estrito por SKU em cosméticos)
Cliente Final → null (preço padrão)
No PDV
Quando o caixa marca produtos:
- Se cliente identificado tem tabela: aplica a tabela (preço estrito vence tudo).
- Senão, se quantidade do item >= tier de atacado: aplica o tier.
- Senão, preço de varejo (com promo se houver).
A regra é menor preço vence entre todas as opções aplicáveis. Operador não precisa saber a hierarquia — sistema decide.
Modos de disparo do atacado (configurável por loja)
Algumas lojas preferem comportamento diferente:
- PER_PRODUCT (default): cada item compara contra sua faixa. Camisa qty 50 vira atacado, camiseta qty 5 fica varejo.
- STORE_CART: trigger é a SOMA do carrinho. Se a soma >= N unidades, todo item com tier passa pra menor faixa.
- MANUAL: vendedor marca item-a-item (“este é atacado”), sem trigger automático. Útil quando o cliente compra misto.
Pedido de venda separado
Aba Pedidos (/erp/pedidos) tem fluxo distinto:
DRAFT → CONFIRMED → FULFILLED → INVOICED → CANCELED
- DRAFT = orçamento. Não decrementa estoque, não emite nada.
- CONFIRMED = preço congela (snapshot do tier aplicado).
- FULFILLED = separação concluída.
- INVOICED = vira
Sale, decrementa estoque, gera NF-e, opcionalmente geraAccountReceivable(boleto/fiado).
Pode parcelar em N recebíveis (installments: 3, interval_days: 30 = boleto 30/60/90).
Limite de crédito por cliente
Customer.credit_limit — soma de receivables PENDING + nova venda fiado não pode passar. Operador comum trava em 422. Gerente ou OWNER pode passar override_credit_limit: true se quiser autorizar excepcionalmente.
Comissão por vendedor
User.commission_pct (% sobre todas as vendas) ou Product.commission_pct (override por SKU — produto X paga 5%, Y paga 2%). Snapshot guardado em Sale.commission_amount no momento da venda — não recalcula depois.
Relatório /erp/relatorios tem aba Comissões com tabela por vendedor + total.
Caso prático: distribuidora de cosméticos
Cenário real (composição de vários clientes que a gente conversa):
- 1 loja física + atende 30 salões parceiros
- Catálogo: 200 SKUs (esmaltes, tintas, shampoos)
- Cada salão tem desconto negociado individual (10-25%)
- Pedido típico: salão pede WhatsApp, sai entrega em 2 dias, paga em 30
- 2 vendedores externos com comissão 3%
Operação no Jefacil:
- Cliente “Salão Beleza Pura” cadastrado com
price_table_id→ tabela “Salões 20%” - Vendedor externa monta pedido pelo
/erp/pedidosno celular - Cliente confirma por WhatsApp
- Vendedor marca
CONFIRMED— preço congela - Sai pra separação (operador interno marca
FULFILLED) - Invoice gera NF-e modelo 55 + AccountReceivable com vencimento +30 dias
- Boleto bancário (quando integrado) ou fiado controlado
- No
dashboardo dono vê: faturamento atacado vs varejo separados, vendedora A vs B, ticket médio
Sem planilha externa. Sem vendedor “decorando” desconto. Sem erro de comissão.
”Mas eu já tenho Bling e funciona…”
Funciona enquanto é pequeno e estável. Sinais de que tá na hora de trocar:
- Vendedora errou desconto numa venda atacadista recente
- Você abriu uma planilha “preços especiais por cliente”
- Cliente B2B reclamou de inconsistência (“semana passada eu paguei R$ 32, hoje você quer R$ 35?”)
- Comissão do vendedor saiu errada e teve que ajustar manualmente
- Você tem clientes B2B que comprariam mais se tivessem boleto 30/60/90 mas o sistema atual não emite
Cada um desses é dinheiro deixado na mesa. Resolver no Jefacil é configuração de 30 minutos por cliente VIP, depois é automático.
Como começar
Se você opera misto e quer ver atacado funcionando ao vivo: chama no WhatsApp que a gente mostra:
- Cadastro de produto com 3 faixas de tier
- Cadastro de cliente com tabela negociada
- Venda no PDV — sistema aplicando o preço sozinho
- Pedido em etapas com snapshot de preço
- Comissão calculada automaticamente
- Relatório atacado vs varejo
A migração do cadastro vem com nosso importador do Bling/Tiny — produtos, clientes e fornecedores entram em poucos minutos. As tabelas de preço por cliente são configuradas depois, à mão, mas em poucos cliques cada.
Tags relacionadas: Migrar do Bling em 1 hora · Multi-loja Bling 3 CNPJs · Fim do SAT em 2026