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
/api/v1/admin/layout-templatesAdminListar os modelos de layout
Devolve todos os modelos, sem paginação.
curl "$BASE_URL/api/v1/admin/layout-templates" \
-H "Authorization: Bearer $TOKEN"{
"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[].idintegertemplates[].namestringtemplates[].descriptionstringtemplates[].thumbnail_urlstringtemplates[].is_defaultbooleantemplates[].layout_countintegertemplates[].created_atstringtemplates[].updated_atstringtotalintegerLer um modelo
/api/v1/admin/layout-templates/{id}AdminLer um modelo de layout
Devolve um modelo, no mesmo formato de cada item da lista.
Parâmetros de caminho
idintegerobrigatóriocurl "$BASE_URL/api/v1/admin/layout-templates/1" \
-H "Authorization: Bearer $TOKEN"Definir o modelo padrão
/api/v1/admin/layout-templates/{id}/defaultAdminMarcar 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óriocurl -X PUT "$BASE_URL/api/v1/admin/layout-templates/1/default" \
-H "Authorization: Bearer $TOKEN"{ "message": "template set as default" }Listar os layouts da loja
/api/v1/admin/layout-templates/{id}/layoutsAdminListar 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óriocurl "$BASE_URL/api/v1/admin/layout-templates/1/layouts" \
-H "Authorization: Bearer $TOKEN"{
"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[].idintegerlayouts[].namestringlayouts[].page_typestringcategory, home, product...).layouts[].is_defaultbooleanlayouts[].blocksarraylayouts[].blocks[].iduuidlayouts[].blocks[].typestringlogo, search_bar, cart_menu...).layouts[].blocks[].positionstringheader, main, footer...).layouts[].blocks[].orderintegerlayouts[].blocks[].configobjectlayouts[].blocks[].visiblebooleantotalintegerpageintegerper_pageintegertotal_pagesintegerErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | {id} que não é um inteiro. | {"error":"invalid template id","detail":"id must be an integer"} |
| 401 | Sem token ou token expirado. | {"error":"invalid or expired token"} |
| 403 | Sem manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |
| 404 | Modelo inexistente (em GET de um modelo e em default). | {"error":"template not found"} |
| 500 | Falha interna. | {"error":"failed to list layout templates","detail":"..."} |