TitoTech

Case Garrafaria Serra Negra

Cliente

Um ecossistema digital em volta do SAP Business One

Para uma distribuidora de embalagens de vidro com 40 anos de mercado, construímos um portal B2B, um painel de gestão com BI e um WMS, integrados ao SAP Business One em tempo quase real.

Segmento
Distribuidora de embalagens de vidro
Entrega
Portal B2B, gestão e BI, WMS
ERP
SAP Business One
Período
Fevereiro a setembro de 2026
Site da Garrafaria Serra Negra no computador e no celular, com os botões Acessar o Portal B2B e Comprar no varejo
O site leva empresas ao Portal B2B e pequenas compras à loja online.

O case em 51 segundos

Portal B2B, gestão com BI e WMS, todos ligados ao SAP Business One.

Vídeo sem áudio. Mostra o desafio, o portal B2B, o painel de gestão, o WMS e a integração com o SAP; tudo o que aparece nele está detalhado nas seções abaixo.

O desafio

O SAP é um ótimo ERP. Não foi feito para ser vitrine.

A Garrafaria Serra Negra distribui garrafas, potes, vasilhames de vidro e acessórios como tampas e fechamentos, com 40 anos de história e clientes empresariais em todo o Brasil. Toda a operação fiscal, comercial e de estoque roda no SAP Business One.

O ERP não foi feito para ser a vitrine do cliente, nem o painel de decisão do gestor, nem a ferramenta do operador no armazém.

  • Pedidos B2B manuaisChegavam por WhatsApp, e-mail e telefone. O comercial redigitava tudo no SAP.
  • Pouca visibilidade gerencialVendas, margem, carteira e estoque dependiam de planilhas montadas à mão a partir de exportações do SAP.
  • Precificação fora do sistemaListas por cliente, custo da mercadoria vendida, frete por milheiro, ICMS e markup calculados à parte.
  • Expedição desconectadaSeparação, conferência e despacho sem um fluxo digital ligado ao pedido do SAP e ao WMS logístico.
  • Cadastro de clientes lentoLiberar um cliente novo dependia de várias trocas de e-mail.

O objetivo

Uma plataforma única. O SAP B1 continua como fonte de verdade fiscal, e cada perfil ganha uma experiência própria.

  • Cliente
  • Vendedor
  • Gestor
  • Operador

A solução

Quatro aplicações sobre uma camada de integração

Tudo publicado sob o mesmo domínio e orquestrado em containers.

  • Clientes B2B

    Portal B2B

    Pedidos com a lista de preço de cada cliente

    /b2b

  • Gestão e comercial

    Painel de Gestão

    Funil, CRM, BI e administração

    Login e perfis próprios

  • Diretoria

    Cockpit BI

    A visão analítica que substitui a planilha

    /cockpit

  • Operação

    WMS / OMS

    Separação, conferência e expedição

    Coletor no celular, com fila offline

API GatewayNode.js e Fastify, atrás do Nginx: autenticação, sincronização agendada, B2B e BI
  • WMS CoreFastAPI e máquina de estados
  • PostgreSQL 16base única, espelho do SAP e views de BI
  • ImperiumWMS logístico via SOAP: expedição e NF
SAP Business OneService Layer (OData REST), fonte de verdade fiscal
Portal B2B

O e-commerce do cliente empresarial

O cliente PJ pede sozinho, com os preços da sua lista no SAP

Um portal autenticado: a empresa entra com o CNPJ, monta o carrinho e envia a cotação, que o comercial transforma em pedido.

Tela de entrada do Portal Garrafaria Serra Negra no computador e no celular, pedindo o CNPJ da empresa
A entrada do portal: o CNPJ identifica se a empresa já é cliente no SAP.
  • Onboarding por CNPJIdentifica se a empresa já é cliente no SAP, com código de verificação por e-mail, criação de senha e recuperação de acesso.
  • Cadastro com aprovaçãoAprovado no Painel, o cliente é criado no SAP com endereços, dados fiscais, lista de preço e vendedor, e recebe o acesso por e-mail.
  • Catálogo com variantesVários códigos do SAP viram um produto, com cor, fechamento e embalagem (unidade, caixa, fardo), busca e filtros.
  • Estoque e avise-meO cliente vê a disponibilidade. Pedido acima do estoque não é bloqueado: o vendedor é avisado para negociar.
  • Cotação vira pedidoO carrinho gera uma Cotação no SAP. O comercial converte em Pedido de Venda com um clique, mantendo o vínculo.
  • Acompanhamento do pedidoLinha do tempo de status, itens, valores, observações do vendedor e cancelamento de cotações pendentes.
  • Chat com o vendedorDentro do pedido, com mensagens não lidas e o card Seu vendedor com WhatsApp, telefone e e-mail.
  • RecompraFavoritos, listas reutilizáveis, mais comprados e dados de entrega: CEP, janelas de recebimento, veículo e agendamento.
  • SEO assistido por IANo admin do catálogo: score de SEO, sugestões de título e descrição com OpenAI, métricas do Search Console e geração em lote.
  • Feito para o celularIdentidade visual da marca, layout responsivo e navegação inferior no celular.

