Atacado B2B no Jefacil tem dois níveis de configuração: faixas de preço no produto (do tipo “10+ paga menos”) e tabela de preço atribuída ao cliente (contrato negociado).
Faixas de preço por quantidade
Em Produtos → editar produto, na seção Faixas de preço:
a partir de 10 unidades → R$ 8,00
a partir de 50 unidades → R$ 6,00
a partir de 100 unidades → R$ 5,00
Sem limite de faixas. Aplicado no PDV conforme o modo de atacado da loja (veja abaixo).
Requisito: a loja precisa estar com Atacado habilitado em Configurações → Lojas.
Modo do atacado (como o gatilho dispara)
Em Configurações → Lojas → aba Operação → Como o atacado dispara?, escolha um dos 3 modos:
| Modo | Quando o tier vira o preço aplicado |
|---|---|
| Por produto (padrão) | A quantidade daquele SKU no carrinho atinge a min_qty da faixa cadastrada. Cada item decide sozinho. |
| Por carrinho | A soma das quantidades de todos os itens do carrinho atinge a Qtd mínima do carrinho da loja. Daí todo SKU com faixa pula pra menor faixa cadastrada. |
| Manual | Sem gatilho automático. No PDV, cada linha do carrinho ganha um botão Atacado que aplica a menor faixa do produto. Vendedora decide caso a caso (negociação balcão). |
- Por produto é o comportamento clássico: “quem leva 10 paga menos por unidade”.
- Por carrinho resolve “se levar 6 peças no total, mesmo de produtos diferentes, já é atacado”.
- Manual resolve negociação livre: cliente pediu desconto, vendedora bate o botão e aplica a faixa pré-cadastrada.
Em Manual, o botão Atacado sempre aparece em modo MANUAL — quando o produto não tem faixas, fica desabilitado com tooltip avisando pra cadastrar.
Tabela de preço negociada (por cliente)
Pra clientes B2B fixos (revendedores, contratos), crie uma tabela dedicada em CRM → Tabelas de preço:
- Nome da tabela (ex.: “Revendedor Acme”, “Contrato anual 2026”).
- Desconto linear (%) opcional — aplicado sobre o preço varejo pra qualquer produto da loja.
- Items por produto (opcional) — preço fixo pra SKUs específicos.
Depois atribua a tabela ao cliente: Clientes → editar → Tabela de preço.
Como o resolver escolhe o preço
O PDV (e o faturamento de pedido) rodam este algoritmo pra cada item:
1. O customer tem price_table E a tabela tem item pra este produto?
SIM → usa o preço do item (OVERRIDE ESTRITO, ignora tudo abaixo)
NÃO → continua
2. Monta a lista de candidatos:
- preço varejo
- promo ativa (se houver)
- faixa de atacado aplicável pela qty do item (se loja tem atacado)
- desconto linear da tabela do customer (retail × (1 - pct/100), se houver)
3. Aplica Math.min(candidatos) = preço final
O item override vence tudo porque representa preço contratado. Se você vendeu pra Acme Ltda com contrato a R$75, mesmo que tenha uma promo a R$50 no dia, a Acme paga R$75 (era o combinado).
Já o desconto linear (ex.: “10% off em tudo”) entra na competição junto com promo e tier — então o cliente com tabela “10% off” numa promo de 20% leva o preço da promo.
Quando usar cada tipo
| Situação | Ferramenta |
|---|---|
| ”Quem compra 10+ paga R$8” | Faixa de atacado no produto |
| ”Revendedor X tem 15% off em tudo” | Tabela com discount_pct: 15, sem items |
| ”Contrato com X lista 20 produtos a preço fixo” | Tabela com items por SKU |
| ”Cliente Y tem 10% off em tudo exceto em 3 produtos específicos” | Tabela com items nos 3 SKUs + discount_pct: 10 cobrindo o resto |
Isolamento
Faixas ficam por loja (atacado habilitado por filial). Tabelas ficam por tenant (todas as lojas compartilham). Edição exige OWNER, ADMIN ou MANAGER.