Características
O que são as características dos produtos (marca, cor, tamanho, peso), como viram filtros da loja e o mapa de todas as rotas da API legada.
Uma característica é um atributo que muitos produtos compartilham e que a loja quer cadastrar, exibir e filtrar de forma padronizada: marca, cor, tamanho, material, peso, voltagem, garantia. Você cria a característica uma vez (por exemplo, "Cor") e depois informa o valor dela em cada produto ("Vermelho"). É isso que alimenta a aba de informações adicionais da página do produto, a tabela de comparação e a barra de filtros da vitrine.
Esta seção documenta as rotas de características da API legada (/api/v1.0/features e a forma sem versão /api/features), o contrato compatível com a Venddor 1.0 (o mesmo contrato que os clientes antigos já usam).
Como funciona
Do cadastro ao filtro da vitrine
- Crie a característica
Use Criar característica com um nome (
description) e um tipo (feature_type). Para uma característica de lista (cor, tamanho, marca), envie também as opções emvariants, na mesma chamada. - Informe o valor em cada produto
O valor mora no produto, não na característica. Para tipos de lista o valor aponta para uma opção pelo
variant_id; para texto, número e data o valor é livre. Essas rotas fazem parte da seção de produtos. - Confira o resultado
Use Consultar característica para ler a característica com as opções e confirmar os ids que você vai usar nos produtos.
Tipos de característica
Nesta API o tipo é uma letra, herdada da Venddor 1.0.
| Letra | Tipo | O valor no produto | Aparece como filtro |
|---|---|---|---|
S | Lista | Uma opção da lista (variant_id) | Sim |
S com filter_style color | Cor | Uma opção da lista, cada uma com uma cor em hexadecimal (#FF0000) | Sim, com amostras de cor |
M | Lista múltipla | Várias opções da lista | Sim |
E | Marca | Uma marca da lista. Cada marca tem página própria na vitrine (/brands) | Sim |
T | Texto | Texto livre | Não |
N | Número | Número, com prefixo e sufixo de exibição, como kg ou cm | Não |
O | Data | Data (formato YYYY-MM-DD) | Não |
C | Caixa de marcação | Sim ou não | Não |
G | Grupo | Não guarda valor: é um grupo que reúne outras características | Não |
Uma característica de autor sai da leitura como T. A coluna "Aparece como filtro" reflete o que a vitrine monta hoje: os filtros da loja só listam características de lista, de marca e de cor.
Grupos
Um grupo agrupa características parecidas sob um título ("Dimensões" reúne Largura, Altura, Profundidade e Peso). Um grupo é uma característica de tipo G: ela aparece na mesma lista, e as características filhas apontam para ele em group_id.
Status
O status da característica é uma letra de 1 caractere.
| Letra | Significado |
|---|---|
A | Ativa. Aparece no cadastro, na página do produto (se display_on_product) e nos filtros. |
H | Oculta da vitrine. Continua no cadastro. |
D | Desativada. |
Na leitura a API informa A para qualquer característica. Na alteração você pode enviar A, H ou D.
Como a característica aparece na vitrine
Três botões independentes controlam isso. Na leitura eles saem como "Y" ou "N":
| Campo | O que faz |
|---|---|
display_on_product | Mostra o valor na página do produto (aba de informações adicionais). |
display_on_catalog | Mostra o valor como selo nos cartões de produto das listagens. |
comparison | Inclui a característica na tabela de comparação de produtos. |
Ids, datas e formatos
- Em
/api/v1.0, todo id (característica, opção, grupo, produto) é um UUID em string. Em/api/features(semv1.0), os ids saem como números decimais dentro de uma string ("673694264"), no estilo da Venddor 1.0. - A API não devolve datas de criação das características.
- Os booleanos são
"Y"ou"N". - Dinheiro não aparece nesta seção.
Autenticação e permissão
| Autenticação | HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT> |
| Permissão | Usuário administrador |
| Erros | {"message":"...","status":404} |
| Lista | {"features":[...],"params":{page,items_per_page,total_items}} |
| Identificação da loja | Subdomínio da loja ou cabeçalho X-Tenant-ID |
Endpoints
Todas as rotas exigem administrador.
| Método | Rota | O que faz | Página |
|---|---|---|---|
| GET | /api/v1.0/features, /api/features | Lista características | Listar características |
| GET | /api/v1.0/features/{id}, /api/features/{id} | Consulta uma característica | Consultar característica |
| POST | /api/v1.0/features, /api/features | Cria característica | Criar característica |
| PUT | /api/v1.0/features/{id}, /api/features/{id} | Altera característica | Alterar característica |
| DELETE | /api/v1.0/features/{id}, /api/features/{id} | Exclui característica | Excluir característica |
Erros comuns
- Esperar as opções na lista. A lista de características não traz as opções (
variantsvem sempre vazio). Para ver as opções, consulte a característica por id. - Mandar o tipo errado. Só existem as letras
C,S,M,T,N,O,GeE. Cor se cria comSmais"filter_style":"color". Autor não existe para escrita:Tcria uma característica de texto. - Querer ligar o filtro. Esta API não grava
filterable,categories_path,group_id,purpose,prefix,suffixnem os botões de exibição. - Excluir uma característica que ainda está em uso. Se algum produto tem valor nela, a exclusão é recusada com 400. Tire o valor dos produtos primeiro.
- Cadastrar a mesma opção duas vezes. Nome de característica é único por tipo, sem diferenciar maiúsculas de minúsculas, e a repetição volta 400. Uma opção repetida dentro de
variantsé ignorada em silêncio. - Estranhar as opções em minúsculas. Ao criar uma opção, a plataforma passa o texto para minúsculas e tira espaços repetidos. "Vermelho Escuro" vira
vermelho escuro. - Mandar id inválido. Um id que não é UUID volta 500 em vez de 400. Valide o id antes de chamar.
- Usar o id decimal de
/api/featuresem alterações. O id decimal serve para ler (GET). EmPUTeDELETEele volta 400: use o UUID.