Inteligência de preço

O sistema lê a lista de preço do cliente no SAP. Se o item não tiver preço ali, segue uma cadeia de alternativas.

  1. Lista de preço do cliente no SAP
  2. Histórico do próprio cliente
  3. Outras listas de preço
  4. Histórico geral
  5. Sem preço: a cotação fica com o comercial, sem perder o pedido

O que o cliente acompanha

Cada pedido tem uma linha do tempo.

  1. Confirmado
  2. Em separação
  3. Faturado
  4. Em entrega
  5. EntregueCom chat com o vendedor em todas as etapas
Painel de Gestão

Comercial, CRM, BI e administração

O centro de comando da empresa

Login próprio, perfis de acesso e liberação por módulo.

  • Admin
  • Supervisor
  • Comercial
  • Operador
  • Visualizador
  • Novo
  • Em análise
  • Faturado
  • Em separação
  • Enviado
  • Entregue
  • Cancelado

O funil de pedidos em kanban se atualiza sozinho a cada 45 segundos. Ilustração.

  • Operação comercial

    • Aprovação de pedidos do portal, conversão de cotações, follow-ups e mensagens com o cliente
    • Nova venda, notas fiscais vinculadas aos pedidos e fretes em visão separada, para não distorcer o faturamento
    • Ranking e evolução dos vendedores, histórico de 12 meses, metas e recompra da carteira
    • CRM e Cliente 360: curva ABC, mapa do Brasil, inativos, previsão de recompra e integração com o RD Station
  • Business Intelligence

    • Visão executiva por perfil, com variação mês a mês
    • Faturamento, carteira, preços praticados e listas do SAP
    • Estoque com alertas e compras com curva ABCD, cobertura e semáforo de reposição
    • Produção: demanda versus estoque por fardo, caixa e palete
    • Markup: CMV, ponto de equilíbrio, margens, frete por milheiro e ICMS
    • Modo privacidade: oculta os valores com um atalho, para apresentar em reuniões
  • Administração

    • Usuários, perfis e redefinição de senha por e-mail
    • Acessos B2B, fila de cadastros (pendente, em análise, aprovado e publicado no SAP) e listas de preço
    • Central de integrações com status e sincronização manual do SAP, teste de SMTP, conexão com o RD Station e saúde do Imperium
  • Cockpit BI, a visão da diretoria

    Uma aplicação dedicada a substituir a planilha gerencial de várias abas: pedidos, documentos de venda, produtos, estoque, clientes, carteira, vendedores, margens e faturamento do mês, com filtro global de período e o status da sincronização com o SAP.

    Desenhado com um roadmap de ETL, data warehouse, camada semântica de métricas e consultas em linguagem natural com IA.

WMS / OMS

Separação e expedição

Do pedido no SAP até o despacho, com cada passo registrado

Uma aplicação para o armazém, com permissões por função.

  1. A separar
  2. Em separação
  3. Conferido
  4. Aguardando cotação de frete
  5. Aguardando coleta
  6. Despachado

Funções

  • Separador
  • Supervisor
  • Expedição

Dupla conferência

  • Endereço
  • Produto
  • Quantidade
  • Auditoria completaCada evento fica registrado com usuário, horário e identificador de rastreio. Eventos repetidos não são processados duas vezes.
  • Status de volta no SAPO WMS grava o status no próprio pedido do SAP, em campos criados para o projeto. O comercial acompanha a expedição sem sair do ERP.
  • Sem conflito entre operadoresControle de concorrência para dois operadores não alterarem o mesmo pedido.
  • Indicadores e estoqueDashboard, pedidos com histórico, catálogo e posição de estoque: disponível, reservado e livre.
  • Coletor de bipagemUm app no celular (PWA) com fila offline, para o armazém seguir trabalhando sem sinal.
  • Integração com o ImperiumEnvio de pedidos e cargas, status e nota fiscal via SOAP, com fila de saída que garante a entrega das mensagens.

Integração com o SAP Business One

O coração técnico: um conector próprio para o Service Layer

Desenvolvemos um conector para a API REST do SAP B1, reutilizado por todos os serviços.

Do SAP para a plataforma

  • Pedidos de venda
  • Notas fiscais (NF-e)
  • Cotações
  • Clientes
  • Itens e estoque por depósito
  • Vendedores
  • Grupos de clientes
  • Listas de preço

Da plataforma para o SAP

  • Novos clientes (Business Partners)
  • Cotações
  • Pedidos de venda convertidos da cotação
  • Cancelamentos
  • Status do WMS no pedido

Sincronização em camadas

30 s
Operação: um worker consulta os pedidos e alimenta o WMS
2 min
Quase tempo real: pedidos recentes
1 hora
Incremental: pedidos, notas, estoque, movimentações e cotações
Toda noite
Reconciliação completa, para nada ficar divergente
Sob demanda
Manual, pela central de integrações do Painel

Resiliência pensada para produção

  • Sessão gerenciadaLogin no Service Layer controlado, com proteção contra sessões simultâneas.
  • Retry com backoffNovas tentativas com espera crescente e jitter para timeouts, limite de requisições e erros 5xx.
  • Circuit breakerPausa as chamadas quando o SAP fica instável e se recupera sozinho.
  • Controle de taxaLimita concorrência e requisições por segundo para não sobrecarregar o ERP.
  • IdempotênciaReenviar uma operação nunca duplica pedido nem cliente.
  • Mock do SAPDesenvolvimento e testes sem tocar no ambiente de produção.
  • Campos por scriptOs campos de usuário do WMS são criados e validados direto pelo Service Layer.

Arquitetura e engenharia

Feito para rodar em produção

  • 89%de cobertura de testes no domínio do WMS
  • 100%de cobertura na máquina de estados
  • API Gateway (BFF)Node.js e Fastify: autenticação, rotas do B2B e do BI, agendador de sincronização, integração com o Imperium e e-mails.
  • Núcleo do WMSPython e FastAPI com as regras críticas. O gateway só autentica, traduz e entrega.
  • PostgreSQL como base únicaTabelas espelho do SAP, views analíticas para o BI, filas de saída e logs de sincronização.
  • Contratos versionadosAPIs descritas em OpenAPI 3 e mapeamentos SAP → WMS versionados.
  • ObservabilidadeLogs estruturados com ID de correlação ponta a ponta, OpenTelemetry e métricas Prometheus, com cada chamada ao SAP rastreada.
  • SegurançaJWT com perfis e módulos, senhas com bcrypt, verificação por código e credenciais só em variáveis de ambiente.
  • Testes ponta a pontaPedido, separação, conferência e expedição, com erros de endereço, produto e quantidade, idempotência e concorrência.
  • InfraestruturaDocker Compose numa VPS, Nginx roteando cada aplicação por caminho, deploy versionado e rollback com um comando.

Stack

O que usamos em cada camada

Frontends
  • Next.js 15 e 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • shadcn/ui e Radix
Dados no front
  • TanStack Query
  • TanStack Table
  • TanStack Virtual
  • React Hook Form
  • Zod
  • Recharts
Backend
  • Node.js 20
  • Fastify 5
  • Python 3.12
  • FastAPI
  • SQLAlchemy
  • Pydantic
Banco de dados
  • PostgreSQL 16
ERP e integrações
  • SAP B1 Service Layer (OData)
  • Imperium WMS (SOAP)
  • RD Station (OAuth)
  • Google Search Console
  • OpenAI
  • SMTP
Segurança
  • JWT
  • bcrypt
  • OTP por e-mail
  • RBAC
Observabilidade
  • OpenTelemetry
  • Prometheus
  • Pino
Infra
  • Docker
  • Docker Compose
  • Nginx
  • VPS Hostinger
  • PM2
Qualidade
  • tsx e c8
  • Contratos OpenAPI 3

O que o projeto mostra

O ERP continua no centro. Cada perfil ganha a sua ferramenta.

O SAP B1 segue como fonte de verdade fiscal. Em volta dele, o cliente pede sozinho, o comercial aprova e acompanha, a diretoria decide com dados atualizados e o armazém despacha com rastreio, tudo pela mesma camada de integração.

  • 4 aplicações web
  • 3 serviços de backend
  • 3 integrações
  • 430+ commits