VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Editor visual da vitrine

Seções do rascunho

Adiciona, remove, reordena e configura seções dentro do rascunho do editor visual.

Estas quatro rotas mexem numa seção por vez no rascunho e devolvem o rascunho inteiro atualizado. Se ainda não existe rascunho para o layout, a rota de adicionar cria um a partir da página publicada; as outras três exigem que ele já exista. Todas exigem o privilégio manage_layouts.

Adicionar seção

POST/api/v1/admin/editor/draft/{layoutId}/sectionAdmin

Adiciona uma seção a partir de um modelo

Cria uma seção com a config padrão do modelo (veja Listar modelos de seção) e a insere no contêiner. Se o contêiner não existir no rascunho, ele é criado. Se o layout ainda não tiver rascunho, um é criado a partir da página publicada antes da inserção.

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout.

Corpo da requisição

template_slugstringobrigatório
slug do modelo (hero-banner).
container_idstringpadrão: content
id ou position do contêiner de destino.
positionintegerpadrão: 0
Índice de inserção dentro do contêiner, a partir de 0. Valor negativo ou maior que a quantidade de seções coloca no fim. O padrão 0 insere no topo.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/editor/draft/166/section" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"template_slug":"hero-banner","container_id":"content","position":0}'
200Seção adicionada
json
{
  "id": "0b8a5d44-6a1f-4d77-8f0e-6b9d6c7a2e11",
  "layout_id": 166,
  "page_type": "index.index",
  "containers": [
    {
      "id": "content",
      "position": "content",
      "sort_order": 0,
      "sections": [
        {
          "id": "6f1d3a9e-8b2c-4c57-9e7a-1c2d3e4f5a6b",
          "template_slug": "hero-banner",
          "block_type": "hero_banner",
          "name": "Hero Banner",
          "config": { "title": "Welcome to our store", "height": "500px" },
          "visible": true,
          "sort_order": 0
        }
      ]
    }
  ],
  "created_at": "2026-10-11T15:30:00.000Z",
  "updated_at": "2026-10-11T15:31:00.000Z"
}

A resposta tem o formato descrito em Rascunho e publicação. Os sort_order das seções do contêiner são renumerados de 0 em diante.

Remover seção

DELETE/api/v1/admin/editor/draft/{layoutId}/section/{sectionId}Admin

Remove uma seção do rascunho

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout.
sectionIdstringobrigatório
Id da seção (sections[].id).

Parâmetros de consulta

container_idstring
id ou position do contêiner, para procurar só nele. Sem ele, procura em todos.

A resposta 200 é o rascunho atualizado.

Reordenar seções

PUT/api/v1/admin/editor/draft/{layoutId}/reorderAdmin

Reordena as seções de um contêiner

A nova ordem é a da lista section_ids. Seções do contêiner que você não listar vão para o fim, em ordem não definida. Um id que não existe no contêiner causa erro. Se o contêiner não existir no rascunho, nada muda e a resposta é 200 mesmo assim.

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout.

Corpo da requisição

container_idstringobrigatório
id ou position do contêiner.
section_idsarrayobrigatório
Ids das seções na ordem desejada.

A resposta 200 é o rascunho atualizado.

Configurar seção

PUT/api/v1/admin/editor/draft/{layoutId}/section/{sectionId}/configAdmin

Altera opções, nome, visibilidade ou CSS de uma seção

Alteração parcial. O config é mesclado: as chaves enviadas são gravadas e as demais ficam como estavam.

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout.
sectionIdstringobrigatório
Id da seção.

Corpo da requisição

configobject
Opções a gravar (chaves do schema do modelo).
namestring
Novo nome da seção.
visibleboolean
false oculta a seção (publicada como bloco desativado).
custom_cssstring
CSS próprio da seção.
container_idstring
id ou position do contêiner, para procurar a seção só nele.

A resposta 200 é o rascunho atualizado.

Erros

StatusQuandoCorpo
400layoutId que não é inteiro; corpo inválido; template_slug ausente (adicionar); container_id ausente (reordenar){"error":"template_slug is required"} ou {"error":"container_id is required"}
401Sem token ou token expirado{"error":"missing authorization header"}
403Sem o privilégio manage_layouts{"error":"insufficient privileges","required":"manage_layouts"}
500Modelo inexistente; sem rascunho (remover, reordenar, configurar); seção não encontrada{"error":"failed to add section","detail":"section template 'x' not found"} ou {"error":"failed to remove section","detail":"section abc not found in draft"}
Erros de negócio vêm como 500

Modelo desconhecido, rascunho inexistente e seção não encontrada respondem 500 (com a causa em detail), não 404. Leia o rascunho antes para conferir os ids.

Veja também

  • Rascunho e publicação
  • Modelos e página publicada
Anterior
Rascunho e publicação
Próxima
Idiomas
Nesta página
  • Adicionar seção
  • Exemplo de requisição
  • Remover seção
  • Reordenar seções
  • Configurar seção
  • Erros
  • Veja também