Cadastro de representantes
Lista, consulta, cadastra e altera os representantes comerciais do seller, com região, comissão, alçada de desconto e login de acesso.
Estas quatro rotas cuidam do cadastro da equipe de campo do seller. Tudo é fixado ao seller do token: a lista só traz os representantes dele, e o owner_vendor_id enviado no corpo é ignorado. Os ids dos representantes são inteiros.
Listar
/api/v1/vendor/trade-repsSellerLista os representantes do seller
Parâmetros de consulta
searchstringpageintegerpadrão: 1per_pageintegerpadrão: 20Campos da resposta
repsarray[] quando não há nenhum.reps[].idintegerreps[].user_iduuidreps[].namestringreps[].emailstringreps[].phonestringreps[].regionstringreps[].regional_codestringregion. Vazio se não atribuído.reps[].statesarrayreps[].is_activebooleanreps[].commission_rateinteger500 = 5%). 0 usa a regra do seller.reps[].total_salesintegerreps[].total_commissionintegerreps[].notesstringreps[].owner_vendor_iduuidreps[].internal_codestringreps[].hierarchy_levelinteger01234reps[].discount_limit_bpintegerreps[].credit_balanceintegerreps[].deactivated_atstringreps[].email_invalid_atstringtotalintegerpageintegerper_pageintegertotal_pagesintegerConsultar
/api/v1/vendor/trade-reps/{id}SellerConsulta um representante do seller
Devolve um representante, com os mesmos campos de cada item da lista. Representante de outro seller, inexistente ou com id que não é número responde 404.
Parâmetros de caminho
idintegerobrigatórioCadastrar
/api/v1/vendor/trade-repsSellerCadastra um representante da equipe do seller
Cria o representante já vinculado ao seu seller e cria, ou reaproveita, o login dele como usuário seller. Se o e-mail ainda não tem login, password é obrigatória.
Corpo da requisição
namestringobrigatórioemailstringobrigatóriopasswordstringpassword_too_weak.user_iduuidphonestringregionstringregional_codestringstatesarray[].commission_rateintegerpadrão: 0notesstringinternal_codestringhierarchy_levelintegerpadrão: 001234discount_limit_bpintegerpadrão: 0destination_idsarray[].usergroup_idsarraynotify_on_ordersbooleanExemplo de requisição: cadastrar
A resposta de sucesso é 201 com o representante completo, no formato de um item da lista.
Alterar
/api/v1/vendor/trade-reps/{id}SellerAltera parcialmente um representante
Altera só os campos enviados. A resposta é o representante atualizado. Para desligar um representante sem apagar o histórico, envie is_active: false.
Parâmetros de caminho
idintegerobrigatórioCorpo da requisição
namestringemailstringemail_invalid_at.phonestringregionstringregional_codestringstatesarrayis_activebooleancommission_rateintegernotesstringinternal_codestringhierarchy_levelinteger01234discount_limit_bpintegerdestination_idsarraypasswordstringusergroup_idsarraynotify_on_ordersbooleanExemplo de requisição: alterar
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo não é JSON. | {"error":"invalid body","detail":"..."} |
| 400 | Sem name ou sem email no cadastro. | {"error":"name is required"} |
| 400 | E-mail com formato inválido. | {"error":"traderep_email_invalid","detail":"..."} |
| 400 | Não existe login para o e-mail e faltou password. | {"error":"password_required","detail":"password_required"} |
| 400 | Senha fraca. | {"error":"password_too_weak","detail":"..."} |
| 400 | user_id inexistente. | {"error":"user_not_found","detail":"user_not_found"} |
| 400 | Grupo de privilégio inválido em usergroup_ids. | {"error":"usergroup_invalid","detail":"..."} |
| 400 | Outra falha de validação ao criar ou alterar. | {"error":"create failed","detail":"..."} ou {"error":"update failed","detail":"..."} |
| 401 | Sem token. | {"error":"authentication required"} |
| 403 | Módulo desligado. | {"error":"module_disabled","module":"trade-reps"} |
| 403 | Falta um dos privilégios de representantes ou de pedidos. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_manage_trade_reps","vendor_view_trade_reps","vendor_view_orders"]} |
| 403 | Usuário sem seller. | {"error":"vendor not found for user"} |
| 404 | Representante inexistente, de outro seller ou com id inválido. | {"error":"not found"} |
| 409 | O e-mail pertence a uma conta que não é de seller. | {"error":"email_in_use","detail":"..."} |
| 503 | Serviço de contas indisponível e foi enviada password. | {"error":"accounts_unavailable","detail":"accounts_unavailable"} |