Biblioteca de blocos
Salva um bloco configurado na biblioteca e insere cópias dele em outras colunas.
A biblioteca guarda modelos de blocos para reutilizar. Inserir um item na coluna cria uma cópia independente: depois disso, editar a cópia não muda o modelo, nem o contrário. Quando você quer que uma mudança se propague para todos os lugares, use um bloco reutilizável.
Listar a biblioteca
Devolve todos os itens salvos, incluindo os modelos globais que vêm com a plataforma e os blocos reutilizáveis (eles são a mesma tabela).
/api/v1/admin/advanced-layouts/libraryAdminListar itens da biblioteca
Requer o privilégio manage_layouts.
Exemplo de requisição
curl -X GET "$BASE_URL/api/v1/admin/advanced-layouts/library" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"library": [
{
"id": 12,
"block_type": "categories_grid",
"name": "Categorias em destaque",
"config": {
"columns": 4,
"count": 8,
"title": "Compre por Categoria"
},
"content": {},
"is_global": false,
"created_at": "2026-07-13T13:51:26.232664Z"
}
]
}Campos da resposta
libraryarrayItens da biblioteca.
idintegerblock_typestringnamestringconfigobjectcontentobjectdesignobjectis_globalbooleancreated_atstringErros
| 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"} |
| 500 | Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404. | {"error":"failed to list block library","detail":"..."} |
Salvar na biblioteca
Grava uma configuração de bloco como modelo. Você envia a configuração; a rota não lê um bloco existente. Para guardar um bloco que já está numa página, leia-o e reenvie block_type, config, content e design.
/api/v1/admin/advanced-layouts/libraryAdminSalvar um bloco na biblioteca
Requer o privilégio manage_layouts.
Corpo da requisição
block_typestringobrigatórionamestringobrigatórioconfigobjectpadrão: {}contentobjectpadrão: {}designobjectbase, tablet e mobile. O formato dos campos vem de Esquema de design. Opcional.is_globalbooleanpadrão: falseExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/advanced-layouts/library" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"block_type": "categories_grid",
"name": "Categorias em destaque",
"config": {
"columns": 4,
"count": 8,
"title": "Compre por Categoria"
}
}'Resposta
{
"id": 12,
"block_type": "categories_grid",
"name": "Categorias em destaque",
"config": {
"columns": 4,
"count": 8,
"title": "Compre por Categoria"
},
"content": {},
"is_global": false,
"created_at": "2026-07-13T13:51:26.232664Z"
}Campos da resposta
idintegerblock_typestringnamestringconfigobjectcontentobjectdesignobjectis_globalbooleancreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo JSON inválido. | {"error":"invalid request body","detail":"unexpected EOF"} |
| 400 | block_type vazio. | {"error":"block_type is required"} |
| 400 | name vazio. | {"error":"name is required"} |
| 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"} |
| 500 | Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404. | {"error":"failed to save to library","detail":"..."} |
Inserir da biblioteca
Cria na coluna um bloco novo (cópia) com o tipo, a configuração, o conteúdo e o design do item.
/api/v1/admin/advanced-layouts/library/{id}/addAdminInserir um item da biblioteca numa coluna
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioCorpo da requisição
column_idintegerobrigatóriosort_orderintegerpadrão: 0Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/advanced-layouts/library/12/add" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"column_id": 8786,
"sort_order": 1
}'Resposta
{
"id": 11130,
"column_id": 8786,
"block_type": "categories_grid",
"sort_order": 1,
"name": "Categorias em destaque",
"config": {
"autoplay": true,
"interval": 5000,
"show_arrows": true
},
"content": {},
"visibility": {
"desktop": true,
"tablet": true,
"mobile": true
},
"status": "A",
"cache_ttl": 300,
"updated_at": "2026-07-12T16:29:12.505299Z"
}Campos da resposta
idintegercolumn_idintegerblock_typestringbanner_slider. A lista completa vem de Catálogo de blocos.sort_orderintegernamestringconfigobjectsettings do catálogo).contentobjectvisibilityobjectusergroup_idsstring[]statusstringA (ativo) ou D (inativo).cache_ttlintegercustom_classstringcustom_cssstringwrapperstringh1_main, h2_important, h3_ordinary, footer, onclick_dropdown, filter_wrapper ou card.designobjectreusable_block_idintegercreated_atstringupdated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de library no caminho não é um inteiro. | {"error":"invalid library id","detail":"id must be an integer"} |
| 400 | Corpo JSON inválido. | {"error":"invalid request body","detail":"unexpected EOF"} |
| 400 | column_id ausente ou zero. | {"error":"column_id is required"} |
| 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"} |
| 500 | Item da biblioteca ou coluna inexistente, ou tipo que já atingiu o limite por página. | {"error":"failed to add from library","detail":"..."} |