Catálogo de blocos
Lista os tipos de bloco disponíveis, o esquema de design compartilhado e as predefinições de seção.
Estas três rotas só leem e devolvem o que um editor precisa para montar seus formulários: quais blocos existem e quais opções cada um aceita, quais controles de estilo (design) valem para todos os blocos, e seções prontas para inserir. Os dados são estáticos e idênticos para todas as lojas.
Tipos de bloco
Devolve todos os tipos de bloco agrupados por categoria. Para cada tipo vêm o nome, a descrição e o esquema de settings: as chaves que você pode enviar em config ao criar ou alterar um bloco, com tipo de campo, valor padrão, opções de seleção e grupo no painel. Textos de name, description e label estão em português.
/api/v1/admin/advanced-layouts/block-typesAdminListar os tipos de bloco
Requer o privilégio manage_layouts.
Exemplo de requisição
curl -X GET "$BASE_URL/api/v1/admin/advanced-layouts/block-types" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"block_types": {
"basic": [
{
"type": "heading",
"name": "Título",
"description": "Título independente com tag configurável (H1–H6)...",
"category": "basic",
"icon": "type",
"settings": [
{
"key": "text",
"label": "Texto",
"type": "text",
"default": "Section title",
"required": true,
"translatable": true,
"group": "content"
},
{
"key": "tag",
"label": "Tag HTML",
"type": "select",
"default": "h2",
"options": [
{
"value": "h1",
"label": "H1 (título principal da página)"
}
],
"required": false,
"group": "settings"
}
],
"defaults": {}
}
]
}
}Campos da resposta
block_typesobjectMapa categoria para lista de tipos. Categorias: basic, blog, cart, commerce, content, footer, listing, navigation, product_page, products, social e wa.
typestringblock_type.namestringdescriptionstringcategorystringiconstringsettingsarrayconfig: key, label, type (text, select, color, url...), default, required, translatable, group e, nos seletores, options[] com value e label.defaultsobjectconfig, quando existem.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |
Esquema de design
Devolve o esquema único da aba "Design" que vale para todo bloco, linha, coluna e contêiner: fundo, espaçamento, borda, sombra, tipografia, tamanho, efeitos e posição. Cada campo informa se aceita sobrescrita por breakpoint (responsive). O resultado de um formulário montado com esse esquema é o objeto que você grava em design.
/api/v1/admin/advanced-layouts/design-schemaAdminEsquema da camada de design
Requer o privilégio manage_layouts.
Exemplo de requisição
curl -X GET "$BASE_URL/api/v1/admin/advanced-layouts/design-schema" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"sections": [
{
"key": "background",
"i18n_key": "designEditor.design.background",
"fields": [
{
"key": "type",
"i18n_key": "designEditor.design.bgType",
"type": "select",
"options": [
{
"value": "",
"label": "designEditor.design.bgNone"
},
{
"value": "color",
"label": "designEditor.design.bgColor"
}
],
"responsive": true
},
{
"key": "color",
"i18n_key": "designEditor.design.color",
"type": "color_alpha",
"responsive": true
}
]
}
],
"card_sections": []
}Campos da resposta
sectionsarraykey, i18n_key e fields[], com key, i18n_key, type, options e responsive.card_sectionsarrayErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |
Predefinições
Devolve oito seções prontas (linhas, colunas e blocos já configurados): hero_banner, banner_slider, two_col_text, three_col_products, sidebar_content, categories_products, vendor_showcase e newsletter_footer. O servidor não aplica a predefinição: seu cliente cria as linhas, colunas e blocos descritos com as rotas de estrutura.
/api/v1/admin/advanced-layouts/presetsAdminListar predefinições de seção
Requer o privilégio manage_layouts.
Exemplo de requisição
curl -X GET "$BASE_URL/api/v1/admin/advanced-layouts/presets" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"presets": [
{
"id": "hero_banner",
"name": "Hero Banner",
"description": "Full-width hero image with call-to-action",
"category": "content",
"icon": "image",
"rows": [
{
"full_width": true,
"spacing": "none",
"columns": [
{
"width_desktop": 12,
"width_tablet": 12,
"width_mobile": 12,
"blocks": [
{
"block_type": "hero_banner",
"name": "Hero Banner",
"config": {
"cta_link": "/products",
"cta_text": "Shop Now",
"subtitle": "Discover amazing products",
"title": "Welcome"
}
}
]
}
]
}
]
}
]
}Campos da resposta
presetsarrayid, name, description (em inglês), category (content, products, layout, social ou commerce), icon e rows[] com full_width, spacing e columns[] (larguras e blocks[] com block_type, name e config).Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | Seu usuário não tem o privilégio manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |