VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/App do vendedor (mobile)

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.

GET/api/v1/vendor/mobile/productsSeller

Lista resumida de produtos

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).

Parâmetros de consulta

statusstring
Situação do produto: a letra (A ativo, H oculto, D desativado) ou o nome (active, hidden, disabled).
searchstring
Texto procurado no nome do produto.
pageintegerpadrão: 1
Página, a partir de 1.
per_pageintegerpadrão: 20
Itens 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

productsarray
Produtos da página.
products[].iduuid
Id do produto.
products[].namestring
Nome.
products[].priceinteger
Preço em centavos.
products[].quantitynumber
Estoque atual.
products[].statusstring
Letra da situação (A, H, D).
products[].thumbnail_urlstring
Primeira imagem. Ausente se o produto não tem imagem.
totalinteger
Produtos que atendem ao filtro.
pageinteger
Página.
per_pageinteger
Itens por página.
total_pagesinteger
Total de páginas.

Erros

StatusQuandoCorpo
401Sem token ou token inválido/expirado.{"error":"missing authorization header"} / {"error":"invalid or expired token"}
403O token não é de um usuário seller (por exemplo, é de um administrador da loja).{"error":"insufficient permissions"}
403O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação).{"error":"vendor_pending_review","message":"..."}
403O usuário tem papel de seller, mas não está ligado a nenhum seller.{"error":"no vendor account associated with this user"}
500Falha 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.

PUT/api/v1/vendor/mobile/products/{id}/stockSeller

Definir o estoque total de um produto

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).
Content-Typestringobrigatório
application/json.

Parâmetros de caminho

iduuidobrigatório
Id do produto.

Corpo da requisição

quantitynumberobrigatório
Novo 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

iduuid
Id do produto.
namestring
Nome do produto.
quantitynumber
Estoque depois da gravação.

Erros

StatusQuandoCorpo
401Sem token ou token inválido/expirado.{"error":"missing authorization header"} / {"error":"invalid or expired token"}
403O token não é de um usuário seller (por exemplo, é de um administrador da loja).{"error":"insufficient permissions"}
403O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação).{"error":"vendor_pending_review","message":"..."}
403O usuário tem papel de seller, mas não está ligado a nenhum seller.{"error":"no vendor account associated with this user"}
400Corpo que não é JSON ou quantity negativa.{"error":"invalid request body"} / {"error":"quantity must be non-negative"}
403O produto é de outro seller.{"error":"you do not have access to this product"}
404Produto inexistente.{"error":"product not found"}
500Falha ao gravar.{"error":"failed to update stock"}
Aqui `quantity` é sempre o total

Na API de administração da loja, enviar quantity sozinho é recusado porque o sentido seria ambíguo (somar ou definir). Nesta rota do app não há ambiguidade e não existe modo de somar ou subtrair: a decisão foi manter o contrato do aplicativo já instalado. Se duas pessoas ajustam o mesmo produto ao mesmo tempo, vale o último valor gravado.

Anterior
Pedidos
Próxima
Notificações
Nesta página
  • Listar produtos
  • Exemplo de requisição
  • Resposta
  • Erros
  • Ajustar estoque
  • Exemplo de requisição
  • Resposta
  • Erros