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

Variações e opções

Como a Venddor modela produtos com tamanho, cor e personalização, quando usar opções, variações ou variações unificadas, e o mapa de todas as rotas.

Muitos produtos não são uma coisa só: a camiseta vem em P, M e G, a caneca aceita uma gravação, o tênis tem numeração e cor. A Venddor tem três modelos para isso, e escolher o certo logo no começo evita retrabalho. Esta seção documenta as rotas de administração (/api/v1/admin/products/{id}/...) que criam e mantêm cada um deles.

Pontos-chave
  • Opções personalizam um produto no carrinho (gravação, embalagem para presente, tamanho com acréscimo de preço). Não têm SKU, preço nem estoque próprios.
  • Variações são produtos filhos de um produto pai. Cada filho tem SKU, preço, estoque e imagens próprios, e os filhos se distinguem por características (por exemplo Tamanho = M).
  • Variações unificadas são uma matriz de combinações dentro de um produto: cada combinação (Cor = Azul, Tamanho = P) tem estoque, SKU e acréscimo de preço próprios, sem criar produtos novos.
  • Os três modelos são independentes. Um produto pode combinar opções com variações; para a matriz de combinações, escolha entre variações e variações unificadas.
  • Dinheiro é inteiro em centavos e os ids são UUID (exceto nas variações unificadas, que usam inteiros).

Como funciona

Qual modelo usar

Você quer...UsePor quê
Vender o mesmo produto com um detalhe a escolher (gravação, cor da fita, sabor) sem controlar estoque por escolhaOpçõesA escolha viaja no item do carrinho. O estoque é um só, o do produto.
Cada tamanho/cor com estoque, SKU, preço e fotos próprios, aparecendo como produto na busca, em feeds e em ERPsVariaçõesCada filho é um produto completo. Convém quando o ERP já tem um código por combinação.
Uma matriz simples de cor x tamanho dentro de um único cadastro, com estoque por combinação e acréscimo de preçoVariações unificadasMenos cadastro: um produto, N linhas. O estoque do produto é a soma das linhas.
Impedir (ou permitir só) certas combinações de opções, como "gravação não está disponível no tamanho GG"Exceções de opçõesRegras sobre as opções do produto.

Regra prática: se o estoque muda por combinação, use variações ou variações unificadas. Se só o detalhe muda, use opções.

Como ligam com as características

Característica (feature) é um atributo do catálogo, como Tamanho, Cor ou Material, com uma lista de valores (PP, P, M, G...). O cadastro delas está em Características e conteúdo do produto.

  • Variações (produtos filhos): o grupo de variação do pai diz quais características são os eixos (por exemplo Tamanho). Cada filho guarda o valor que tem em cada eixo (Tamanho = M). Veja Grupo de variação.
  • Variações unificadas: não usam o cadastro de características. Os eixos e valores são texto livre dentro do próprio produto ("Cor": ["Azul","Preto"]).
  • Opções: não usam características. São criadas por produto.

Fluxo típico de variações (produtos filhos)

  1. Crie o produto pai

    Use Criar produto. O pai é o produto "genérico" que o cliente vê primeiro. Ele não pode ser filho de outro produto.

  2. Defina os eixos

    Chame Definir eixos pelas características com as características que distinguem os filhos. Isso cria o grupo de variação do pai.

  3. Gere ou crie os filhos

    Gerar variações cria vários filhos de uma vez a partir de combinações de valores; Criar variação cria um com SKU, preço e estoque. Para aproveitar um produto que já existe, use Vincular variação.

  4. Ajuste cada filho

    Atualizar variação altera preço, SKU e estoque do filho. Definir variação padrão escolhe qual filho aparece primeiro.

  5. Propague o conteúdo do pai

    Sincronizar dados copia descrição e categorias do pai para todos os filhos.

Conceitos-chave

Pai, filho e grupo

O pai é o produto que agrupa; os filhos são produtos comuns com um campo que aponta para o pai. Um filho não pode ter filhos. O grupo de variação é o identificador compartilhado por pai e filhos, e é ele que carrega a lista de eixos. Na leitura de um produto (veja Consultar produto), o filho vem com parent_product_id, variation_group_id e is_variation: true.

Status e visibilidade dos filhos

As listagens administrativas devolvem todos os filhos, inclusive inativos. A vitrine mostra só os ativos. Status segue as letras do catálogo (Produtos).

Dinheiro nas opções e variações

OndeCampoUnidade
Valor de opçãoprice_modifiercentavos (500 = R$ 5,00) se price_modifier_type for absolute; pontos-base (1000 = 10%) se for percentage
Variação filhapricecentavos, no corpo e na resposta
Variação unificadaprice_modifiercentavos de acréscimo (ou desconto, se negativo) sobre o preço do produto

Ids

Ids de produto, opção, valor de opção, exceção e grupo de variação são UUID. Ids de variação unificada e de grupo unificado são inteiros.

Permissões

