VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

Preço e estoque do produto

Como funcionam as faixas de preço por quantidade, o estoque, a recorrência e a embalagem de envio de um produto, com o modelo de estoque explicado e o mapa das rotas.

Além do cadastro básico (nome, preço, categoria), um produto tem quatro assuntos comerciais que esta seção cobre: as faixas de preço por quantidade (preço de atacado), o estoque (quanto há para vender e o que a loja faz quando acaba), a recorrência (assinatura e compra programada) e a embalagem de envio (a caixa externa usada no cálculo do frete).

Todas as rotas daqui ficam em /api/v1/admin. O preço base e as regras de quantidade do produto são alterados no cadastro do produto (Atualizar produto).

Pontos-chave
  • Dinheiro é sempre inteiro em centavos (4990 = R$ 49,90). Isso vale para price, para o preço das faixas e para base_price_cents.
  • O estoque de um produto é um número (quantity) mais três configurações: se a loja controla o estoque, o que fazer quando acaba e a partir de quanto avisar que está baixo.
  • Para mudar o saldo você diz a intenção: definir o total (set_to) ou somar uma variação (delta). Nunca só quantity.
  • Recorrência e embalagem de envio dependem de recursos opcionais da loja; desligados, as rotas respondem 403 module_disabled.
  • Cada rota exige um privilégio diferente. O ajuste de estoque, por exemplo, exige manage_features, e não manage_catalog.

Como funciona

Um fluxo típico de um ERP ou de um sistema de preços que alimenta a loja:

  1. Definir o preço base

    O preço do produto (centavos) é gravado no cadastro dele. Veja Criar produto e Atualizar produto.

  2. Publicar a tabela de atacado

    Envie as faixas de preço por quantidade de uma vez com PUT, ou uma a uma com POST.

  3. Manter o estoque em dia

    A cada contagem ou movimentação, ajuste o estoque: set_to para um inventário, delta para entradas e saídas.

  4. Opcionais

    Se a loja vende por assinatura, configure a recorrência. Se usa o cálculo de frete por caixa, grave a embalagem de envio.

Conceitos-chave

O modelo de estoque

Estes são os campos do produto que descrevem o estoque. Todos aparecem na resposta de Consultar produto:

CampoTipoO que é
quantitynúmeroO saldo: quantas unidades há para vender, na unidade de venda do produto. Também aparece como amount, o mesmo número.
track_inventoryverdadeiro ou falsoSe a loja controla o estoque deste produto. Produtos novos nascem com true. A API não tem campo para mudar isso.
low_stock_alertinteiroO limite de estoque baixo. 0 desliga o aviso.
out_of_stock_actionN, B ou SO que a loja faz quando o saldo chega a zero.
min_quantity, max_quantity, quantity_stepnúmeroRegras de compra (mínimo, máximo e passo por pedido). 0 significa sem limite.
sale_unit, allow_fractionaltexto, booleanoA unidade de venda (un, kg, cx, l...) e se aceita fração (0,5 kg).

track_inventory. Com true, o saldo manda: o carrinho recusa uma quantidade maior que quantity (erro de estoque insuficiente), a menos que out_of_stock_action seja B. Com false e quantity igual a 0, o produto é ilimitado (típico de produto digital). Com false e quantity maior que 0, a loja ainda limita a compra a esse saldo.

out_of_stock_action. O que acontece quando o saldo é zero:

ValorSignificado
NNada: o botão de compra some e o produto não pode ser comprado.
BEncomenda (backorder): a compra continua liberada mesmo sem saldo.
SCadastro de aviso: a loja mostra "avise-me quando voltar". É o valor com que os produtos nascem.

low_stock_alert. Um produto é considerado de estoque baixo quando controla estoque, tem saldo maior que 0 e menor ou igual a esse limite. Na lista de produtos da administração, o filtro low_stock=true mostra esses produtos.

Frações. Produtos vendidos por peso ou volume (kg, l) podem ter saldo fracionado. As rotas de estoque desta seção trabalham em unidades inteiras.

