CRM — Perfis de Clientes
O CRM (frontend-react/src/views/admin/CustomersView.tsx, backend/src/loyalty/) agrega o histórico de pedidos por customerPhone, construindo perfis automáticos sem exigir cadastro do cliente.
Visão Geral
| Característica | Detalhe |
|---|---|
| View | frontend-react/src/views/admin/CustomersView.tsx |
| Rota | /t/:slug/admin/customers (alias CRM) |
| Fonte de dados | Order.customerPhone + Order.customerName |
| Permissão | Staff ou superior |
Segmentação Automática
Clientes são classificados automaticamente com base em contagem e valor de pedidos:
| Tag | Critério |
|---|---|
| VIP | ≥ 10 pedidos ou gasto total ≥ R$ 500 |
| Regular | 3–9 pedidos |
| Novo | 1–2 pedidos |
Tags são calculadas na view a partir de Order — sem persistência separada.
Campos por Perfil
| Campo | Origem |
|---|---|
| Nome | customerName do pedido mais recente |
| Telefone | customerPhone (chave de agrupamento) |
| Total de pedidos | Contagem de pedidos com status: delivered |
| Gasto total | Soma de totalAmount (pedidos entregues) |
| Último pedido | createdAt do pedido entregue mais recente |
| Ticket médio | totalAmount / count |
Alergias e Preferências
Alergias registradas no perfil do cliente (customer.allergies[]) viajam como snapshot no pedido (Order.customerAllergies). O KDS exibe banner vermelho para pedidos com alergias — mesmo que o perfil seja editado depois, o snapshot histórico é imutável.
Triggers e Campanhas
Veja CRM Triggers para automações por segmento (aniversário, "em risco", reativação).
LGPD
Clientes podem solicitar exclusão via portal público /lgpd/dsr. Dados de pedidos vinculados a NF-e não são anonimizados (obrigação fiscal).
Veja LGPD — Conformidade.