Construtor de temas e prévia
Lê uma página montada pelo construtor de temas (seções de cabeçalho, corpo e rodapé) e a prévia do editor visual, que mostra o rascunho antes de publicar.
Além dos layouts avançados, a Venddor tem o construtor de temas, um editor visual em estilo "seções": cada página é uma lista de seções (um banner, uma vitrine de produtos...) configuráveis, mais um grupo de seções de cabeçalho e outro de rodapé que se repetem em todas as páginas. A loja escolhe qual motor desenha a vitrine em rendering_engine (Aparência). Estas duas rotas públicas servem a esses dois editores.
Página do construtor de temas
/api/v1/storefront/theme-builder/page/{pageType}PúblicaConsulta uma página montada pelo construtor de temas
Resolve o tema no ar (o publicado), o modelo (template) do pageType e monta a página: seções do grupo de cabeçalho, seções do corpo do modelo e seções do grupo de rodapé, cada uma com seus blocos filhos e a definição do esquema. Quando a loja não tem tema no ar ou o tema não tem modelo para esse tipo de página, responde 404.
Parâmetros de caminho
pageTypestringobrigatórioindex para a home). Os tipos disponíveis dependem do tema; o painel lista os modelos.Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/theme-builder/page/index"Resposta
{
"theme_id": "0f6a1a54-3c3f-4a31-9d57-6f0c2d1b7a10",
"theme_name": "Meu tema",
"page_type": "index",
"template_id": "c2b1d2f6-8f8b-4c0c-a9d5-12a4a2d01b77",
"template_name": "Home",
"seo_title": "",
"seo_description": "",
"global_settings": {},
"header_sections": [],
"sections": [],
"footer_sections": []
}O exemplo ilustra o formato: a loja de teste da documentação não tem tema no ar, e a resposta real dela foi 404. Em uma loja com tema, cada item de header_sections, sections e footer_sections descreve uma seção com a sua configuração e os blocos filhos.
Campos da resposta
theme_iduuidtheme_namestringpage_typestringtemplate_iduuidtemplate_namestringseo_titlestringseo_descriptionstringglobal_settingsobjectheader_sectionsarraysectionsarrayfooter_sectionsarrayErros
| Status | Quando | Corpo |
|---|---|---|
| 404 | Sem tema no ar ou sem modelo para esse tipo | {"error":"no live theme or template found for this page type"} |
| 500 | Falha ao montar a página | {"error":"failed to get rendered page","detail":"..."} |
Prévia do editor visual
/api/v1/storefront/editor-preview/{pageType}PúblicaConsulta a prévia do editor visual de um tipo de página
Usada pelo iframe de prévia do editor visual da loja. Devolve o rascunho do layout, se houver um salvo no editor, e o layout publicado caso contrário. has_draft diz qual dos dois veio. A resposta organiza o layout em contêineres e seções simples, no formato do editor.
A rota é pública (a prévia não carrega nada além do desenho da página), mas é uma ferramenta de edição: para mostrar a loja ao cliente use Layout da página.
Parâmetros de caminho
pageTypestringobrigatóriohomepage, product, category...).Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/editor-preview/homepage"Resposta
{
"layout_id": 166,
"layout_name": "Default",
"page_type": "homepage",
"is_default": true,
"has_draft": false,
"containers": [
{ "id": "14434", "position": "top_panel", "sort_order": 0, "sections": [] },
{ "id": "14435", "position": "header", "sort_order": 1, "sections": [] },
{
"id": "14436",
"position": "content",
"sort_order": 2,
"sections": [
{
"id": "15258",
"template_slug": "",
"block_type": "breadcrumbs",
"name": "Breadcrumbs",
"config": { "separator": "/", "show_home": true },
"visible": true,
"sort_order": 0
},
{
"id": "15257",
"template_slug": "",
"block_type": "main_content",
"name": "Main Content",
"config": {},
"visible": true,
"sort_order": 1
}
]
}
]
}Campos da resposta
layout_idinteger0 quando a loja não tem layout.layout_namestringpage_typestringis_defaultbooleanhas_draftbooleantrue quando os containers vêm do rascunho do editor e não do layout publicado.containersarrayid (texto), position, sort_order e sections.containers[].sections[].idstringcontainers[].sections[].template_slugstringcontainers[].sections[].block_typestringcontainers[].sections[].namestringcontainers[].sections[].configobjectcontainers[].sections[].visiblebooleancontainers[].sections[].usergroup_idsarraycontainers[].sections[].custom_cssstringcontainers[].sections[].sort_orderintegerErros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha ao ler | {"error":"failed to get preview layout","detail":"..."} |