DevSehn
← Trabalhos Case 02 · E-commerce de peças de refrigeração

Eli Peças

Loja online de peças e componentes de refrigeração comercial e industrial da Eli Refrigeração. Reúne catálogo, carrinho, pedidos e pagamentos em uma única plataforma, com um painel que controla a vitrine e atende o cliente pelo WhatsApp.

Cliente
Eli Refrigeração
Papel
Engenharia de software full-stack
Entrega
Loja, painel admin, API e integrações
Stack
Next.js · NestJS · Prisma · Bull
elipecas.com.br/admin/pedidos/EP-2026-0418
Eli PeçasPROGRAMAS
Painel
Pedidos
Produtos
GESTÃO
Integrações
Usuários
Destaques
Observabilidade
Ver loja
AAdminadmin@exemplo.com.br
Sair
Admin/Pedidos/#EP-2026-0418
Todos os pedidosDOSSIÊ OPERACIONALPedido #EP-2026-0418Registrado em 14/10/2026, às 08:25. Consulte a venda e mantenha a operação em movimento.
Pendente
VALOR DO PEDIDOR$ 7.896,70
ITENS CONFIRMADOS5 itens
ÚLTIMA ALTERAÇÃO14/10/2026
1
Recebido
2
Confirmado
3
Separação
4
Em trânsito
5
Entregue
CONFERÊNCIA DA VENDAItens do pedido
5 itens
COMPRESSOR 1/3+HP R-134a 220V/1F 50/60HZSKU  13181 un.R$ 689,00
BOTIJA R134A DUGOLD 13,6KGSKU  14591 un.R$ 1.149,90
COMPRESSOR MT 36-1 220V TRISKU  13911 un.R$ 5.980,00
METASIL DESIX TRANSPARENTESKU  12891 un.R$ 32,90
NIVEL ALUMINIO MAXSKU  12551 un.R$ 44,90
Financeiro
SubtotalR$ 7.896,70
FreteR$ 0,00
TotalR$ 7.896,70
PagamentoNenhum pagamento registrado até o momento.
CENTRO DE COMANDOAtualizar operaçãoAltere apenas informações que são persistidas no pedido.
STATUS DO PEDIDOPendente
FRETER$0
VALOR TOTALR$7896,7
OBSERVAÇÕES OPERACIONAISRegistre uma informação importante para o atendimento. Salvar atualizações
CLIENTECliente Exemplocliente@exemplo.com.br(51) 90000-0000Conversar no WhatsApp
9:41
Carrinho no app com 5 itens separados
Fig. 01Dossiê do pedido no painel e carrinho no app · dados de exemplo

Do balcão da loja para um catálogo nacional

(01) Contexto

A Eli Refrigeração atende técnicos e empresas de refrigeração em uma loja física com compressores, gases refrigerantes, manifolds, tubos de cobre e acessórios. Boa parte das vendas começava com uma pergunta no balcão ou no WhatsApp.

O objetivo era levar esse catálogo para a internet sem perder o atendimento próximo: o cliente encontra a peça pelo nome, SKU ou marca, monta o pedido e fala com um especialista quando precisa. A equipe acompanha cada pedido e controla a vitrine em um painel próprio.

Interior da loja Eli Refrigeração com prateleiras de peças
Fig. 02Loja física, de onde sai o estoque do catálogo
Fachada da Eli Refrigeração
Fig. 03Fachada
81endpoints NestJS publicados em OpenAPI
26páginas no App Router entre loja e painel
20entidades Prisma, com 38 relações e 13 enums
Unidades e compressores/Botijas e latas/Manifolds/Tubos de cobre/Agitadores/Hélices/Utilitários/Unidades e compressores/Botijas e latas/Manifolds/Tubos de cobre/Agitadores/Hélices/Utilitários/

Um catálogo para quem já sabe o que procura

(02) Catálogo e carrinho

A busca aceita nome do produto, SKU ou marca, com filtros e ordenação. Cada card mostra categoria, nome técnico e SKU, e oferece duas saídas: Consultar, que abre uma conversa no WhatsApp com o produto, ou adicionar ao carrinho sem sair da lista. O carrinho funciona sem login e é enviado como pedido.

9:41
Catálogo de peças com cards de produto
01Busca por produto, SKU ou marca
02Carrinho com contador de itens
03Filtros e ordenação
04Consultar abre o WhatsApp com o produto
05Adicionar ao carrinho sem sair da lista
Fig. 04Catálogo no app, com rolagem automática · dados reais do catálogo público

O pedido vira um dossiê operacional

(03) Pedido e pagamento

Ao enviar o carrinho, o pedido entra no painel com valor, itens confirmados e data da última alteração. A equipe atualiza status, frete e observações em um só lugar e fala com o cliente pelo WhatsApp a partir do próprio pedido (Fig. 01).

