Características do produto
Lê e grava as características (ficha técnica) de um produto do seller, como marca, material e voltagem.
Características são os atributos estruturados do produto (marca, cor, material, voltagem), definidos pela loja e usados em filtros e comparações. A ficha da categoria pode marcar algumas como obrigatórias ou recomendadas: veja Ficha técnica da categoria.
Ler características
/api/v1/vendor/products/{id}/featuresSellerLer as características do produto
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
Exemplo de requisição (ler)
bash
curl "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/features" \
-H "Authorization: Bearer $TOKEN"Resposta (ler)
200Valores
json
{
"values": [
{
"id": "9a0b6a14-6a5a-4d6b-b7d8-3f1b0a6f2c44",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"feature_id": "1f2e3d4c-5b6a-4789-8a9b-0c1d2e3f4a5b",
"variant_id": "6c7d8e9f-0a1b-4c2d-9e3f-4a5b6c7d8e9f",
"created_at": "2026-10-11T21:12:00Z"
}
],
"total": 1
}Campos da resposta
valuesarrayUm valor por característica preenchida.
idstring (uuid)Id do valor.
product_idstring (uuid)Produto.
feature_idstring (uuid)Característica.
variant_idstring (uuid)Opção escolhida (características de seleção).
value_textstringValor em texto.
value_numintegerValor numérico (inteiro).
value_datestringValor de data (ISO).
created_atstringCriação (RFC 3339).
totalintegerQuantidade.
Erros (ler)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Gravar características
Substitui todas as características do produto pela lista enviada. Característica que não vier na lista é apagada. Por isso, leia primeiro, altere e devolva a lista completa.
/api/v1/vendor/products/{id}/featuresSellerGravar as características do produto
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
Corpo da requisição
valuesarrayobrigatórioValores das características.
feature_idstring (uuid)obrigatórioCaracterística. Veja a lista em
GET /api/v1/vendor/features.variant_idstring (uuid)Opção, para características de seleção. Veja
GET /api/v1/vendor/features/{id}/variants.value_textstringValor em texto. Em marca/autor, o texto vira (ou reaproveita) a opção correspondente.
value_numnumberValor numérico.
value_datestringData ISO (
YYYY-MM-DD).Exemplo de requisição (gravar)
bash
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/features" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"values": [
{
"feature_id": "1f2e3d4c-5b6a-4789-8a9b-0c1d2e3f4a5b",
"variant_id": "6c7d8e9f-0a1b-4c2d-9e3f-4a5b6c7d8e9f"
},
{
"feature_id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
"value_text": "100% algodão"
}
]
}'Resposta (gravar)
200Valores gravados
json
{
"values": [
{
"id": "9a0b6a14-6a5a-4d6b-b7d8-3f1b0a6f2c44",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"feature_id": "1f2e3d4c-5b6a-4789-8a9b-0c1d2e3f4a5b",
"variant_id": "6c7d8e9f-0a1b-4c2d-9e3f-4a5b6c7d8e9f",
"created_at": "2026-10-11T21:12:00Z"
}
],
"total": 1
}Campos da resposta
valuesarrayValores como ficaram.
idstring (uuid)Id do valor.
product_idstring (uuid)Produto.
feature_idstring (uuid)Característica.
variant_idstring (uuid)Opção escolhida (características de seleção).
value_textstringValor em texto.
value_numintegerValor numérico (inteiro).
value_datestringValor de data (ISO).
created_atstringCriação (RFC 3339).
totalintegerQuantidade.
Erros (gravar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
| 500 | feature_id inexistente ou texto de marca que não se resolve. | {"error":"failed to set product feature values","detail":"..."} |