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

Layouts avançados

O editor visual da vitrine: layouts, páginas, linhas, colunas, blocos, rascunho e publicação.

Os layouts avançados são o desenho da vitrine: cada tela da loja (home, produto, carrinho...) é uma árvore de contêineres, linhas, colunas e blocos que o administrador monta e reorganiza sem programar. Esta área é a API por trás do editor visual "Edit Design".

Pontos principais
  • Só um layout está no ar por vez: o marcado como is_default. Os demais são rascunhos ou alternativas.
  • Os ids de layout, página, contêiner, linha, coluna e bloco são inteiros, não UUIDs.
  • Para editar sem afetar a loja, use o rascunho e publique no fim.
  • Todas as rotas exigem o privilégio manage_layouts de administrador.
  • config, content e design de um bloco são substituídos por inteiro ao atualizar, nunca mesclados.

Como funciona

Um layout tem várias páginas (uma por tela, identificada por um dispatch). Cada página tem quatro contêineres, que são as faixas verticais da tela. Dentro deles ficam as linhas, depois as colunas (grade de 12) e, por fim, os blocos.

Layout→Página (dispatch)→Contêiner→Linha→Coluna→Bloco
ContêinerOnde apareceHerança
top_panelFaixa acima do cabeçalhoHerda da página padrão do layout (uses_default: true)
headerCabeçalhoHerda da página padrão
contentCorpo da telaSempre próprio da página
footerRodapéHerda da página padrão

Fluxo típico de integração:

  1. Abra um rascunho
    POST /advanced-layouts/draft devolve o draft_id, uma cópia do layout no ar.
  2. Leia e edite
    GET /advanced-layouts/{id} com o draft_id; crie, altere, mova e exclua linhas, colunas e blocos.
  3. Confira
    Abra a vitrine com ?layout_id=<draft_id> para ver o rascunho sem publicar.
  4. Publique
    POST /advanced-layouts/{draft_id}/publish, para uma página (dispatch) ou para o rascunho inteiro.

Conceitos-chave

Dispatch

O dispatch é o código da tela, no formato area.acao: index.index (home), products.view (produto), categories.view (categoria), checkout.cart (carrinho), auth.login, blog.view, vendors.profile, search.view e outros. Além deles existe a página "Default (Catch-all)" e, na Loja WhatsApp, os dispatches wa.*.

Configuração, conteúdo e design

config guarda as opções do tipo de bloco (chaves listadas no catálogo). content é um espaço livre. design é a camada de estilo universal (fundo, espaçamento, borda, sombra, tipografia...), com sobrescritas para tablet e mobile. custom_css e custom_class permitem estilo livre; <script> e @import são removidos.

Visibilidade

Linhas, colunas e blocos têm visibility por dispositivo (desktop, tablet, mobile) e usergroup_ids para restringir a grupos de compradores (guest, registered ou UUIDs). A vitrine pública filtra pelos grupos do visitante; estas rotas de administração mostram tudo.

Status do bloco

O status é uma letra: A (ativo) ou D (inativo). Ao gravar você pode mandar active/inactive, mas a resposta sempre traz a letra.

Patches e bloqueio 409

Um bloco criado ou ajustado por um patch aplicado na loja fica protegido: alterar, mover ou excluir devolve 409 com code: patch_owned.

Histórico

Quase toda escrita fica registrada com autor, ação e detalhes. Leia em Consultar layouts.

Endpoints

