Lojas, vendors e companies
Como funcionam os sellers na API compatível com a Venddor 1.0: três nomes para o mesmo recurso, situação, ids e exclusão lógica.
Na Venddor um seller (lojista) é a empresa que vende dentro de uma loja-marketplace. A plataforma 1.0 chamava essa empresa de company (e, em partes da documentação, de store ou vendor). Esta seção documenta as rotas de compatibilidade que cadastram, consultam, alteram e excluem sellers com o mesmo contrato que os clientes antigos (ERP, painéis, apps) já usam.
Como funciona
Situação do seller
| Letra | Significado | Aparece na vitrine |
|---|---|---|
P | Pendente. Estado inicial de todo cadastro novo. | Não |
A | Ativo. O seller vende. | Sim |
D | Desativado (suspenso). Também é o estado de um seller excluído. | Não |
R | Recusado na aprovação. | Não |
No filtro status e no corpo do PUT você pode mandar a letra ou o nome (active, pending, disabled, suspended, rejected). Mande a letra: é o que as respostas devolvem.
Fluxo típico de uma integração
- Cadastrar o seller
Criar loja devolve o
store_id. Guarde-o: é a chave para tudo. - Completar os dados
O cadastro aceita só parte dos campos. Complete (endereço, nome, e-mail) com Alterar loja.
- Aprovar
Mande
{"status":"A"}no mesmoPUT. Enquanto estiverPo seller não vende. - Sincronizar o catálogo dele
Produtos da loja lista os produtos do seller no formato de produto da 1.0.
Conceitos importantes
Ids
- Em
/api/v1.0/...o id é um UUID (c0000000-0000-0000-0000-000000000001). - Em
/api/...(sem a versão) as respostas trocam o UUID por um número decimal em string ("1034851747"), para clientes que só entendem inteiros. - Nos caminhos (
/stores/{id}) só o UUID funciona. Se você pegar o id decimal de uma resposta de/api/storese chamar/api/stores/1034851747, recebe erro (500; noPUT, 400). Para operar um seller, leia o UUID em/api/v1.0/storese use-o nos caminhos, nas duas formas.
Três nomes, um recurso
stores, vendors e companies apontam para as mesmas operações. Escolha o que o seu cliente já usa. Cada rota existe também sem /v1.0, e as maiúsculas e minúsculas do caminho são ignoradas.
Datas e dinheiro
A única data é timestamp (Unix, segundos). Estas rotas não trazem valores em dinheiro.
Exclusão lógica
Excluir marca o seller como excluído e D. Ele continua no banco, não aparece em listas e responde 404. O login do dono também é desativado, a menos que ele administre outro seller ativo.
Endpoints
| Método | Caminho | Para que serve | Autenticação |
|---|---|---|---|
| GET | /api/v1.0/stores | Listar lojas | Administrador |
| GET | /api/v1.0/stores/{id} | Consultar loja | Administrador |
| POST | /api/v1.0/stores | Criar loja | Administrador |
| PUT | /api/v1.0/stores/{id} | Alterar loja | Administrador |
| DELETE | /api/v1.0/stores/{id} | Excluir loja | Administrador |
| GET | /api/v1.0/stores/{id}/products | Produtos da loja | Administrador |
Cada linha vale também para /api/v1.0/vendors..., /api/v1.0/companies... e para as três formas sem /v1.0 (/api/stores..., /api/vendors..., /api/companies...).
Erros comuns
- Usar o id decimal de
/api/storesnos caminhos. Dá erro (500; noPUT, 400). Use o UUID. - Mandar
addressna criação. O campo é ignorado emPOST; o endereço só é gravado porPUT. - Esperar que o seller criado já venda. Ele nasce
P. - Mandar um
statuscom nome desconhecido ("ativo"). O texto longo estoura a coluna de 1 caractere e a resposta é 400. - Confiar nas contagens da lista.
product_count,order_counteavg_ratingsó vêm preenchidos no detalhe. - Pedir mais de 100 itens por página. A lista volta com 20, apesar de
params.items_per_pagerepetir o valor pedido.