8.3 KiB
Lacunas e requisitos pendentes (Marketplace B2B)
Local do documento:
docs/GAPS_ANALISE_B2B.md
Status (pronto x faltando)
Pronto
- Nenhum item confirmado como concluído nesta análise de lacunas.
Faltando
- Itens listados nas seções abaixo.
Este documento descreve o que falta para cumprir o cenário solicitado:
- Comprador só descobre o vendedor no final do fluxo.
- Taxa invisível de 12% (não pode ser mostrada ao comprador).
- Comissão do vendedor de 6% (sugestão do usuário: “vai ficar 6% para vendedor”; confirmar regra de negócio e origem dos 6%).
Observação: a regra atual citada na documentação do backend indica taxa invisível de 12% para compradores. Antes de implementar, alinhar o modelo final de taxas (12% buyer fee + 6% seller fee? 12% total? split?).
1) Backend (Go API)
1.1 Regras de negócio / taxas
- Definir modelo final de taxas (12% para comprador, 6% para vendedor):
- esclarecer se são duas taxas distintas ou partes de uma taxa total.
- documentar em
config(ex.:BUYER_FEE_RATE,SELLER_FEE_RATE) e no Swagger.
- Normalizar cálculo de preços:
- guardar preços base (seller price) e final (buyer price) com rastreabilidade.
- garantir que a taxa não aparece em payloads do comprador.
- Auditoria de taxas:
- registrar no pedido:
base_price,buyer_fee_rate,buyer_fee_amount,seller_fee_rate,seller_fee_amount,payout_amount. - expor esses campos somente para backoffice/admin.
- registrar no pedido:
1.2 Ocultação do vendedor
- Mascarar dados do vendedor nos endpoints públicos do catálogo/pesquisa:
- retornar apenas atributos neutros (ex.: distância, categoria, SLA, estoque, validade) sem identidade.
- Revelar vendedor somente no final:
- definir claramente qual evento é “final” (ex.: confirmação do pagamento, confirmação do pedido).
- criar endpoint específico para revelação pós-compra.
1.3 Contratos de API
- Revisar schemas do Swagger para refletir:
- campos mascarados antes da compra;
- campos completos após compra;
- campos financeiros internos (somente backoffice/admin).
- Versionar mudanças (ex.:
/api/v1→/api/v2se necessário para evitar breaking change).
1.4 Segurança e compliance
- Garantir controle de acesso:
- comprador não pode inferir vendedor por
id,slugou dados indiretos.
- comprador não pode inferir vendedor por
- Logs de auditoria para preço final vs. preço base.
- Testes automatizados garantindo que vendedor não aparece em respostas pré-compra.
2) Frontend (Marketplace React)
2.1 Ocultação do vendedor no fluxo
- Remover nome/identidade do vendedor das telas de catálogo/listagem/carrinho.
- Substituir por informações neutras:
- faixa de SLA, localização genérica (ex.: “Região Metropolitana”), disponibilidade, avaliações agregadas.
- Bloquear UI que revele vendedor antes do “evento final”.
2.2 Exibição de preços
- Mostrar somente preço final (com taxa invisível aplicada), sem linha de “taxa”.
- Texto/tooltip neutro (ex.: “preço final do produto”).
2.3 Ponto de revelação
- Tela pós-compra com dados completos do vendedor.
- Estados intermediários (checkout, pagamento pendente) sem revelar vendedor.
3) Frontend principal (saveinmed-frontend)
Se este frontend também for usado por compradores/vendedores finais, as mesmas regras acima precisam ser espelhadas.
- Revisar listagens para garantir que vendedor não aparece antes da compra.
- Revisar preços para exibir apenas valor final (taxa invisível).
- Revelação pós-compra na área de pedidos.
4) Backoffice (NestJS)
4.1 Administração de taxas
- Tela e endpoints para configurar:
buyer_fee_rate(ex.: 12%).seller_fee_rate(ex.: 6%).
- Histórico de alterações e auditoria.
4.2 Visibilidade e auditoria
- Dashboard financeiro com:
- preço base, preço final, taxas, payout do vendedor.
- Exportação para contabilidade (CSV/Excel).
4.3 Compliance
- Logs de decisão (por pedido) demonstrando que comprador não viu taxa.
5) Alinhamentos necessários (negócio + produto)
- Definir “momento final” de revelação do vendedor.
- Definir regra de taxa (12% buyer + 6% seller ou modelo único).
- Definir termos legais (taxa invisível, transparência fiscal para vendedor).
- Definir experiência de suporte (ex.: disputa, devolução) sem expor vendedor antes da compra.
6) Alinhamento Inicial (Semana 1) — Plano detalhado
6.1 Revisar lacunas no documento
Objetivo: validar e ajustar as lacunas descritas neste documento com as áreas de Produto, Negócios e Tech.
Passos:
- Revisão guiada do cenário: confirmar com stakeholders o fluxo “comprador só descobre vendedor no final” e a “taxa invisível de 12%”.
- Conferir impactos por domínio:
- Backend: preço final x base, auditoria, controle de acesso.
- Frontend(s): ocultação de vendedor e taxa invisível.
- Backoffice: gestão e auditoria de taxas.
- Validar riscos de compliance: alinhar transparência fiscal para vendedor e registros de auditoria.
- Atualizar este documento com decisões finais. Entregáveis da semana: documento revisado + decisões registradas em seção 5.
6.2 Definir MVP do backend e critérios de aceite por módulo
Objetivo: fechar o escopo mínimo do backend para suportar o fluxo B2B sem quebrar o modelo atual.
MVP Backend (escopo mínimo)
- Taxas e precificação
- Configurar taxas (
buyer_fee_rate,seller_fee_rate) via config/DB. - Calcular preço final (buyer) e payout (seller) com rastreabilidade.
- Configurar taxas (
- Ocultação do vendedor
- Listagem e detalhes sem identificação do vendedor até o evento final.
- Endpoint pós-compra para revelar vendedor.
- Auditoria e segurança
- Logs de auditoria e campos internos para backoffice/admin.
- Regras de acesso garantindo anonimato pré-compra.
- Contratos de API
- Swagger atualizado com campos pré e pós-compra.
Critérios de aceite por módulo (backend)
Módulo 1 — Taxas e precificação
- Dado um produto, o preço final exibido ao comprador já inclui a taxa invisível.
- Os campos de taxa não aparecem para o comprador.
- A auditoria registra base, taxas e payout do vendedor.
Módulo 2 — Ocultação do vendedor
- Endpoints de catálogo e carrinho não retornam dados identificáveis do vendedor.
- Existe endpoint de revelação pós-compra com dados completos.
- Testes confirmam que não há vazamento indireto (id, slug).
Módulo 3 — Segurança e controle de acesso
- Rotas de auditoria são restritas a admin/backoffice.
- Logs registram decisões de preço e ocultação.
Módulo 4 — Contratos de API
- Swagger documenta claramente os campos pré-compra e pós-compra.
- Versionamento definido caso haja breaking change.
6.3 Atualizar backlog e priorizar dependências críticas
Objetivo: ordenar entregas e identificar bloqueios.
Backlog priorizado (ordem de execução)
- Definir regra final de taxas (Negócio + Produto)
- Modelo de dados e auditoria (Backend)
- Ocultação do vendedor (Backend + Frontend)
- Endpoint de revelação pós-compra (Backend + Frontend)
- Swagger/contratos e versionamento (Backend)
- Backoffice: gestão de taxas e auditoria (Backoffice)
Dependências críticas
- Regra final de taxa (bloqueia cálculo de preço, auditoria e UI).
- Definição do evento “final” (bloqueia endpoint de revelação).
- Modelo de dados de pedido com campos de auditoria (bloqueia backoffice).
7) Plano de ação (resumido)
Semana 1
- Validar regras de negócio e evento final.
- Revisar e atualizar este documento.
- Definir MVP backend e critérios de aceite.
Semana 2
- Implementar cálculo de taxas, auditoria e mascaramento.
- Atualizar Swagger e contratos.
Semana 3
- Integração com frontend(s) e backoffice.
- Testes de segurança/anonimato pré-compra.