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

Conteúdo e características do produto

Como um produto recebe suas características, SEO, tags, vendas cruzadas e produtos obrigatórios, e o mapa de todas as rotas dessa área.

Um produto tem mais do que nome e preço. Esta seção cobre tudo o que descreve e conecta o produto na vitrine: as características (cor, material, peso, marca...), o SEO (endereço, título e descrição para o Google), as tags, os produtos sugeridos (venda cruzada) e os produtos obrigatórios.

Todas as rotas daqui são "por produto": você informa o id do produto no caminho (/products/{id}/...). Para criar o produto, veja Criar produto; para o modelo do produto, ids, dinheiro e status, veja a home de Produtos.

Pontos-chave
  • Característica e "feature" são a mesma coisa. /features e /characteristics usam os mesmos dados e a mesma lógica; /characteristics é um apelido em português que também aceita adicionar uma só característica sem apagar as outras.
  • A definição da característica (nome, tipo, opções) é da loja e vale para todos os produtos. O que você grava no produto é o valor.
  • Gravar valores de características substitui todos os valores do produto, e a operação não é atômica: se um item da lista falhar, os valores antigos já foram apagados.
  • Só filtra na vitrine a característica de seleção (select, multi_select, brand, author, color) marcada como filterable.
  • Vendas cruzadas sugerem outros produtos; produtos obrigatórios acompanham o produto e podem ser marcados como is_mandatory.

Como funciona

O modelo de características, do zero

Pense numa ficha técnica. A loja define quais linhas a ficha pode ter (a definição), e cada produto preenche as linhas que se aplicam a ele (o valor).

Grupo (opcional)→Característica (definição)→Opções (se for de seleção)→Valor no produto
PeçaO que éExemplo
Característica (feature)A definição de uma linha da ficha: nome, tipo, onde aparece e se filtra. É da loja, não do produto."Material", tipo select
TipoComo o valor é guardado e mostrado (tabela abaixo).select, text, number
Opção (variant na API)Um valor pré-cadastrado de uma característica de seleção."Algodão", "Poliéster"
Grupo (feature group)Uma característica do tipo group que serve de "título de seção". As outras apontam para ele em group_id. A vitrine agrupa a ficha por grupo."Dimensões" (grupo) com "Peso" e "Largura"
Valor no produtoA ligação entre um produto, uma característica e um valor. Um por característica em cada produto.Camiseta X, Material = Algodão
Variant aqui não é variação de produto

Na API, "variant" de uma característica é só uma opção da lista ("Algodão"). Não tem relação com as variações de produto (camiseta P, M, G, cada uma com estoque próprio), tratadas em Variações. As duas se encontram em um ponto: uma característica com purpose igual a group_catalog_item ou group_variation_catalog_item pode ser usada para gerar variações.

Tipos de característica e como enviar o valor

O feature_type da definição manda no formato do valor. Em PUT /features (e /characteristics) cada item da lista tem feature_id e um destes campos:

feature_typePara que serveO que enviar no valorFiltra na vitrine?
selectUma opção de uma lista fechada (Material)variant_id (UUID da opção) ou value_text com o nome ou código da opçãoSim
multi_selectLista fechada, "várias opções"Igual a select. Atenção: a API guarda um valor por característica, então só uma opção cabeSim
colorComo select, com cor de amostra na opçãoIgual a selectSim
brandMarca, lista abertavariant_id ou value_text. Texto novo cria a marcaSim
authorAutor ou criador, lista abertaIgual a brandSim
textTexto livrevalue_textNão
numberNúmero inteiro, com prefixo e sufixo da definição (ex.: sufixo kg)value_num, inteiro. Número com casas decimais é multiplicado por 100Não
dateDatavalue_date, texto AAAA-MM-DDNão
boolSim ou nãovalue_text igual a "true" ou "false"Não
groupTítulo de seção, não recebe valor(nada)Não

Em select, multi_select e color, um texto que não casa com nenhuma opção é recusado, e a mensagem lista as opções aceitas. O casamento ignora maiúsculas e acentos e também reconhece o dicionário de sinônimos da loja. Só brand e author criam a opção que não existe.

Característica ou "característica"? As duas rotas

.../products/{id}/features.../products/{id}/characteristics
GETValores do produtoO mesmo
PUTSubstitui todos os valoresO mesmo
POSTNão existeAdiciona (ou troca) uma característica, sem tocar nas outras

Para ler as definições das características (nome, tipo e opções), use o cadastro de Características; as rotas desta seção lidam só com os valores gravados em cada produto. Veja Características do produto.

O que aparece onde na vitrine

São quatro marcas na definição da característica (ajustadas no cadastro de Características, fora desta seção):

MarcaEfeito
display_on_productA característica aparece na ficha técnica da página do produto.
display_on_catalogO valor aparece como selo no cartão do produto nas listagens.
filterableA característica vira filtro lateral da categoria (só os tipos de seleção da tabela acima, e só se algum produto tem valor).
comparableEntra na tabela de comparação de produtos.

