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

Slug por idioma

Define o slug de um produto, categoria, página, post ou marca em um idioma, validando o texto e redirecionando o slug antigo.

O slug é o trecho legível da URL (camiseta-basica em /produtos/camiseta-basica). Em lojas com mais de um idioma, cada item pode ter um slug por idioma. Esta rota grava o slug de um idioma específico, garante que ele não colide com outro item e guarda o slug anterior para redirecionar automaticamente. Exige o privilégio manage_categories.

Disponibilidade

Nesta versão da plataforma, a instalação de desenvolvimento responde 404 localized slug not available a esta rota, porque o serviço de validação de slugs não está ligado ao tratador. O contrato abaixo descreve o comportamento previsto no código. Antes de depender dela, faça uma chamada de teste na sua loja; enquanto o 404 persistir, edite o slug pelo cadastro do item (produto, categoria, página...).

Definir o slug de um idioma

PUT/api/v1/admin/seo/localized-slug/{id}Admin

Define o slug de um item em um idioma

O texto enviado é normalizado: acentos removidos, minúsculas, e qualquer sequência de caracteres que não seja letra ou número vira um hífen (Camiseta Básica! vira camiseta-basica). Se o resultado for vazio, o slug é inválido. Se o slug mudar, o anterior é guardado em uma tabela de redirecionamentos de slug (só o último slug de cada item e idioma), e a URL antiga passa a levar à nova.

Parâmetros de caminho

iduuidobrigatório
Id do item (produto, categoria, página, post ou marca, conforme entity_type).

Corpo da requisição

entity_typestringobrigatório
productcategorypageblog_postbrand
Tipo do item.
lang_codestringobrigatório
Código do idioma. O servidor converte para minúsculas e tira espaços antes de usar, então envie o código no formato em que está gravado nas descrições do item.
slugstringobrigatório
Slug desejado. Será normalizado.

Exemplo de requisição

bash
curl -X PUT "$BASE_URL/api/v1/admin/seo/localized-slug/$PRODUCT_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"entity_type":"product","lang_code":"en","slug":"Basic T-Shirt"}'
200Slug gravado
json
{ "slug": "basic-t-shirt", "lang_code": "en" }

Campos da resposta

slugstring
Slug já normalizado e gravado.
lang_codestring
O lang_code como foi enviado.

Erros

StatusQuandoCorpo
400Corpo JSON inválido{"error":"invalid request body","detail":"..."}
401Sem token ou token expirado{"error":"missing authorization header"}
403Sem o privilégio manage_categories{"error":"insufficient privileges","required":"manage_categories"}
404O serviço de slugs não está disponível nesta instalação{"error":"localized slug not available"}
422O slug normalizado é vazio; é uma palavra reservada da loja (admin, por exemplo); ou já é usado por outro item no mesmo idioma{"error":"slug_invalid"}, {"error":"slug_reserved"} ou {"error":"slug_taken"}
500entity_type desconhecido ou falha ao gravar{"error":"failed to set localized slug","detail":"unknown entity type \"zzz\""}
Códigos de erro em 422

Diferente da maioria das rotas, os erros de validação aqui são só o código curto (slug_taken), sem texto de apoio. Trate o código para montar a mensagem no seu sistema.

Veja também

  • Redirecionamentos
  • Idiomas
Anterior
Lote
Próxima
Aparência da vitrine
Nesta página
  • Definir o slug de um idioma
  • Exemplo de requisição
  • Erros
  • Veja também