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

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

GET/api/v1/storefront/theme-builder/page/{pageType}Pública

Consulta 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ório
Tipo de página do modelo (por exemplo index para a home). Os tipos disponíveis dependem do tema; o painel lista os modelos.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/theme-builder/page/index"

Resposta

200Página montada
json
{
  "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_iduuid
Tema no ar.
theme_namestring
Nome do tema.
page_typestring
Tipo de página pedido.
template_iduuid
Modelo usado.
template_namestring
Nome do modelo.
seo_titlestring
Título SEO do modelo.
seo_descriptionstring
Descrição SEO do modelo.
global_settingsobject
Configurações globais do tema, em formato aberto.
header_sectionsarray
Seções do cabeçalho, comuns a todas as páginas.
sectionsarray
Seções do corpo desta página, na ordem de exibição.
footer_sectionsarray
Seções do rodapé, comuns a todas as páginas.

Erros

StatusQuandoCorpo
404Sem tema no ar ou sem modelo para esse tipo{"error":"no live theme or template found for this page type"}
500Falha ao montar a página{"error":"failed to get rendered page","detail":"..."}

Prévia do editor visual

GET/api/v1/storefront/editor-preview/{pageType}Pública

Consulta 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ório
Tipo de página do editor (homepage, product, category...).

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/editor-preview/homepage"

Resposta

200Prévia do layout
json
{
  "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_idinteger
Id do layout. 0 quando a loja não tem layout.
layout_namestring
Nome do layout.
page_typestring
O tipo de página pedido.
is_defaultboolean
Se é o layout padrão.
has_draftboolean
true quando os containers vêm do rascunho do editor e não do layout publicado.
containersarray
Contêineres com id (texto), position, sort_order e sections.
containers[].sections[].idstring
Id da seção.
containers[].sections[].template_slugstring
Modelo de seção usado. Pode ser vazio.
containers[].sections[].block_typestring
Tipo do bloco.
containers[].sections[].namestring
Nome da seção.
containers[].sections[].configobject
Configuração da seção.
containers[].sections[].visibleboolean
Se a seção está visível.
containers[].sections[].usergroup_idsarray
Grupos de clientes que veem a seção. Ausente quando é para todos.
containers[].sections[].custom_cssstring
CSS próprio da seção, quando houver.
containers[].sections[].sort_orderinteger
Ordem dentro do contêiner.

Erros

StatusQuandoCorpo
500Falha ao ler{"error":"failed to get preview layout","detail":"..."}
Não é para a vitrine pública

Diferente de page-layout, a prévia não filtra por grupo de cliente os blocos restritos e pode mostrar conteúdo ainda não publicado. Use apenas dentro do editor, nunca para renderizar a loja aberta ao público.

Veja também

  • Layouts de página
  • Aparência, filtros e busca
  • Visão geral de tema e layout
Anterior
Layouts de página
Próxima
Menus de navegação
Nesta página
  • Página do construtor de temas
  • Exemplo de requisição
  • Resposta
  • Erros
  • Prévia do editor visual
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também