Traduções da página
Lê e grava o título e o texto da página em cada idioma da loja.
Ler traduções da página
Devolve uma entrada por idioma ativo da loja. Idiomas que ainda não foram traduzidos aparecem preenchidos com o conteúdo do idioma padrão, para que o formulário de edição sempre tenha o que mostrar.
/api/v1/admin/pages/{id}/descriptionsAdminLista o conteúdo da página em cada idioma
Exige o privilégio manage_content ou view_content.
Parâmetros de caminho
iduuidobrigatórioIdentificador da página.
Exemplo de requisição (Ler traduções)
bash
curl "$BASE_URL/api/v1/admin/pages/cc37f047-702b-45c7-9f88-3e8d42e81011/descriptions" \
-H "Authorization: Bearer $TOKEN"Resposta (Ler traduções)
200Traduções
json
{
"page_id": "cc37f047-702b-45c7-9f88-3e8d42e81011",
"descriptions": {
"pt-BR": {
"lang_code": "pt-BR",
"title": "Política de Troca",
"body": "<p>Você pode trocar em até 7 dias.</p>",
"seo_title": "",
"seo_description": ""
},
"en": {
"lang_code": "en",
"title": "Returns policy",
"body": "<p>You can return within 7 days.</p>",
"seo_title": "",
"seo_description": ""
}
}
}Campos da resposta
page_iduuidPágina.
descriptionsobjectMapa código do idioma para conteúdo. Cada valor tem
lang_code, title, body, seo_title e seo_description (strings).Erros (Ler traduções)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","privilege_required_any":["manage_content","view_content"]} |
| 500 | id que não é UUID, ou falha de banco. | {"error":"failed to get page descriptions","detail":"..."} |
Gravar traduções da página
Grava o título e o texto da página em um ou mais idiomas. É parcial: só os idiomas presentes no corpo são tocados. Quando você altera o idioma padrão da loja, os campos principais da página (title, body...) acompanham. Devolve o mesmo formato da leitura, já recarregado.
/api/v1/admin/pages/{id}/descriptionsAdminCria ou atualiza o conteúdo por idioma
Exige o privilégio manage_content.
Parâmetros de caminho
iduuidobrigatórioIdentificador da página.
Corpo da requisição
descriptionsobjectobrigatórioMapa código do idioma para conteúdo. Cada valor aceita
title (obrigatório), body, seo_title e seo_description.Exemplo de requisição (Gravar traduções)
bash
curl -X PUT "$BASE_URL/api/v1/admin/pages/cc37f047-702b-45c7-9f88-3e8d42e81011/descriptions" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"descriptions": {
"en": {
"title": "Returns policy",
"body": "<p>You can return within 7 days.</p>",
"seo_title": "Returns",
"seo_description": "How to return an item"
}
}
}'Resposta (Gravar traduções)
200Traduções salvas
json
{
"page_id": "cc37f047-702b-45c7-9f88-3e8d42e81011",
"descriptions": {
"en": {
"lang_code": "en",
"title": "Returns policy",
"body": "<p>You can return within 7 days.</p>",
"seo_title": "Returns",
"seo_description": "How to return an item"
}
}
}Erros (Gravar traduções)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O administrador não tem o privilégio exigido. | {"error":"insufficient privileges","required":"manage_content"} |
| 400 | descriptions ausente ou vazio, ou um idioma sem title. | {"error":"descriptions is required"} |
| 500 | Falha ao gravar. | {"error":"failed to upsert page descriptions","detail":"..."} |