Produtos e estoque
Lista resumida de produtos do seller e a correção rápida de estoque.
Listar produtos
Produtos do seu seller, do mais novo para o mais antigo. As variações (produtos-filho) não entram na lista.
/api/v1/vendor/mobile/productsSellerLista resumida de produtos
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).Parâmetros de consulta
statusstringSituação do produto: a letra (
A ativo, H oculto, D desativado) ou o nome (active, hidden, disabled).searchstringTexto procurado no nome do produto.
pageintegerpadrão: 1Página, a partir de 1.
per_pageintegerpadrão: 20Itens por página. Padrão 20, máximo 50 (valores maiores são reduzidos a 50).
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/vendor/mobile/products?search=cafeteira&per_page=20" \
-H "Authorization: Bearer $TOKEN"Resposta
200Produtos
json
{
"products": [
{
"id": "d8a6c5e7-8e44-4055-a0e2-49014f5d17f6",
"name": "Cafeteira Moderno Branco",
"price": 15000,
"quantity": 77,
"status": "A",
"thumbnail_url": "https://cdn.example.com/p/cafeteira.jpg"
}
],
"total": 128,
"page": 1,
"per_page": 20,
"total_pages": 7
}Campos da resposta
productsarrayProdutos da página.
products[].iduuidId do produto.
products[].namestringNome.
products[].priceintegerPreço em centavos.
products[].quantitynumberEstoque atual.
products[].statusstringLetra da situação (
A, H, D).products[].thumbnail_urlstringPrimeira imagem. Ausente se o produto não tem imagem.
totalintegerProdutos que atendem ao filtro.
pageintegerPágina.
per_pageintegerItens por página.
total_pagesintegerTotal de páginas.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação). | {"error":"vendor_pending_review","message":"..."} |
| 403 | O usuário tem papel de seller, mas não está ligado a nenhum seller. | {"error":"no vendor account associated with this user"} |
| 500 | Falha ao listar. | {"error":"failed to list products"} |
Ajustar estoque
Grava o estoque do produto com o valor enviado. É a correção rápida do celular: o número que você manda é o novo saldo.
/api/v1/vendor/mobile/products/{id}/stockSellerDefinir o estoque total de um produto
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).Content-Typestringobrigatórioapplication/json.Parâmetros de caminho
iduuidobrigatórioId do produto.
Corpo da requisição
quantitynumberobrigatórioNovo estoque total, maior ou igual a zero. Aceita fração.
Exemplo de requisição
bash
curl -X PUT "$BASE_URL/api/v1/vendor/mobile/products/$PRODUCT_ID/stock" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"quantity": 50
}'Resposta
200Estoque gravado
json
{
"id": "d8a6c5e7-8e44-4055-a0e2-49014f5d17f6",
"name": "Cafeteira Moderno Branco",
"quantity": 50
}Campos da resposta
iduuidId do produto.
namestringNome do produto.
quantitynumberEstoque depois da gravação.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação). | {"error":"vendor_pending_review","message":"..."} |
| 403 | O usuário tem papel de seller, mas não está ligado a nenhum seller. | {"error":"no vendor account associated with this user"} |
| 400 | Corpo que não é JSON ou quantity negativa. | {"error":"invalid request body"} / {"error":"quantity must be non-negative"} |
| 403 | O produto é de outro seller. | {"error":"you do not have access to this product"} |
| 404 | Produto inexistente. | {"error":"product not found"} |
| 500 | Falha ao gravar. | {"error":"failed to update stock"} |