MétodoCaminhoPara que servePágina
GET/api/v1/admin/advanced-layoutsListar layoutsConsultar layouts
GET/api/v1/admin/advanced-layouts/{id}Obter a árvore de um layoutConsultar layouts
GET/api/v1/admin/advanced-layouts/{id}/historyHistórico de alterações de um layoutConsultar layouts
POST/api/v1/admin/advanced-layoutsCriar um layoutCriar e gerenciar layouts
PUT/api/v1/admin/advanced-layouts/{id}Atualizar nome, variante ou padrãoCriar e gerenciar layouts
DELETE/api/v1/admin/advanced-layouts/{id}Excluir um layoutCriar e gerenciar layouts
POST/api/v1/admin/advanced-layouts/{id}/cloneDuplicar um layoutCriar e gerenciar layouts
POST/api/v1/admin/advanced-layouts/{id}/set-defaultPromover um layout a padrãoCriar e gerenciar layouts
POST/api/v1/admin/advanced-layouts/{id}/pagesCriar uma página no layoutPáginas do layout
PUT/api/v1/admin/advanced-layouts/pages/{id}Atualizar uma páginaPáginas do layout
DELETE/api/v1/admin/advanced-layouts/pages/{id}Excluir uma páginaPáginas do layout
POST/api/v1/admin/advanced-layouts/{id}/wa-default-pagesGerar as páginas padrão da Loja WhatsAppPáginas do layout
PATCH/api/v1/admin/advanced-layouts/containers/{id}Atualizar herança ou estilo do contêinerContêineres e linhas
POST/api/v1/admin/advanced-layouts/containers/{id}/rowsCriar uma linha no contêinerContêineres e linhas
PUT/api/v1/admin/advanced-layouts/rows/{id}Atualizar uma linhaContêineres e linhas
DELETE/api/v1/admin/advanced-layouts/rows/{id}Excluir uma linhaContêineres e linhas
PUT/api/v1/admin/advanced-layouts/containers/{id}/rows/reorderReordenar as linhas de um contêinerContêineres e linhas
POST/api/v1/admin/advanced-layouts/rows/{id}/columnsCriar uma coluna na linhaColunas da linha
PUT/api/v1/admin/advanced-layouts/columns/{id}Atualizar uma colunaColunas da linha
DELETE/api/v1/admin/advanced-layouts/columns/{id}Excluir uma colunaColunas da linha
POST/api/v1/admin/advanced-layouts/columns/{id}/blocksCriar um bloco na colunaBlocos
PUT/api/v1/admin/advanced-layouts/blocks/{id}Atualizar um blocoBlocos
DELETE/api/v1/admin/advanced-layouts/blocks/{id}Excluir um blocoBlocos
POST/api/v1/admin/advanced-layouts/blocks/{id}/moveMover um bloco para outra colunaBlocos
GET/api/v1/admin/advanced-layouts/block-typesListar os tipos de blocoCatálogo de blocos
GET/api/v1/admin/advanced-layouts/design-schemaEsquema da camada de designCatálogo de blocos
GET/api/v1/admin/advanced-layouts/presetsListar predefinições de seçãoCatálogo de blocos
GET/api/v1/admin/advanced-layouts/libraryListar itens da bibliotecaBiblioteca de blocos
POST/api/v1/admin/advanced-layouts/librarySalvar um bloco na bibliotecaBiblioteca de blocos
POST/api/v1/admin/advanced-layouts/library/{id}/addInserir um item da biblioteca numa colunaBiblioteca de blocos
GET/api/v1/admin/advanced-layouts/reusable-blocksListar blocos reutilizáveisBlocos reutilizáveis
POST/api/v1/admin/advanced-layouts/blocks/{id}/save-as-reusableTransformar um bloco em reutilizávelBlocos reutilizáveis
PUT/api/v1/admin/advanced-layouts/reusable-blocks/{id}Alterar um bloco reutilizávelBlocos reutilizáveis
POST/api/v1/admin/advanced-layouts/columns/{id}/blocks/from-reusableInserir uma instância vinculada numa colunaBlocos reutilizáveis
POST/api/v1/admin/advanced-layouts/draftObter ou criar o rascunhoRascunho e publicação
POST/api/v1/admin/advanced-layouts/{id}/publishPublicar o rascunhoRascunho e publicação
DELETE/api/v1/admin/advanced-layouts/{id}/draftDescartar o rascunhoRascunho e publicação
POST/api/v1/admin/advanced-layouts/{id}/explodeConverter o corpo da página em blocosConverter em blocos
POST/api/v1/admin/advanced-layouts/{id}/restore-main-contentRestaurar o corpo padrão da páginaConverter em blocos
POST/api/v1/admin/advanced-layouts/design-ai-editGerar operações de edição de designEditar design com a VI

Erros comuns

  • Editar o layout publicado diretamente. Qualquer clique já vale para os clientes; use o rascunho.
  • Enviar config parcial em PUT /blocks/{id} achando que será mesclado. O objeto é substituído: leia, altere e devolva completo.
  • Usar o id do layout publicado nas rotas de edição depois de abrir o rascunho. Os blocos do rascunho têm ids diferentes.
  • Tentar excluir o layout padrão. Devolve 409: promova outro antes.
  • Esperar 404 para ids que não existem em todas as rotas. Várias escritas (atualizar página, linha, coluna, bloco) devolvem 500 para ids inexistentes.
  • Criar um segundo main_content na mesma página. Só um é permitido.
  • Mandar um id que não é inteiro. Devolve 400 com id must be an integer.

Próximos passos

Rascunho e publicação
O fluxo seguro de edição.
Catálogo de blocos
Tipos de bloco e esquema de design.
Blocos
Criar, alterar e mover blocos.
Editar design com a VI
Operações de edição por pedido em linguagem natural.
Anterior
Histórico de estilos
Próxima
Consultar layouts
Nesta página
  • Como funciona
  • Conceitos-chave
  • Dispatch
  • Configuração, conteúdo e design
  • Visibilidade
  • Status do bloco
  • Patches e bloqueio 409
  • Histórico
  • Endpoints
  • Erros comuns
  • Próximos passos