Representantes comerciais
O que são representantes comerciais, os dois modos de operação, a carteira de clientes e o mapa das rotas de cadastro, carteira e comissão.
Representante comercial (ou promotor de vendas) é a pessoa que atende uma lista de clientes por conta da loja: visita, negocia, lança pedidos em nome do cliente e recebe comissão. Esta seção cobre o cadastro e a carteira (a lista de clientes que cada representante atende), os sellers que ele atende, as comissões e o desempenho. A parte de campo (rotas de visita, check-ins, conta-corrente, alçada de desconto) está em Campo e alçadas.
Como funciona
- Cadastre
Crie o representante com nome e e-mail. A plataforma cria o login dele e, no modo do seller, o vincula à equipe do seller.
- Monte a carteira
Atribua clientes um a um, importe uma planilha de CNPJ/CPF, ou transfira a carteira de outro representante.
- Acompanhe
Veja pedidos, resumo e painel e comissões.
Conceitos-chave
Modos: marketplace e seller
No modo marketplace, o vínculo representante-seller fica na tabela de sellers atendidos e a comissão sai por pedido. No modo do seller, a carteira é do próprio seller e o owner_vendor_id limita tudo. A lista aceita mode=seller ou mode=marketplace para separar.
Carteira e tipos de vínculo
Cada vínculo cliente-representante tem um link_kind: permanent (definitivo), temporary (cobertura com data final valid_until, que depois volta ao representante original) ou copy (o cliente fica com os dois). Um cliente pode estar na carteira de mais de um representante.
Nível hierárquico e alçada
hierarchy_level vai de 0 (campo) a 4 (aprovadores). discount_limit_bp é o desconto máximo que o representante dá sozinho. O restante da cadeia está em Campo e alçadas.
Estados e letras
A comissão tem status que, na leitura, sai como letra: P pendente, A aprovada, C paga. Na escrita você manda a palavra (pending, approved, paid).
Endpoints
| Método | Caminho | Para que serve | Auth |
|---|---|---|---|
| GET | /api/v1/admin/trade-reps | Listar | admin |
| POST | /api/v1/admin/trade-reps | Criar | admin |
| GET | /api/v1/admin/trade-reps/{id} | Consultar | admin |
| PUT | /api/v1/admin/trade-reps/{id} | Atualizar | admin |
| DELETE | /api/v1/admin/trade-reps/{id} | Excluir | admin |
| POST | /api/v1/admin/trade-reps/{id}/reactivate | Reativar conta | admin |
| GET | /api/v1/admin/trade-reps/{id}/customers | Listar carteira | admin |
| POST | /api/v1/admin/trade-reps/{id}/customers | Atribuir cliente | admin |
| DELETE | /api/v1/admin/trade-reps/{id}/customers/{customerId} | Remover cliente | admin |
| GET | /api/v1/admin/trade-reps/by-customer | Representante de um cliente | admin |
| GET | /api/v1/admin/trade-reps/issuer | Emissor de um cliente | admin |
| PUT | /api/v1/admin/trade-reps/{id}/portfolio | Substituir a carteira | admin |
| POST | /api/v1/admin/trade-reps/{id}/portfolio/import | Importar carteira | admin |
| POST | /api/v1/admin/trade-reps/transfer | Transferir clientes | admin |
| POST | /api/v1/admin/trade-reps/copy | Copiar clientes | admin |
| POST | /api/v1/admin/trade-reps/restore-expired | Restaurar vínculos vencidos | admin |
| GET | /api/v1/admin/trade-reps/{id}/vendors | Listar sellers atendidos | admin |
| POST | /api/v1/admin/trade-reps/{id}/vendors | Atribuir seller | admin |
| DELETE | /api/v1/admin/trade-reps/{id}/vendors/{vendorId} | Remover seller | admin |
| GET | /api/v1/admin/trade-reps/{id}/summary | Resumo | admin |
| GET | /api/v1/admin/trade-reps/{id}/dashboard | Painel | admin |
| GET | /api/v1/admin/trade-reps/{id}/orders | Pedidos do representante | admin |
| GET | /api/v1/admin/trade-reps/by-state | Representantes por estado | admin |
| GET | /api/v1/admin/trade-reps/{id}/commissions | Listar comissões | admin |
| POST | /api/v1/admin/trade-reps/{id}/commissions | Lançar comissão | admin |
| PATCH | /api/v1/admin/trade-reps/commissions/{commId}/status | Mudar status da comissão | admin |
Erros comuns
- Mandar o id como UUID. O
{id}do representante é inteiro; texto devolve400 invalid trade rep ID. - Criar sem senha. Se o e-mail não tem usuário seller ainda, a criação exige
password(400 password_required). - E-mail de outro tipo de conta. Se o e-mail já pertence a um cliente ou administrador, a criação devolve
409 email_in_use. - Transferir sem listar clientes. Se
customer_idsvier vazio (ouall_filtered: true), a operação alcança toda a carteira do representante de origem. - Esperar
404ao excluir um id que não existe.DELETEdevolve sempre200 {"status":"deleted"}. - Contar com o 409 de cliente já atribuído. Atribuir de novo apenas atualiza o vínculo; não há erro.
- Esquecer o
vendor_idno modo seller. Transferir, copiar e substituir carteira trabalham porvendor_id; vazio significa os vínculos globais, não os do seller.