Páginas de conteúdo
Páginas institucionais da loja (Sobre nós, Trocas, Privacidade), com status, SEO e tradução por idioma.
As páginas de conteúdo são os textos fixos da loja: Sobre nós, Política de troca, Termos de uso, Privacidade. Cada página tem um endereço próprio na vitrine (/{slug}), um título, um corpo em HTML e dados de SEO. Esta seção é a API que o painel usa para criar e manter essas páginas.
Como funciona
Uma página nasce com POST /api/v1/admin/pages, quase sempre já com status active. Daí em diante o painel a edita com PUT, ajusta o texto em outros idiomas pelas rotas de traduções e, quando ela não serve mais, a apaga. A vitrine lê as páginas ativas por uma rota pública própria; esta seção é só a parte administrativa.
| Status | Significado | Aparece na vitrine |
|---|---|---|
active | Publicada. | Sim |
hidden | Escondida do público, mas acessível pelo painel. disabled é gravado do mesmo jeito e volta como hidden. | Não |
draft | Rascunho. | Não |
O tipo (page_type) separa páginas comuns (page), páginas de blog (blog) e atalhos para outro endereço (link).
Conceitos importantes
Slug
O slug é o trecho da URL: a página "Política de Troca" vira /politica-de-troca. Na criação, um slug repetido recebe sufixo (-2, -3). Na atualização, um slug repetido é recusado.
Página da loja e página de seller
Páginas sem vendor_id pertencem à loja inteira. Em lojas com vários sellers, cada seller pode ter páginas próprias que só aparecem na sua vitrine. Use marketplace_only=true ou vendor_id na lista para separar.
Política de privacidade
Se a loja não publicar a própria política, a plataforma serve um texto-modelo. Veja Política de privacidade padrão.
Erros de validação
Esta API devolve 500 em vários casos que seriam 400 ou 404 (status inválido, slug repetido na atualização, id que não é UUID, página inexistente na exclusão). Leia o campo detail da resposta para saber o motivo.
Endpoints
| Método | Caminho | Para que serve | Autenticação |
|---|---|---|---|
| GET | /api/v1/admin/pages | Lista as páginas de conteúdo da loja | admin |
| GET | /api/v1/admin/pages/{id} | Devolve uma página pelo id | admin |
| POST | /api/v1/admin/pages | Cria uma página de conteúdo | admin |
| PUT | /api/v1/admin/pages/{id} | Altera campos de uma página | admin |
| DELETE | /api/v1/admin/pages/{id} | Move a página para a lixeira | admin |
| GET | /api/v1/admin/pages/{id}/descriptions | Lista o conteúdo da página em cada idioma | admin |
| PUT | /api/v1/admin/pages/{id}/descriptions | Cria ou atualiza o conteúdo por idioma | admin |
| GET | /api/v1/admin/pages/privacy-default | Mostra se a loja usa a política padrão e o texto dela | admin |
Erros comuns
- Enviar
statusfora da lista: a atualização responde 500, e a criação troca silenciosamente o valor poractive. - Esperar 404 ao apagar uma página que já foi apagada: a resposta é 500
page not found. - Mudar o slug de uma página publicada sem redirecionamento: o link antigo para de funcionar.
- Colocar
<script>no corpo: ele é removido sem aviso. - Tratar
disabledehiddencomo estados diferentes: são o mesmo e a leitura devolvehidden. - Usar os campos que repetem outros valores (
page_id,description...) em integrações novas.