POSTPré-visualizar regra
Mostra como ficaria a busca ou a categoria com uma regra aplicada, sem gravá-la.
Envie a regra como está sendo editada (salva ou não) e a consulta ou categoria que quer testar. A plataforma roda a busca da loja, aplica sobre ela as regras ativas atuais mais a regra enviada e devolve até 48 produtos já reordenados. A regra enviada conta como ativa e sem janela de datas, qualquer que seja o status dela. Nada é gravado.
Pré-visualizar
/api/v1/admin/merch-rules/previewAdminPré-visualiza uma regra de vitrine
Corpo da requisição
ruleobjectobrigatórioA regra, com os mesmos campos de criação. Se for a edição de uma regra salva, envie também o
id dela para que a versão salva seja substituída pela enviada.querystringTermo de busca a testar. Se omitido e a regra é
search, usa o search_term dela.category_iduuidCategoria a testar. Se omitido e a regra é
category, usa o category_id dela.Exemplo de requisição: pré-visualizar
bash
curl -X POST "$BASE_URL/api/v1/admin/merch-rules/preview" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rule": {
"name": "Camisas de time primeiro",
"context": "search",
"search_term": "camisa",
"boosts": [
{
"field": "on_sale",
"value": true,
"weight": 50
}
],
"bury_out_of_stock": true
},
"query": "camisa"
}'Resposta: pré-visualizar
200Produtos reordenados
json
{
"products": [
{
"id": "22fbd12a-1b6e-41ea-a84f-4d9cf06c8766",
"name": "Camisa do Flamengo Masculina I 26 Adidas",
"slug": "camisa-flamengo-masculina-i-26-adidas",
"price": 30000,
"list_price": 44990,
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"category_id": "8fcaf422-1631-4282-b503-85cc57380649",
"image_url": "/uploads/.../flamengo.png",
"status": "A",
"quantity": 38
}
],
"total": 2,
"page": 1,
"per_page": 48,
"total_pages": 1,
"took": 0,
"query": "camisa"
}Campos da resposta
productsarrayProdutos da busca (até 48) na ordem final. Cada item é o resumo de produto da busca:
id, name, slug, price e list_price em centavos, vendor_id, category_id, image_url, status, quantity e outros.totalintegerTotal de produtos que a busca encontrou.
pageintegerSempre
1.per_pageintegerSempre
48.total_pagesintegerTotal de páginas da busca.
tookintegerTempo da busca, em milissegundos.
querystringA consulta usada.
Erros: pré-visualizar
| 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"} |
| 400 | Corpo que não é JSON, ou sem tenant resolvido. | {"error":"invalid body","detail":"..."} |
| 500 | A busca falhou. | {"error":"search failed","detail":"..."} |
| 503 | O serviço de busca não está disponível. | {"error":"search unavailable"} |