Análises e relatórios
Vendas, clientes, lucro, canais de aquisição, coortes, comparação com o mercado e busca: os relatórios de análise da loja.
Esta seção reúne as rotas de análise da loja, as mesmas que alimentam as telas de relatórios do painel de administração. Elas respondem perguntas como quanto a loja vendeu, quem compra, quando compra, de onde vêm os clientes e quanto sobra de lucro. Todas são de leitura, exceto a gravação de custos de mídia, a adesão à comparação com o mercado, a carga do histórico de lucro e a criação de audiências.
Como funciona
Nenhuma rota guarda estado de relatório: cada chamada recalcula a partir dos pedidos. O fluxo típico de um painel é:
- Mostrar a visão geral
Chame Resumo de vendas para os cartões de topo e Pedidos por status para o funil.
- Desenhar as séries
Use Relatório de vendas para o gráfico por dia e Padrões de tempo para dia da semana e hora.
- Entender quem compra
- Medir o retorno
Lance os custos de mídia em Canais e acompanhe o lucro real.
As três famílias de períodos:
| Rotas | Parâmetros de período | Padrão |
|---|---|---|
report, daily, daily-revenue, top-products, revenue-by-*, customer-stats | start e end, obrigatórios | nenhum (400 se faltar) |
stats, overview | period: today, 7days, 30days, 90days, all | 30days |
repurchase, ltv, time-between, rfm, sales-by-day, heatmap, top-customers, sales-by-customer | from/to ou period (inclui this_month, last_month, this_year) | 30days |
profit, channels, campaigns e search usam from/to com padrão de 30 dias.
Conceitos-chave
Pedido pai e sub-pedido
Uma compra com produtos de vários sellers (lojistas) vira um pedido pai e um sub-pedido por seller. Os relatórios da loja olham o pedido pai, para não contar a mesma compra duas vezes. A receita por seller usa os sub-pedidos.
Centavos e pontos-base
4990 é R$ 49,90. Taxas e participações vêm em pontos-base, a centésima parte de um ponto percentual: 2500 é 25,00%. Veja Ids, dinheiro e datas.
Letra de status
O status do pedido é uma letra definida por loja. Os relatórios resolvem a letra para code, name e type pelo cadastro de status da loja; agrupe por type.
Quem pode ver
São rotas do administrador da loja. O seller (lojista) tem as próprias rotas de análise, fora desta seção. Sem o privilégio view_reports a resposta é 403 insufficient privileges; com o módulo analytics desligado, 403 module_disabled.
Endpoints
| Método | Caminho | Para que serve | Autenticação |
|---|---|---|---|
| GET | /api/v1/admin/analytics/stats | Estatísticas de pedidos de um período | admin |
| GET | /api/v1/admin/analytics/overview | Estatísticas mais pedidos por status | admin |
| GET | /api/v1/admin/analytics/orders-by-status | Contagem de pedidos por status | admin |
| GET | /api/v1/admin/analytics/orders | Apelido de pedidos por status | admin |
| GET | /api/v1/admin/analytics/report | Relatório de vendas entre duas datas | admin |
| GET | /api/v1/admin/analytics/daily | Vendas por dia (só dias com pedido) | admin |
| GET | /api/v1/admin/analytics/daily-revenue | Receita por dia (todos os dias do intervalo) | admin |
| GET | /api/v1/admin/analytics/revenue-by-vendor | Receita por seller | admin |
| GET | /api/v1/admin/analytics/revenue-by-category | Receita por categoria | admin |
| GET | /api/v1/admin/analytics/top-products | Produtos mais vendidos entre duas datas | admin |
| GET | /api/v1/admin/analytics/products | Atalho de produtos mais vendidos (padrão 30 dias) | admin |
| GET | /api/v1/admin/analytics/customer-stats | Clientes novos e recorrentes | admin |
| GET | /api/v1/admin/analytics/top-customers | Ranking dos clientes que mais gastaram | admin |
| GET | /api/v1/admin/analytics/sales-by-customer | Receita por cliente em fatias | admin |
| GET | /api/v1/admin/analytics/repurchase | Clientes novos e recorrentes na janela | admin |
| GET | /api/v1/admin/analytics/ltv | Valor de vida médio dos clientes ativos | admin |
| GET | /api/v1/admin/analytics/time-between | Tempo médio entre pedidos do mesmo cliente | admin |
| GET | /api/v1/admin/analytics/rfm | Segmentação RFM dos clientes | admin |
| GET | /api/v1/admin/analytics/sales-by-day | Vendas por dia da semana | admin |
| GET | /api/v1/admin/analytics/monthly-growth | Pedidos e receita por mês | admin |
| GET | /api/v1/admin/analytics/heatmap | Mapa de calor de vendas por dia e hora | admin |
| GET | /api/v1/admin/analytics/cohorts | Matriz de retenção por coorte | admin |
| POST | /api/v1/admin/analytics/cohorts/segment | Criar audiência de CRM a partir de uma célula | admin |
| GET | /api/v1/admin/analytics/profit | Relatório de lucro | admin |
| GET | /api/v1/admin/analytics/profit/export.csv | Exportar o lucro em CSV | admin |
| POST | /api/v1/admin/analytics/profit/backfill | Calcular o lucro de pedidos antigos, em lotes | admin |
| GET | /api/v1/admin/analytics/channels | Receita e ROAS por canal | admin |
| GET | /api/v1/admin/analytics/channels/campaigns | Campanhas de um canal | admin |
| GET | /api/v1/admin/analytics/channel-costs | Custos de mídia de um mês | admin |
| PUT | /api/v1/admin/analytics/channel-costs | Gravar custos de mídia | admin |
| GET | /api/v1/admin/analytics/benchmarks | Ler a comparação com o mercado | admin |
| PUT | /api/v1/admin/analytics/benchmarks/settings | Aderir ou sair da comparação | admin |
| GET | /api/v1/admin/analytics/search | Relatório da busca interna | admin |
Erros comuns
- Esquecer
starteendnas rotas que os exigem: a resposta é 400, não um padrão de 30 dias. - Pedir mais de 1 ano com
start/endsemperiod=all. - Somar
pending_orders+completed_orders+cancelled_ordersesperando chegar atotal_orders: o total ignora cancelados. - Tratar a letra do status como universal; ela muda por loja.
- Mandar
limitacima de 100 emtop-productsesperando 100: volta 10. - Dividir centavos por 100 duas vezes ou exibir pontos-base como se fossem porcentagem.
- Gravar custos de mídia com o rótulo do painel em vez da chave do canal.
- Chamar o lucro sem ter preço de custo nos produtos:
cogs_missing_pctalto significa lucro inflado.