Além disso, status precisa ser A (ativa) e categories_path (lista de categorias onde a característica vale; vazio significa todas) precisa incluir a categoria do filtro.

SEO, tags, vendas cruzadas e obrigatórios

  • SEO do produto são quatro campos: slug (o endereço), seo_title, seo_description e meta_keywords. Dá para escrever à mão ou gerar a partir do nome e da descrição. Trocar o slug cria redirecionamentos automáticos (SEO do produto).
  • Tags são rótulos livres ("Lançamento", "Verão 2026") compartilhados pela loja inteira (Tags e vendas cruzadas).
  • Venda cruzada é uma lista ordenada de outros produtos que a vitrine sugere ("quem viu este também gostou"). Produto obrigatório é um item que acompanha este, como a pilha de um brinquedo, e pode ser marcado como obrigatório (Produtos obrigatórios).

Autenticação e permissões

Todas as rotas usam Authorization: Bearer <JWT> de um usuário administrador, com ids em UUID e erros no formato {"error":"...","detail":"..."}. O privilégio exigido é manage_features para as características; para o resto, view_catalog ou manage_catalog para ler e manage_catalog para gravar.

Endpoints

Auth: Admin é o administrador (Bearer).

MétodoRotaO que fazAuthPágina
GET/api/v1/admin/products/{id}/featuresValores de características do produtoAdminCaracterísticas
PUT/api/v1/admin/products/{id}/featuresSubstitui todos os valoresAdminCaracterísticas
GET/api/v1/admin/products/{id}/characteristicsValores (apelido de /features)AdminApelido characteristics
POST/api/v1/admin/products/{id}/characteristicsAdiciona ou troca uma característicaAdminApelido characteristics
PUT/api/v1/admin/products/{id}/characteristicsSubstitui todos os valores (apelido)AdminApelido characteristics
GET/api/v1/admin/products/{id}/seoLê o SEOAdminSEO do produto
PUT/api/v1/admin/products/{id}/seoGrava o SEOAdminSEO do produto
POST/api/v1/admin/products/{id}/seo/generateGera o SEO a partir do produtoAdminSEO do produto
GET/api/v1/admin/products/{id}/tagsTags do produtoAdminTags e vendas cruzadas
PUT/api/v1/admin/products/{id}/tagsSubstitui as tagsAdminTags e vendas cruzadas
GET/api/v1/admin/products/{id}/cross-sellsProdutos sugeridosAdminTags e vendas cruzadas
PUT/api/v1/admin/products/{id}/cross-sellsSubstitui os sugeridosAdminTags e vendas cruzadas
GET/api/v1/admin/products/{id}/required-productsProdutos obrigatóriosAdminProdutos obrigatórios
POST/api/v1/admin/products/{id}/required-productsAdiciona um obrigatórioAdminProdutos obrigatórios
PUT/api/v1/admin/products/{id}/required-productsSubstitui a listaAdminProdutos obrigatórios
DELETE/api/v1/admin/products/{id}/required-products/{requiredId}Remove um obrigatórioAdminProdutos obrigatórios

Erros comuns

  1. Mandar só o que mudou em PUT /features. A rota troca tudo. Se você enviar só a cor, o produto perde as demais características. Para acrescentar uma, use POST /characteristics, ou leia a lista, altere e devolva inteira.
  2. Achar que o erro desfaz a gravação. Não desfaz. Os valores antigos são apagados antes de os novos entrarem; um item inválido deixa o produto com parte dos valores, ou com nenhum.
  3. Enviar duas vezes a mesma característica (para simular multi_select). Responde 500 por duplicidade: há um valor por característica em cada produto.
  4. Texto que não é uma opção. Em característica de seleção, value_text precisa casar com uma opção existente. Descubra as opções e seus ids nas rotas de Características.
  5. Mandar value_num decimal. 1.5 vira 150. Envie sempre inteiro (e use sufixo ou prefixo na definição para a unidade).
  6. Gerar o SEO de um produto já publicado. seo/generate sobrescreve o slug com o nome atual do produto; o endereço antigo passa a redirecionar.
  7. Esperar que a venda cruzada devolva tudo o que você enviou. A leitura só devolve produtos ativos e visíveis na vitrine.

Próximos passos

Características do produto
Ler e gravar os valores de características de um produto.
SEO do produto
Slug, título, descrição e geração automática.
Produtos obrigatórios
Itens que acompanham o produto e a diferença para a venda cruzada.
Variações
Quando a característica gera variações de produto.
Anterior
Execuções do repricer
Próxima
Características do produto
Nesta página
  • Como funciona
  • O modelo de características, do zero
  • Tipos de característica e como enviar o valor
  • Característica ou "característica"? As duas rotas
  • O que aparece onde na vitrine
  • SEO, tags, vendas cruzadas e obrigatórios
  • Autenticação e permissões
  • Endpoints
  • Erros comuns
  • Próximos passos