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

Blocos do layout

Adiciona, altera, remove e reordena os blocos de um layout simples.

Um bloco é uma peça do layout (logo, busca, texto, produtos recentes...). Estas rotas mexem num bloco por vez, sem reenviar a lista inteira. Cada uma devolve o layout completo já atualizado. Exigem o privilégio manage_layouts. O {id} é o do layout simples (inteiro) e o {blockId} é o UUID do bloco, devolvido em blocks[].id.

Adicionar bloco

POST/api/v1/admin/layouts/{id}/blocksAdmin

Adiciona um bloco ao layout

O servidor gera o id do bloco. O bloco é anexado ao fim da lista e sua order é a que você enviar (a renumeração só ocorre ao remover ou reordenar).

Parâmetros de caminho

idintegerobrigatório
Id do layout.

Corpo da requisição

typestringobrigatório
Tipo do bloco, por exemplo text_html, hero_banner, featured_products, categories_grid, vendor_showcase, newsletter, recent_products, promotions, custom_html. Qualquer texto é aceito.
positionstringobrigatório
Zona: header, main_top, main, main_bottom, sidebar_left, sidebar_right ou footer. Qualquer texto é aceito.
orderintegerpadrão: 0
Ordem dentro da zona.
titlestring
Título interno do bloco.
configobjectpadrão: {}
Opções do bloco. O formato depende do type.
visiblebooleanpadrão: true
Se o bloco aparece.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/layouts/14/blocks" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"text_html","position":"footer","order":1,"title":"Sobre nós","config":{"html_content":"<p>Desde 2015</p>"}}'
201Bloco adicionado
json
{
  "id": 14,
  "name": "Home de Natal",
  "page_type": "homepage",
  "is_default": false,
  "blocks": [
    {
      "id": "d5a8c1d2-0f3e-4b44-9a11-7e5b3c2a9f10",
      "type": "text_html",
      "position": "footer",
      "order": 1,
      "title": "Sobre nós",
      "config": { "html_content": "<p>Desde 2015</p>" },
      "visible": true
    }
  ],
  "created_at": "2026-10-11T15:00:00.000Z",
  "updated_at": "2026-10-11T15:05:00.000Z"
}

Alterar bloco

PUT/api/v1/admin/layouts/{id}/blocks/{blockId}Admin

Altera um bloco do layout

Alteração parcial dos campos do bloco. O config, quando enviado, substitui o objeto inteiro: mande todas as opções, não só a que mudou.

Parâmetros de caminho

idintegerobrigatório
Id do layout.
blockIdstringobrigatório
UUID do bloco.

Corpo da requisição

typestring
Novo tipo.
positionstring
Nova zona.
orderinteger
Nova ordem.
titlestring
Novo título.
configobject
Novo objeto de opções completo.
visibleboolean
Mostrar ou ocultar.

A resposta 200 é o layout completo atualizado.

Remover bloco

DELETE/api/v1/admin/layouts/{id}/blocks/{blockId}Admin

Remove um bloco do layout

Remove o bloco e renumera a order dos blocos restantes de cada zona em sequência (0, 1, 2...).

Parâmetros de caminho

idintegerobrigatório
Id do layout.
blockIdstringobrigatório
UUID do bloco.

A resposta 200 é o layout completo atualizado.

Reordenar blocos

POST/api/v1/admin/layouts/{id}/blocks/reorderAdmin

Muda zona e ordem de vários blocos de uma vez

Para cada item da lista, atualiza a position e a order do bloco. Blocos que você não listar ficam como estão. Em seguida a ordem de cada zona é renumerada em sequência (0, 1, 2...). Ids de bloco desconhecidos são ignorados em silêncio.

Parâmetros de caminho

idintegerobrigatório
Id do layout.

Corpo da requisição

block_ordersarrayobrigatório

Lista não vazia. Cada item:

block_idstringobrigatório
UUID do bloco.
positionstringobrigatório
Zona de destino.
orderintegerobrigatório
Ordem na zona.

A resposta 200 é o layout completo atualizado.

Erros

StatusQuandoCorpo
400id que não é inteiro; corpo inválido; type ou position ausente (adicionar); block_orders vazio (reordenar){"error":"block type is required"}, {"error":"block position is required"} ou {"error":"block_orders is required"}
401Sem token ou token expirado{"error":"missing authorization header"}
403Sem o privilégio manage_layouts{"error":"insufficient privileges","required":"manage_layouts"}
404O id não é de um layout simples. A mensagem em português explica que o id é de layout avançado e indica a rota equivalente{"error":"layout not found","detail":"o id 999999 não é de layout antigo ..."}
500blockId que não existe no layout (alterar, remover); blocos acima de 1 MB{"error":"failed to update block","detail":"block not found"}
Bloco inexistente é 500

Alterar ou remover um blockId que não está no layout responde 500 com detail igual a block not found, não 404. Liste o layout antes para pegar os ids atuais.

Veja também

  • Layouts
  • Editor visual
Anterior
Layouts
Próxima
Duplicar e definir padrão
Nesta página
  • Adicionar bloco
  • Exemplo de requisição
  • Alterar bloco
  • Remover bloco
  • Reordenar blocos
  • Erros
  • Veja também