Quem muda o saldo. Fora as rotas desta seção, o saldo cai quando um pedido é feito e volta quando o pedido é cancelado ou falha (veja Pedidos). Em lojas com depósitos, o produto também tem saldo por depósito; as rotas desta seção mexem no saldo do produto.

Variações. Um produto com variações (cor, tamanho) tem estoque próprio em cada variação. Essas variações não são tratadas nesta seção.

Faixas de preço por quantidade

Preço de atacado: "a partir de N unidades, o preço é X". Pode valer para todos, só para visitantes, só para clientes logados ou só para um grupo. O preço da faixa vale para todas as unidades do pedido, e uma faixa nunca cobra mais que o preço do produto. Os detalhes estão em Faixas de preço por quantidade.

Privilégios

RotaPrivilégio
Ler faixas de preçoview_catalog ou manage_catalog
Gravar faixas de preçomanage_catalog
Ajustar o estoque (PUT .../stock)manage_features
Ler a recorrênciaview_content ou manage_content (e recurso de recorrência ligado)
Gravar a recorrênciamanage_content (e recurso de recorrência ligado)
Ler a embalagem de envioview_catalog ou manage_catalog (e recurso de frete pelos Correios ligado)
Gravar a embalagem de enviomanage_catalog (e recurso de frete pelos Correios ligado)

Sem o privilégio a resposta é 403 e o corpo diz qual faltou. Com o recurso desligado, a resposta é 403 {"error":"module_disabled","module":"..."}.

Identificadores

O {id} é sempre o UUID do produto, nunca o SKU. Para o produto mestre e o produto de seller, veja Produtos.

Endpoints

Auth: Admin é o administrador (Bearer).

MétodoRotaO que fazAuthPágina
GET/api/v1/admin/products/{id}/price-tiersLista as faixas de preçoAdminFaixas de preço
PUT/api/v1/admin/products/{id}/price-tiersSubstitui todas as faixasAdminFaixas de preço
POST/api/v1/admin/products/{id}/price-tiersAcrescenta ou atualiza uma faixaAdminFaixas de preço
PUT/api/v1/admin/products/{id}/stockDefine ou ajusta o estoqueAdminEstoque
GET/api/v1/admin/products/{id}/recurringLê a recorrência do produtoAdminRecorrência
PUT/api/v1/admin/products/{id}/recurringGrava a recorrência do produtoAdminRecorrência
GET/api/v1/admin/products/{id}/shipping-packagingLê a embalagem de envioAdminEmbalagem de envio
PUT/api/v1/admin/products/{id}/shipping-packagingGrava a embalagem de envioAdminEmbalagem de envio

Erros comuns

  • Enviar quantity sozinho para mudar o estoque. A API recusa com 400 stock_intent_required. Use set_to (total) ou delta (variação).
  • Esperar que o ajuste de estoque use manage_catalog. A rota exige manage_features. Um usuário só de catálogo recebe 403.
  • Mandar reais em vez de centavos numa faixa. O price da faixa é um inteiro em centavos: 49.90 é recusado, envie 4990.
  • Achar que o PUT das faixas é parcial. Ele apaga todas as faixas e grava só as que você mandou. Para acrescentar uma, use POST.
  • Esperar que o POST de uma faixa com lower_limit 1 mude o preço do produto. Só o PUT faz isso.
  • Usar o updated_at antigo na embalagem de envio. A gravação volta 409. Releia e grave de novo.
  • Esquecer que recorrência e embalagem dependem de recursos da loja. O 403 module_disabled não é problema de permissão do usuário.

Próximos passos

Faixas de preço
Preço de atacado por quantidade e por público.
Estoque
Definir ou somar o saldo.
Recorrência
Assinatura e compra programada de um produto.
Embalagem de envio
A caixa externa usada no frete.
Anterior
Produtos obrigatórios
Próxima
Faixas de preço por quantidade
Nesta página
  • Como funciona
  • Conceitos-chave
  • O modelo de estoque
  • Faixas de preço por quantidade
  • Privilégios
  • Identificadores
  • Endpoints
  • Erros comuns
  • Próximos passos