Todas as rotas desta seção exigem login de administrador (Authorization: Bearer <JWT>). Para ler basta o privilégio de visualizar o catálogo; para escrever (POST, PUT, DELETE) é preciso o privilégio de gerenciar o catálogo. Sem eles a resposta é 403: {"error":"insufficient privileges","privilege_required_any":["manage_catalog","view_catalog"]} na leitura e {"error":"insufficient privileges","required":"manage_catalog"} na escrita.

Endpoints

MétodoCaminhoPara quêPágina
GET/api/v1/admin/products/{id}/optionsListar opções com valoresOpções
POST/api/v1/admin/products/{id}/optionsCriar opçãoOpções
PUT/api/v1/admin/products/{id}/options/{optionId}Atualizar opçãoOpções
DELETE/api/v1/admin/products/{id}/options/{optionId}Excluir opção e seus valoresOpções
GET/api/v1/admin/products/{id}/options/{optionId}/variantsListar valores de uma opçãoValores de opção
POST/api/v1/admin/products/{id}/options/{optionId}/variantsCriar valorValores de opção
PUT/api/v1/admin/products/{id}/options/{optionId}/variants/{variantId}Atualizar valorValores de opção
DELETE/api/v1/admin/products/{id}/options/{optionId}/variants/{variantId}Excluir valorValores de opção
GET/api/v1/admin/products/{id}/variationsListar filhosVariações
POST/api/v1/admin/products/{id}/variationsCriar filhoVariações
POST/api/v1/admin/products/{id}/variations/generateGerar filhos em loteAções sobre variações
POST/api/v1/admin/products/{id}/variations/linkVincular produto existente como filhoAções sobre variações
POST/api/v1/admin/products/{id}/variations/syncCopiar dados do pai para os filhosAções sobre variações
PUT/api/v1/admin/products/{id}/variations/{varID}Atualizar filhoVariações
DELETE/api/v1/admin/products/{id}/variations/{varID}Desvincular filhoAções sobre variações
PUT/api/v1/admin/products/{id}/variations/{varID}/defaultDefinir filho padrãoAções sobre variações
GET/api/v1/admin/products/{id}/variation-groupLer eixos do grupoGrupo de variação
PUT/api/v1/admin/products/{id}/variation-groupDefinir eixos pelas opçõesGrupo de variação
PUT/api/v1/admin/products/{id}/variation-group-featuresDefinir eixos pelas característicasGrupo de variação
GET/api/v1/admin/products/{id}/unified-variation-groupLer eixos e linhas unificadasVariações unificadas
PUT/api/v1/admin/products/{id}/unified-variation-groupCriar ou substituir eixosVariações unificadas
GET/api/v1/admin/products/{id}/unified-variationsListar linhasVariações unificadas
POST/api/v1/admin/products/{id}/unified-variationsCriar uma linhaVariações unificadas
POST/api/v1/admin/products/{id}/unified-variations/generateGerar todas as combinaçõesVariações unificadas
GET/api/v1/admin/products/{id}/option-exceptionsListar regras de exceçãoExceções de opções
POST/api/v1/admin/products/{id}/option-exceptionsCriar regraExceções de opções
PUT/api/v1/admin/products/{id}/exceptions-typeEscolher proibir ou permitirExceções de opções

Editar e excluir uma linha de variação unificada (PUT e DELETE /api/v1/admin/unified-variations/{id}), excluir uma regra de exceção (DELETE /api/v1/admin/option-exceptions/{id}) e ler um grupo pelo id dele (GET /api/v1/admin/variation-groups/{id}) fazem parte da referência completa do administrador.

Erros comuns

  • Gerar variações antes de criar o grupo. generate e POST variations respondem 500 com "parent product has no variation group; create one first". Defina os eixos primeiro (Grupo de variação).
  • Esperar estoque por valor de opção. Valores de opção não têm estoque. Se precisa de estoque por tamanho, use variações.
  • Mandar price_modifier em reais. É centavos (ou pontos-base, se percentage). 5 é R$ 0,05.
  • Usar o id de uma variação unificada como UUID. É um inteiro.
  • Criar um filho de um filho. Um produto que já é filho não pode ser pai: a API recusa.
  • Redefinir eixos de um grupo com filhos ativos sem conferir. Os eixos são trocados; os valores já gravados nos filhos continuam, mas podem deixar de corresponder aos novos eixos.

Próximos passos

Opções
Personalização de um produto no carrinho.
Variações
Produtos filhos com estoque e preço próprios.
Variações unificadas
Matriz de combinações em um produto.
Características
Cadastro dos atributos usados como eixos.
Anterior
Anexos do produto
Próxima
Opções do produto
Nesta página
  • Como funciona
  • Qual modelo usar
  • Como ligam com as características
  • Fluxo típico de variações (produtos filhos)
  • Conceitos-chave
  • Pai, filho e grupo
  • Status e visibilidade dos filhos
  • Dinheiro nas opções e variações
  • Ids
  • Permissões
  • Endpoints
  • Erros comuns
  • Próximos passos