Consultar regras de vitrine
Lista as regras de vitrine com filtros e detalha uma regra.
A lista devolve as regras não excluídas, na ordem em que são aplicadas (priority crescente e, em empate, a mais nova primeiro). Regras arquivadas e vencidas aparecem; use expired e status para separá-las.
Listar regras
/api/v1/admin/merch-rulesAdminLista as regras de vitrine
Parâmetros de consulta
contextstringsearchcategoryglobalFiltra por onde a regra atua.
statusstringdraftactivearchivedFiltra por status.
pageintegerpadrão: 1Página, a partir de 1.
per_pageintegerpadrão: 50Itens por página, de 1 a 200. Fora disso volta a 50.
Exemplo de requisição: listar
bash
curl "$BASE_URL/api/v1/admin/merch-rules?status=active" \
-H "Authorization: Bearer $TOKEN"Resposta: listar
200Regras
json
{
"rules": [
{
"id": "aa3cf134-6d3f-4f16-b4f0-09c3df9601fc",
"name": "Camisas de time primeiro",
"context": "category",
"search_term": null,
"category_id": "8fcaf422-1631-4282-b503-85cc57380649",
"include_children": true,
"pins": ["22fbd12a-1b6e-41ea-a84f-4d9cf06c8766"],
"boosts": [
{ "field": "on_sale", "value": true, "weight": 30 },
{ "field": "created_days_lte", "value": 30, "weight": 20 }
],
"bury_out_of_stock": true,
"status": "active",
"priority": 100,
"starts_at": "2026-11-20T03:00:00Z",
"ends_at": "2026-12-01T02:59:59Z",
"created_at": "2026-10-11T15:02:11.512Z",
"updated_at": "2026-10-11T15:02:11.512Z",
"expired": false
}
],
"total": 1
}Campos da resposta
rulesarrayRegras da página. Sem resultados vem [].
iduuidIdentificador da regra.
namestringNome interno.
contextstringsearchcategoryglobalOnde a regra atua:
search (num termo de busca), category (numa listagem de categoria) ou global (em tudo).search_termstring | nullTermo de busca alvo, só em
search.category_iduuid | nullCategoria alvo, só em
category.include_childrenbooleanEm
category, vale também para as subcategorias.pinsarray of uuidProdutos fixados no topo, na ordem dada.
boostsarrayImpulsos por característica do produto (veja a home da seção).
fieldstringCaracterística avaliada.
valueanyValor de comparação (depende do
field).weightintegerPeso de -100 a 100. Positivo sobe o produto, negativo o desce.
bury_out_of_stockbooleanManda os produtos sem estoque para o fim da lista.
statusstringdraftactivearchiveddraft, active ou archived. Só active atua na vitrine.priorityintegerOrdem de aplicação; menor primeiro.
0 enviado vira 100.starts_atstring (RFC 3339) | nullInício da janela de atuação.
ends_atstring (RFC 3339) | nullFim da janela de atuação.
created_atstring (RFC 3339)Criação.
updated_atstring (RFC 3339)Última alteração.
expiredbooleantrue quando ends_at já passou. Só vem na lista.totalintegerTotal de regras que casam com o filtro (não só as da página).
Erros: listar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente ou inválido. | {"error":"authentication required"} |
| 403 | Falta o privilégio manage_catalog (vale também para leitura). | {"error":"insufficient privileges","required":"manage_catalog"} |
| 500 | Falha ao consultar. | {"error":"failed to list rules","detail":"..."} |
Detalhar uma regra
/api/v1/admin/merch-rules/{id}AdminDetalha uma regra de vitrine
Parâmetros de caminho
iduuidobrigatórioId da regra.
Exemplo de requisição: detalhar
bash
curl "$BASE_URL/api/v1/admin/merch-rules/aa3cf134-6d3f-4f16-b4f0-09c3df9601fc" \
-H "Authorization: Bearer $TOKEN"Resposta: detalhar
200Regra
json
{
"id": "aa3cf134-6d3f-4f16-b4f0-09c3df9601fc",
"name": "Camisas de time primeiro",
"context": "category",
"search_term": null,
"category_id": "8fcaf422-1631-4282-b503-85cc57380649",
"include_children": true,
"pins": ["22fbd12a-1b6e-41ea-a84f-4d9cf06c8766"],
"boosts": [
{ "field": "on_sale", "value": true, "weight": 30 },
{ "field": "created_days_lte", "value": 30, "weight": 20 }
],
"bury_out_of_stock": true,
"status": "active",
"priority": 100,
"starts_at": "2026-11-20T03:00:00Z",
"ends_at": "2026-12-01T02:59:59Z",
"created_at": "2026-10-11T15:02:11.512Z",
"updated_at": "2026-10-11T15:02:11.512Z"
}Campos da resposta
iduuidIdentificador da regra.
namestringNome interno.
contextstringsearchcategoryglobalOnde a regra atua:
search (num termo de busca), category (numa listagem de categoria) ou global (em tudo).search_termstring | nullTermo de busca alvo, só em
search.category_iduuid | nullCategoria alvo, só em
category.include_childrenbooleanEm
category, vale também para as subcategorias.pinsarray of uuidProdutos fixados no topo, na ordem dada.
boostsarrayImpulsos por característica do produto (veja a home da seção).
fieldstringCaracterística avaliada.
valueanyValor de comparação (depende do
field).weightintegerPeso de -100 a 100. Positivo sobe o produto, negativo o desce.
bury_out_of_stockbooleanManda os produtos sem estoque para o fim da lista.
statusstringdraftactivearchiveddraft, active ou archived. Só active atua na vitrine.priorityintegerOrdem de aplicação; menor primeiro.
0 enviado vira 100.starts_atstring (RFC 3339) | nullInício da janela de atuação.
ends_atstring (RFC 3339) | nullFim da janela de atuação.
created_atstring (RFC 3339)Criação.
updated_atstring (RFC 3339)Última alteração.
Erros: detalhar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente ou inválido. | {"error":"authentication required"} |
| 403 | Falta o privilégio manage_catalog (vale também para leitura). | {"error":"insufficient privileges","required":"manage_catalog"} |
| 404 | Não existe regra com esse id (qualquer falha na leitura, inclusive id que não é UUID, também vira 404). | {"error":"rule not found"} |