Solicitação - DasNutri
1) Preço de Atacado na Gôndola (Etiqueta)
Contexto
Hoje a etiqueta exibe apenas o preço de varejo. Necessário incluir preço de atacado (ou faixa/quantidade mínima) e ajustar o layout.
Escopo / O que será feito
-
Backend
-
Expor campo(s) de atacado no endpoint de etiquetas (ex.:
GET /api/etiquetas/lote?...
). -
Se não houver estrutura: criar tabela
produto_preco_atacado
(produtoId, qtdeMin, preco, vigenciaIni/Fim, lojaId opcional). -
Regras de negócio: escolher o nível (empresa/loja), vigência, e fallback para varejo se não houver atacado válido.
-
-
Frontend / Serviço de Etiquetas
-
Adicionar variável de template (ex.:
${precoAtacado}
,${qtdeMinAtacado}
). -
Criar novo layout (ZPL/PDF) com campo “ATACADO X por R$ Y”.
-
Visualização/preview no backoffice antes de imprimir (thumb em PDF).
-
-
Integrações/DevOps
-
Feature flag “etiqueta.atacado” por loja.
-
Migração de dados de atacado (se necessário).
-
Critérios de conclusão (aceite)
-
Etiqueta mostra claramente preço varejo e preço atacado + quantidade mínima.
-
Layout aprovado (tamanho, legibilidade, contraste).
-
Geração em lote e unitária funcionando.
-
Testes: produtos com e sem preço atacado; validade expirada; múltiplas lojas.
Riscos/Dependências
-
Dados de atacado indisponíveis → exigir carga inicial.
-
Impressoras com memória limitada (ZPL antigos) → otimizar template.
Estimativa de Esforço (22h)
-
Backend: 10h (modelo + endpoint + regras + migração simples)
-
Frontend/Serviço Etiquetas: 8h (template, preview, parametrização)
-
QA/Testes: 3h
-
Docs/Alinhamentos: 1h
2) Identificação de Vendedor no Self-Checkout
Contexto
Não há mecanismo para identificar o vendedor na venda em self-checkout. Precisa permitir associação opcional do vendedor à transação.
Escopo / O que será feito
-
Backend
-
Novo endpoint:
POST /api/selfcheckout/sessao/vendedor
(define/atualiza vendedor da sessão). -
Validações: vendedor ativo, lotação/loja válida, permissões.
-
Persistir
vendedorId
no cabeçalho da venda e enviar no fluxo fiscal (quando aplicável).
-
-
Frontend (Self-Checkout)
-
Fluxo de leitura do vendedor:
-
Modal de identificação no início da sessão ou botão “Vendedor” fixo.
-
Opções: leitura de código (ID/QR/CPF) ou busca por nome com autocomplete.
-
-
Sinalização visual quando houver vendedor selecionado; opção trocar/limpar.
-
-
Relatórios/Backoffice
-
Expor
vendedorId
em consulta de vendas (lista/detalhe).
-
-
Segurança/Telemetria
-
Auditoria: quem definiu/alterou o vendedor e quando.
-
Critérios de conclusão (aceite)
-
Venda finalizada contém
vendedorId
. -
Alterar/limpar vendedor antes do fechamento funciona.
-
Relatório/consulta exibe vendedor por venda.
-
UX: fluxo não aumenta fricção do cliente (tempo de passagem).
Riscos/Dependências
-
Variação de hardware (leitor de código) — padronizar eventos.
-
Políticas de comissionamento (fora do escopo, mas contempladas no dado).
Estimativa de Esforço (20h)
-
Backend: 8h (endpoints + persistência + auditoria mínima)
-
Frontend: 9h (UI/fluxo + scanner + estados + acessibilidade)
-
QA/Testes: 2h
-
Docs/Alinhamentos: 1h
3) Exibição de Imagem do Produto no Self-Checkout
Contexto
Funcionalidade não existente. Requer servir imagens com boa performance e alterar UI do self-checkout para exibir miniatura/thumbnail durante a compra.
Escopo / O que será feito
-
Backend
-
Novo serviço/rota de mídia:
GET /api/produtos/{id}/imagem
retornando URL assinada ou CDN pública. -
Se necessário, processamento de imagens (thumb 256px/512px, WebP/JPEG) e metadados (hash/etag).
-
Expandir
GET /api/produtos/{gtin}
para incluirimageUrl
,imageLastModified
. -
Cache-Control e ETag. Rate-limit básico.
-
-
Frontend (Self-Checkout)
-
Alterar card do item para exibir thumbnail (fallback placeholder).
-
Pré-carregamento de imagem após leitura do código de barras.
-
Estratégias de cache no cliente (IndexedDB/CacheStorage quando PWA).
-
Tratamento de rede lenta (mostrar skeleton/loading).
-
-
Backoffice
-
Campo para upload/gestão de imagem (mínimo viável) ou documentar fonte externa.
-
-
Observabilidade
-
Métricas: taxa de acerto de cache, latência de imagem, % itens sem imagem.
-
Critérios de conclusão (aceite)
-
Para itens com imagem, thumbnail aparece em ≤ 2,5s em rede normal.
-
Sem imagem → placeholder consistente.
-
Queda de rede não trava fluxo de vendas.
-
Telemetria coletada e visível (painel básico).
Riscos/Dependências
-
Volume e tamanho de imagens (custo/banda).
-
Direitos de uso de imagens (responsabilidade do cliente ou catálogo proprietário).
Estimativa de Esforço (38h)
-
Backend: 16h (serving, thumbs, cache, headers, ampliação de contrato)
-
Frontend: 18h (UI, estados, cache offline, loading, testes manuais em dispositivo)
-
QA/Testes: 3h
-
Docs/Alinhamentos: 1h
4) Resumo das Estimativas (Total 80h)
Funcionalidade | Backend | Frontend | QA/Testes | Docs/Alinh. | Total |
---|---|---|---|---|---|
1) Preço atacado na gôndola | 10h | 8h | 3h | 1h | 22h |
2) Vendedor no self-checkout | 8h | 9h | 2h | 1h | 20h |
3) Imagem no self-checkout | 16h | 18h | 3h | 1h | 38h |
Total | 34h | 35h | 8h | 3h | 80h |
Observação: as horas de QA incluem roteiro de teste manual e evidências. Se for desejado teste automatizado (e2e/UI), acrescente ~20–30% no item 2 e 3.
No Comments