VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Vitrine: layout, menus e temas

Modelos de layout

Lista os modelos de layout disponíveis, lê um modelo, define qual é o padrão e lista os layouts de página da loja.

Um modelo de layout é um pacote de páginas prontas (página inicial, categoria, produto, carrinho...) com os blocos de cada uma: logo, busca, banners, vitrines de produtos, rodapé. A loja nasce a partir do modelo marcado como padrão e depois cada página é editada à vontade pelo editor visual. Os modelos são o ponto de partida, não a configuração viva.

Exigem o privilégio manage_layouts.

Listar os modelos

GET/api/v1/admin/layout-templatesAdmin

Listar os modelos de layout

Devolve todos os modelos, sem paginação.

bash
curl "$BASE_URL/api/v1/admin/layout-templates" \
  -H "Authorization: Bearer $TOKEN"
200Modelos
json
{
  "templates": [
    {
      "id": 1,
      "name": "Standard Marketplace",
      "description": "Complete marketplace layout with hero banner, featured products, categories grid, recent products, testimonials, newsletter signup, and social footer.",
      "thumbnail_url": "",
      "is_default": true,
      "layout_count": 4,
      "created_at": "2026-03-20T04:22:57.010166Z",
      "updated_at": "2026-03-20T04:22:57.010166Z"
    }
  ],
  "total": 1
}

Campos da resposta

templates[].idinteger
Id do modelo. Inteiro, não UUID.
templates[].namestring
Nome do modelo.
templates[].descriptionstring
Descrição.
templates[].thumbnail_urlstring
Miniatura. Vazio quando não há.
templates[].is_defaultboolean
Se é o modelo padrão. Só um modelo é padrão por vez.
templates[].layout_countinteger
Quantos layouts de página a loja tem hoje.
templates[].created_atstring
RFC 3339, UTC.
templates[].updated_atstring
RFC 3339, UTC.
totalinteger
Quantidade de modelos.

Ler um modelo

GET/api/v1/admin/layout-templates/{id}Admin

Ler um modelo de layout

Devolve um modelo, no mesmo formato de cada item da lista.

Parâmetros de caminho

idintegerobrigatório
Id inteiro do modelo.
bash
curl "$BASE_URL/api/v1/admin/layout-templates/1" \
  -H "Authorization: Bearer $TOKEN"

Definir o modelo padrão

PUT/api/v1/admin/layout-templates/{id}/defaultAdmin

Marcar um modelo como o padrão

Marca o modelo como padrão e desmarca o anterior, numa só transação. O padrão é o modelo usado para iniciar lojas novas; mudar o padrão não altera os layouts que esta loja já tem. Sem corpo.

Parâmetros de caminho

idintegerobrigatório
Id inteiro do modelo.
bash
curl -X PUT "$BASE_URL/api/v1/admin/layout-templates/1/default" \
  -H "Authorization: Bearer $TOKEN"
200Padrão definido
json
{ "message": "template set as default" }

Listar os layouts da loja

GET/api/v1/admin/layout-templates/{id}/layoutsAdmin

Listar os layouts de página, com seus blocos

Devolve os layouts de página da loja (inicial, categoria, produto...), cada um com a lista de blocos. O id do modelo é ignorado: a lista é sempre a mesma, até para um id que não existe. Traz no máximo 100 layouts, numa única página.

Parâmetros de caminho

idintegerobrigatório
Id do modelo. Informativo; não filtra.
bash
curl "$BASE_URL/api/v1/admin/layout-templates/1/layouts" \
  -H "Authorization: Bearer $TOKEN"
200Layouts
json
{
  "layouts": [
    {
      "id": 11,
      "name": "Standard Category Page",
      "page_type": "category",
      "is_default": true,
      "blocks": [
        {
          "id": "15055a16-fa48-4e96-a536-167209748c80",
          "type": "logo",
          "position": "header",
          "order": 0,
          "title": "Store Logo",
          "config": { "link_to_home": true, "max_height": 60 },
          "visible": true
        }
      ],
      "created_at": "2026-03-20T04:22:57Z",
      "updated_at": "2026-03-20T04:22:57Z"
    }
  ],
  "total": 4,
  "page": 1,
  "per_page": 100,
  "total_pages": 1
}

Campos da resposta

layouts[].idinteger
Id do layout.
layouts[].namestring
Nome.
layouts[].page_typestring
Tipo de página a que serve (category, home, product...).
layouts[].is_defaultboolean
Se é o layout padrão daquele tipo de página.
layouts[].blocksarray
Blocos da página.
layouts[].blocks[].iduuid
Id do bloco.
layouts[].blocks[].typestring
Tipo do bloco (logo, search_bar, cart_menu...).
layouts[].blocks[].positionstring
Região da página (header, main, footer...).
layouts[].blocks[].orderinteger
Ordem dentro da região.
layouts[].blocks[].configobject
Configuração própria do tipo de bloco.
layouts[].blocks[].visibleboolean
Se o bloco aparece.
totalinteger
Total de layouts da loja.
pageinteger
Sempre 1.
per_pageinteger
Sempre 100.
total_pagesinteger
Total de páginas.

Erros

StatusQuandoCorpo de exemplo
400{id} que não é um inteiro.{"error":"invalid template id","detail":"id must be an integer"}
401Sem token ou token expirado.{"error":"invalid or expired token"}
403Sem manage_layouts.{"error":"insufficient privileges","required":"manage_layouts"}
404Modelo inexistente (em GET de um modelo e em default).{"error":"template not found"}
500Falha interna.{"error":"failed to list layout templates","detail":"..."}
Os layouts não são do modelo

Apesar do caminho, /layout-templates/{id}/layouts mostra todos os layouts da loja. Não use essa rota para ver "o que o modelo X traz".

Mudar o padrão não reaplica nada

O modelo padrão só vale para lojas criadas depois. Os layouts que a sua loja já tem não mudam.

Veja também

  • Menus de navegação
  • Aparência da vitrine
Anterior
Aparência da vitrine
Próxima
Menus de navegação
Nesta página
  • Listar os modelos
  • Ler um modelo
  • Definir o modelo padrão
  • Listar os layouts da loja
  • Erros
  • Veja também