01RecebidoO carrinho enviado vira pedido com itens e valor confirmados.
02ConfirmadoA equipe confere estoque, frete e forma de pagamento.
03SeparaçãoOs itens são separados na loja para envio.
04Em trânsitoO pedido sai para entrega.
05EntregueO ciclo fecha e fica no histórico do cliente.
Cliente
CheckoutPagamento transparenteConsulta de statusCancelamento
Admin
Atualização de statusCancelamentoEstorno
Formas de pagamento
PixCartão de créditoBoleto

A vitrine da home é editada pelo painel

(04) Campanhas

Banners rotativos, cards promocionais e destaques da loja ficam em abas separadas. Cada campanha tem imagem, destino (uma categoria ou nenhum), período e status, e a ordem é ajustada arrastando as linhas.

Banners rotativos01
Cards promocionais02
Destaques da loja03
elipecas.com.br/admin/destaques
Eli PeçasPROGRAMAS
Painel
Pedidos
Produtos
GESTÃO
Integrações
Usuários
Destaques
Observabilidade
Ver loja
AAdminadmin@exemplo.com.br
Sair
Admin/Destaques/Campanhas da Home
Campanhas da HomeGerencie banners e campanhas promocionais da vitrine.
Nova campanha
Banners rotativos4Cards promocionais4Destaques da loja
Buscar por título, destino ou texto...Todos statusQualquer período
ORDEMBANNERDESTINOPERÍODOSTATUSAÇÕES
Compressores com frete grátisBanner rotativoSem destinoSem redirecionamentoSempre ativoAtiva
Linha BitzerBanner rotativoBITZERCategoriaSempre ativoAtiva
Tubos de cobreBanner rotativoCOBRECategoria01/11 – 30/11Agendada
Manifolds digitaisBanner rotativoMANIFOLDSCategoriaSempre ativoAtiva
Mostrando 1-4 de 4 campanhas10 por página1
Fig. 05Campanhas da home no painel · dados de exemplo

Uma API, duas interfaces, três integrações

(05) Arquitetura

A loja e o painel são o mesmo app Next.js. Tudo passa por uma API NestJS documentada em OpenAPI, com Prisma no acesso a dados e filas Bull para o trabalho em segundo plano.

A · Loja
Catálogo e busca
Carrinho de visitante
Conta e pedidos
B · Painel admin
Pedidos e pagamentos
Produtos e categorias
Destaques da home
C · API NestJS
81 endpoints · OpenAPI
Auth com refresh token
Prisma e filas Bull
D · Integrações
WhatsApp multissessão
OfficeWeb
Pagamentos
auth/Registro, login, refresh e logout. Rotas públicas e rotas por papel.
cart/Carrinho por visitante, itens por variante e merge com a conta no login.
categories/Árvore de categorias por slug, com exclusão lógica.
orders/Pedido criado a partir do carrinho, status pelo admin e contato com o suporte.
payments/Checkout, pagamento transparente, consulta de status, cancelamento e estorno.
admin/Painel, execuções do OfficeWeb e destaques da home com upload e reordenação.
whatsapp/Sessões por QR code ou código de pareamento, sessão ativa e configuração.
health/Saúde da API e observabilidade.
118arquivos TypeScript no backend
208arquivos TypeScript no frontend
1.112arestas tipadas de execução
164classes no backend

O que sustenta a loja

(06) Decisões técnicas
01

Carrinho que acompanha o visitante

O carrinho funciona sem login e é mesclado à conta quando o cliente entra. Os itens são guardados por variante, então quantidade e remoção não dependem do produto pai.

02

WhatsApp como canal de venda

O painel gerencia várias sessões de WhatsApp, conectadas por QR code ou código de pareamento, e define qual fica ativa. No catálogo, o botão Consultar leva o produto direto para a conversa.

03

Vitrine controlada pelo painel

Banners, cards promocionais e destaques da loja têm imagem, destino, período e ordem. A loja lê uma rota pública dedicada, separada das rotas administrativas.

04

Pagamento com ciclo completo

O cliente tem checkout, pagamento transparente e consulta de status. Cancelamento e estorno pelo admin ficam restritos por papel.

05

Integração com o OfficeWeb

Cada execução da integração fica registrada e pode ser consultada no painel, o que mostra o que foi sincronizado e quando.

06

Arquitetura legível para IA

Um comando lê o código por AST e gera inventário, índice de rotas, injeções e fluxos de execução. O documento é regenerado depois de mudanças em controllers, rotas, Prisma ou OpenAPI.

(07) Stack
Next.js NestJS TypeScript Prisma Bull Redis OpenAPI JWT WhatsApp
Próximo case · 03 Cultura Verde
→