
E-commerce B2B: diferenças de produto e UX
E-commerce B2B tem uma complexidade que é quase invisível para quem compra, mas imensuravelmente maior para quem constrói. O comprador empresarial vê um catálogo, adiciona produtos e faz o pedido — aparentemente simples. Por trás, há tabelas de preço negociadas individualmente, fluxos de aprovação com múltiplos níveis, emissão automática de nota fiscal, condições de pagamento a prazo, catálogos restritos por perfil de cliente e integrações com sistemas de procurement do lado do comprador.
Aplicar a mesma lógica de um e-commerce B2C em uma operação B2B é um erro comum que resulta em plataformas que os vendedores odeiam usar e que não atendem as necessidades reais dos compradores corporativos.
Precificação por Cliente: Tabelas, Descontos e Contratos
Em B2C, um produto tem um preço (com possível desconto por cupom ou promoção). Em B2B, o mesmo produto pode ter preços completamente diferentes para cada cliente — resultado de contratos negociados, volume histórico de compras, segmento de mercado ou região.
A arquitetura de precificação B2B precisa suportar:
Tabelas de preço por cliente ou segmento: A "Tabela Ouro" tem preços X, a "Tabela Platinum" tem preços Y, e o cliente Z tem preços negociados especificamente. O catálogo exibido para cada cliente deve mostrar seu preço contratado, não o preço de lista.
Descontos por volume: Compras acima de 100 unidades têm desconto de 5%, acima de 500 unidades têm 12%. O desconto pode ser aplicado por item, por categoria ou por valor total do pedido.
Vigência de contrato: Preços negociados têm validade. Quando o contrato vence, o sistema precisa aplicar o preço de tabela padrão ou bloquear novos pedidos até renovação.
async function calcularPrecoB2B(
skuId: string,
clienteId: string,
quantidade: number
): Promise<PrecoB2B> {
// 1. Verificar contrato ativo para o cliente
const contrato = await db.contratos.findAtivo(clienteId);
if (contrato) {
// 2. Buscar preço contratado para o SKU
const precoContrato = await db.tabelasPreco.findItem({
tabelaId: contrato.tabelaPrecoId,
skuId,
});
if (precoContrato) {
// 3. Aplicar desconto por volume se houver
const descontoVolume = calcularDescontoVolume(
quantidade,
contrato.regrasVolume
);
return {
precoUnitario: precoContrato.valor * (1 - descontoVolume),
precoTotal: precoContrato.valor * quantidade * (1 - descontoVolume),
descontoAplicado: descontoVolume,
origem: "contrato",
contratoId: contrato.id,
vigenciaAte: contrato.vigenciaFim,
};
}
}
// 4. Fallback: preço de tabela pública
const precoPadrao = await db.produtos.getPreco(skuId);
return {
precoUnitario: precoPadrao,
precoTotal: precoPadrao * quantidade,
descontoAplicado: 0,
origem: "tabela_publica",
};
}
A exibição de preços no catálogo B2B exige atenção: o comprador deve ver claramente se o preço exibido é o preço contratado ou o preço de lista. Exibir o preço de lista riscado com o preço contratado ao lado reforça o valor do contrato e incentiva fidelidade.
Fluxo de Aprovação: Comprador, Gerente e Financeiro
Em compras B2C, a decisão é individual e imediata. Em B2B, especialmente para pedidos acima de determinado valor, a compra passa por um fluxo de aprovação interno da empresa compradora. O sistema de e-commerce precisa suportar esse fluxo nativo ou via integração.
O fluxo típico de aprovação B2B tem três níveis:
- Comprador/Solicitante: Cria o pedido (ou "cotação") no sistema. Não pode aprovar — apenas solicitar.
- Gerente/Responsável: Recebe notificação, analisa o pedido, pode aprovar, rejeitar ou solicitar alterações (quantidade, substituição de item, frete).
- Financeiro: Para pedidos acima de limite ou fora do orçamento aprovado, o financeiro tem a palavra final. Pode verificar o limite de crédito disponível antes de aprovar.
A UX desse fluxo precisa ser clara para cada papel. O comprador vê seus pedidos com status "Aguardando aprovação". O gerente vê uma fila de pedidos pendentes para sua aprovação, com contexto suficiente para decidir sem precisar contatar o solicitante. O financeiro vê o impacto no crédito disponível antes de aprovar.
| Status do pedido | Quem pode ver | Ação disponível |
|---|---|---|
| Rascunho | Comprador | Editar, submeter, cancelar |
| Aguardando aprovação gerencial | Gerente, Comprador (somente leitura) | Aprovar, rejeitar, solicitar alteração |
| Aguardando aprovação financeira | Financeiro, Gerente, Comprador | Aprovar financeiro, bloquear por crédito |
| Aprovado — aguardando processamento | Vendedor, Comprador | Confirmar, iniciar separação |
| Em separação | Comprador (rastreio) | — |
| Faturado | Comprador, Financeiro | Baixar NF, confirmar recebimento |
Notificações por e-mail e/ou WhatsApp a cada mudança de status são essenciais — compradores B2B não ficam monitorando o portal, mas precisam saber quando algo requer sua ação.
Notas Fiscais e Integração com Sistemas Fiscais
No B2B brasileiro, a nota fiscal não é opcional — é obrigação legal para toda venda entre pessoas jurídicas. O e-commerce B2B precisa emitir NF-e (ou NFS-e para serviços) automaticamente ao confirmar o pedido, ou integrar com um sistema externo que faça isso.
A emissão de NF-e envolve:
- Validação de dados fiscais do comprador (CNPJ, IE, regime tributário)
- Cálculo de impostos conforme NCM do produto, UF de origem e destino
- Autorização junto à SEFAZ do estado emissor
- Armazenamento do XML e PDF da NF para consulta
Integrar com um emissor de NF especializado (Omie, ContaAzul, NFe.io, Focus NFe) é mais prático que construir a integração SEFAZ do zero. Esses serviços abstraem as particularidades por estado e mantêm conformidade quando a legislação muda.
Um ponto de atenção: a emissão de NF pode falhar (CNPJ inválido, SEFAZ fora do ar, dados fiscais inconsistentes). O fluxo do e-commerce precisa tratar esses erros de forma que não bloqueie indefinidamente o pedido — fila de retry, alerta para a equipe fiscal e mecanismo de reprocessamento manual são essenciais.
Crédito e Faturamento: Pagamento a Prazo no E-commerce
Pagamento à vista é a regra no B2C; pagamento a prazo é a regra no B2B. "30/60/90 dias" é a linguagem do relacionamento comercial B2B, e o e-commerce que só aceita cartão ou PIX à vista vai perder clientes corporativos para o vendedor que aceita boleto faturado.
O modelo de crédito B2B no e-commerce envolve:
Limite de crédito por cliente: Cada empresa compradora tem um limite aprovado pelo financeiro do vendedor. Pedidos que ultrapassariam o limite são bloqueados automaticamente ou encaminhados para análise especial.
Condições de pagamento: O cliente A tem condição "30 dias", o cliente B tem "30/60 dias" (50% em 30 dias, 50% em 60 dias), e assim por diante. O sistema precisa armazenar e aplicar essas condições por cliente.
Boleto faturado: O boleto é gerado após emissão da NF e enviado por e-mail com prazo de vencimento conforme a condição de pagamento. A baixa do boleto precisa atualizar o financeiro do cliente (saldo de crédito, histórico de pagamentos).
Gestão de inadimplência: Clientes com boletos vencidos devem ter novos pedidos bloqueados automaticamente. A integração com o ERP financeiro é o que torna essa gestão viável sem intervenção manual constante.
async function validarCreditoParaPedido(
clienteId: string,
valorPedido: number
): Promise<ValidacaoCredito> {
const cliente = await db.clientesB2B.findById(clienteId);
// Verificar inadimplência
const boletosVencidos = await db.financeiro.countBoletosVencidos(clienteId);
if (boletosVencidos > 0) {
return {
aprovado: false,
motivo: "inadimplencia",
mensagem: `Existem ${boletosVencidos} boleto(s) vencido(s). Regularize para continuar comprando.`,
};
}
// Verificar limite de crédito
const saldoUtilizado = await db.financeiro.getSaldoUtilizado(clienteId);
const saldoDisponivel = cliente.limiteCredito - saldoUtilizado;
if (valorPedido > saldoDisponivel) {
return {
aprovado: false,
motivo: "limite_insuficiente",
saldoDisponivel,
valorSolicitado: valorPedido,
mensagem: `Limite de crédito disponível: R$ ${saldoDisponivel.toFixed(2)}`,
};
}
return { aprovado: true, saldoDisponivel, limiteTotal: cliente.limiteCredito };
}
Conclusão com CTA
E-commerce B2B bem construído é um canal de vendas que opera 24h, reduz o custo de atendimento (menos ligações para tirar pedidos), acelera o ciclo de vendas (aprovações mais rápidas com fluxo digital) e gera dados sobre comportamento de compra que o time comercial não teria de outra forma.
A complexidade técnica é real — precificação por cliente, fluxos de aprovação multi-nível, emissão fiscal, gestão de crédito — e requer arquitetura pensada para B2B desde o início, não adaptações de um sistema B2C. Na SystemForge, desenvolvemos plataformas de e-commerce B2B do zero e customizações em plataformas existentes, com a complexidade comercial que operações B2B exigem. Fale com nossa equipe para discutir seu projeto.
Quer criar seu E-commerce?
Desenvolvemos lojas virtuais completas, do catálogo ao checkout.
Saiba mais →Precisa de ajuda?

