Estatísticas do cliente
Devolve o resumo de pedidos e gasto do cliente logado.
Devolve os números da conta do cliente: quantos pedidos fez, quantos foram pagos, quanto gastou, o ticket médio, as datas do primeiro e do último pedido e há quantos dias a conta existe. É a fonte do cartão "Meu resumo" da área do cliente.
/api/v1/storefront/statsClienteResumo de pedidos do cliente logado
Exige o token de um cliente logado (Authorization: Bearer) com o escopo customer:read. O resumo é sempre o do dono do token.
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/storefront/stats" \
-H "Authorization: Bearer $TOKEN"Resposta
200Resumo do cliente
json
{
"user_id": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"total_orders": 7,
"total_paid_orders": 3,
"total_spend_centavos": 128900,
"average_order_value": 42966,
"first_order_at": "2026-03-24T14:50:11.922414Z",
"last_order_at": "2026-10-09T06:30:10.932191Z",
"total_addresses": 1,
"account_age_days": 219,
"payment_punctuality": {
"email": "maria.souza@example.com",
"orders_4_months": 1,
"late_payments_4_months": 0,
"orders_5_years": 1,
"late_payments_5_years": 0,
"overdue_letter": "Y"
}
}Campos da resposta
user_iduuidId do cliente (o dono do token).
total_ordersintegerTodos os pedidos do cliente, em qualquer status.
total_paid_ordersintegerPedidos considerados pagos (pago, enviado ou entregue na instalação padrão). Cada loja pode redefinir o que conta como pago.
total_spend_centavosintegerSoma, em centavos, dos pedidos pagos.
128900 = R$ 1.289,00.average_order_valueintegerTicket médio em centavos: gasto dividido pelos pedidos pagos.
0 sem pedidos pagos.first_order_atstringRFC 3339. Ausente se o cliente nunca comprou.
last_order_atstringRFC 3339. Ausente se o cliente nunca comprou.
total_addressesintegerEndereços salvos.
account_age_daysintegerDias desde a criação da conta.
payment_punctualityobjectHistórico de pontualidade de pagamento, contado pelo e-mail (pedidos de visitante com o mesmo e-mail entram na conta). Ausente quando o cliente não tem e-mail ou a leitura falhou.
payment_punctuality.emailstringE-mail usado na contagem.
payment_punctuality.orders_4_monthsintegerPedidos nos últimos 4 meses.
payment_punctuality.late_payments_4_monthsintegerPagamentos em atraso nos últimos 4 meses.
payment_punctuality.orders_5_yearsintegerPedidos nos últimos 5 anos.
payment_punctuality.late_payments_5_yearsintegerPagamentos em atraso nos últimos 5 anos.
payment_punctuality.overdue_letterstringLetra do status de atraso usada na conta.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, ou token inválido. O corpo é JSON, mas o Content-Type vem como text/plain. | {"error":"missing authorization header"} |
| 401 | Chamada com chave de API da vitrine (sem cliente logado): a rota exige um cliente. | {"error":"authentication required"} |
| 403 | Chave de API da vitrine sem o escopo customer:read. | {"error":"missing_scope","required":"customer:read"} |
| 500 | Falha ao calcular as estatísticas. | {"error":"failed to get statistics","detail":"..."} |