Temas da vitrine
Como a loja organiza temas e estilos, qual deles a vitrine usa e o mapa de todas as rotas de temas.
Um tema da vitrine é um pacote de aparência: ele possui os seus próprios layouts (a estrutura das páginas) e um ou mais estilos (cores, fontes, bordas e CSS próprio). A loja tem vários temas cadastrados, mas exatamente um está ativo e, dentro dele, exatamente um estilo está ativo. É o estilo ativo que define o visual que o cliente vê. Esta seção documenta como criar, copiar, ativar, exportar e importar temas e como gerenciar seus estilos. Todas as rotas exigem token de administrador com o privilégio manage_theme.
Como funciona
- Crie ou copie um tema
POST /storefront-themescria um tema vazio com um estiloDefault;POST /storefront-themes/{id}/duplicatecopia um tema inteiro (estilos e layouts);POST /storefront-themes/importcria a partir de um arquivo exportado. - Ajuste os estilosCrie estilos novos e altere as cores e fontes de cada um com as rotas de estilos. Um tema pode ter vários estilos (variações de cor), mas só um ativo.
- Ative
POST /storefront-themes/{id}/activatepublica o tema. Se ele ainda não tiver layout padrão, o layout editado mais recentemente passa a ser o padrão.
Conceitos-chave
Tema, estilo e layout
| Conceito | O que é | Quantos ativos |
|---|---|---|
| Tema | Pacote com nome, slug e posição. Dono de layouts e estilos. | 1 por loja |
| Estilo | Conjunto de cores, tipografia, geometria, CSS próprio e tokens avançados (extended_config). | 1 por tema |
| Layout | Estrutura das páginas, no layout avançado. Pertence a um tema. | 1 padrão por tema |
Tokens de um estilo
Cores (todas em texto, normalmente hexadecimal como #2563eb): primary_color, secondary_color, accent_color, bg_color, text_color, header_bg_color, footer_bg_color, link_color, link_hover_color, heading_color, muted_text_color, border_color, button_text_color. Tipografia e geometria: font_family, heading_font, border_radius, max_width. Extras: custom_css (CSS livre) e extended_config (objeto JSON com mais de 110 tokens de componentes). Campo não enviado volta ao padrão: #2563eb, #1e40af, #f59e0b, #ffffff, #1f2937 e assim por diante, fonte Inter, sans-serif, raio 8px, largura 1280px.
Slug
O slug é gerado do nome (minúsculas, hífens no lugar de espaços e símbolos). A vitrine o usa para escolher componentes específicos de um tema. Renomear um tema não muda o slug.
Proteção por patches
Alguns estilos podem pertencer a um patch aplicado (uma alteração controlada, aplicada pela equipe da plataforma). Alterar o CSS de um desses estilos retorna 409 com code: "patch_owned".
Endpoints
| Método | Caminho | Para que serve | Auth |
|---|---|---|---|
| GET | /api/v1/admin/storefront-themes | Listar temas | admin |
| POST | /api/v1/admin/storefront-themes | Criar tema | admin |
| GET | /api/v1/admin/storefront-themes/{id} | Consultar tema | admin |
| PUT | /api/v1/admin/storefront-themes/{id} | Alterar tema | admin |
| DELETE | /api/v1/admin/storefront-themes/{id} | Excluir tema | admin |
| POST | /api/v1/admin/storefront-themes/{id}/activate | Ativar tema | admin |
| POST | /api/v1/admin/storefront-themes/{id}/duplicate | Duplicar tema | admin |
| POST | /api/v1/admin/storefront-themes/seed | Semear tema padrão | admin |
| GET | /api/v1/admin/storefront-themes/{id}/export | Exportar tema | admin |
| POST | /api/v1/admin/storefront-themes/import | Importar tema | admin |
| GET | /api/v1/admin/storefront-themes/{id}/styles | Listar estilos | admin |
| POST | /api/v1/admin/storefront-themes/{id}/styles | Criar estilo | admin |
| PUT | /api/v1/admin/storefront-themes/styles/{styleId} | Alterar estilo | admin |
| DELETE | /api/v1/admin/storefront-themes/styles/{styleId} | Excluir estilo | admin |
| POST | /api/v1/admin/storefront-themes/styles/{styleId}/activate | Ativar estilo | admin |
| GET | /api/v1/admin/storefront-themes/{id}/style-history | Histórico de estilos | admin |
| POST | /api/v1/admin/storefront-themes/style-history/{historyId}/restore | Restaurar do histórico | admin |
Erros comuns
- Tentar excluir o tema ativo. Retorna 409. Ative outro tema antes.
- Enviar só uma cor no
PUTdo estilo. As outras voltam ao padrão. Leia o estilo, altere o campo e reenvie o objeto completo. - Excluir o estilo ativo ou o único estilo do tema. Retorna 500
cannot delete the active or only style. Ative outro estilo primeiro. - Mandar id que não é UUID. Algumas rotas respondem 500 com a descrição do problema em
detail, em português, em vez de 400. - Esperar que a ativação do tema mude a marca. O logo, o nome da loja e o favicon vêm da configuração de marca, não do tema.
- Esperar contagem de estilos em todo lugar.
style_countsó vem preenchido na listagem; na consulta de um tema use o arraystyles.