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

Redirecionamentos por termo

Cadastra termos de busca que levam o cliente direto a uma página, como "frete grátis" para a página de frete, e lista, altera e apaga esses atalhos.

Alguns termos de busca têm uma resposta melhor que uma lista de produtos: "frete grátis" pede a página de regras de frete, "troca" pede a política de trocas, o nome de uma marca pede a página da marca. Um redirecionamento por termo liga um termo a um endereço. Quando o cliente envia uma busca cujo termo normalizado é igual, a resposta da busca traz redirect_url e a vitrine leva o cliente para lá. Todas as rotas exigem manage_settings.

O casamento é por termo exato normalizado: minúsculas, sem acento, espaços colapsados. "Frete Grátis" e "frete gratis" são o mesmo termo, mas "frete gratis sp" não é.

GET/api/v1/admin/search/redirectsAdmin

Lista os redirecionamentos

Devolve uma lista simples (array JSON, sem paginação) com os redirecionamentos não apagados.

POST/api/v1/admin/search/redirectsAdmin

Cria um redirecionamento

Cria o redirecionamento e devolve o registro (status 200). O termo é normalizado antes de gravar e deve ser único.

Corpo da requisição (JSON)

term_normstringobrigatório
Termo de busca. Pode ser enviado com maiúsculas e acentos: é gravado normalizado.
target_urlstringobrigatório
Endereço de destino. Use um caminho da loja (/pages/frete) ou uma URL completa. A API não valida o endereço.
is_activebooleanpadrão: false
Se o redirecionamento vale. Se omitido, fica false, ou seja, desligado.
PUT/api/v1/admin/search/redirects/{id}Admin

Altera um redirecionamento

Muda o destino e o estado. Não dá para mudar o termo: para isso, desative este e crie outro. Responde 204, sem corpo.

Parâmetros de caminho

iduuidobrigatório
Id do redirecionamento.

Corpo da requisição (JSON)

target_urlstringobrigatório
Novo destino.
is_activebooleanobrigatório
Novo estado. Omitido, vira false.
DELETE/api/v1/admin/search/redirects/{id}Admin

Apaga um redirecionamento

Apaga de forma lógica e responde 204. Repetir a chamada também responde 204. O termo continua reservado: não é possível criar outro redirecionamento com o mesmo termo depois de apagar.

Parâmetros de caminho

iduuidobrigatório
Id do redirecionamento.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/search/redirects" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"term_norm":"frete grátis","target_url":"/pages/frete","is_active":true}'

# desligar sem apagar
curl -X PUT "$BASE_URL/api/v1/admin/search/redirects/$ID" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"target_url":"/pages/frete","is_active":false}'

Resposta

200Redirecionamento criado
json
{
  "id": "aa2b5f46-1bda-42ad-9ecc-3f8d67304a5c",
  "term_norm": "frete gratis",
  "target_url": "/pages/frete",
  "is_active": true
}
200Lista
json
[
  {
    "id": "aa2b5f46-1bda-42ad-9ecc-3f8d67304a5c",
    "term_norm": "frete gratis",
    "target_url": "/pages/frete",
    "is_active": true
  }
]

Campos do redirecionamento

iduuid
Id.
term_normstring
Termo normalizado (minúsculas, sem acentos, espaços colapsados).
target_urlstring
Destino.
is_activeboolean
Se vale na busca.

Erros

StatusQuandoCorpo de exemplo
400Corpo que não é JSON{"error":"invalid body","detail":"..."}
401Token ausente ou expirado{"error":"invalid or expired token"}
403Falta manage_settings{"error":"insufficient privileges","required":"manage_settings"}
409O termo já existe (inclusive de um redirecionamento apagado){"error":"term already exists","detail":"search merchandising: term already exists"}
500Id que não é UUID{"error":"failed to delete redirect","detail":"..."}
Criar sem is_active deixa o redirecionamento desligado

Quem esquece is_active: true cria um registro que aparece na lista mas nunca redireciona. Confira o campo na resposta da criação.

Apagar reserva o termo para sempre

Como o termo é único mesmo entre registros apagados, apagar e recriar o mesmo termo dá 409. Para pausar ou trocar o destino, use PUT (is_active: false ou novo target_url) em vez de apagar.

PUT e DELETE com id desconhecido

Os dois respondem 204 também quando o id é um UUID válido que não existe. Só um id que não é UUID gera erro (500).

Veja também

  • Estatísticas de busca
  • Busca global do painel
  • Busca
Anterior
Motor de busca e reindexação
Próxima
Selos de produto
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também