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

Rascunho e publicação

Lê, grava, publica e descarta o rascunho do layout da vitrine.

O rascunho é uma cópia editável da página. Nada nele aparece para o cliente até o publish. Há um rascunho por layout. As quatro rotas abaixo exigem o privilégio manage_layouts; o {layoutId} é o layout_id devolvido por Ler a página publicada.

Ler o rascunho

GET/api/v1/admin/editor/draft/{layoutId}Admin

Lê o rascunho de um layout

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout.
200Rascunho encontrado
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_by": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
  "created_at": "2026-10-11T15:30:00.000Z",
  "updated_at": "2026-10-11T15:31:00.000Z"
}

Campos da resposta

iduuid
Identificador do rascunho.
layout_idinteger
Layout a que pertence.
page_typestring
Página de onde o rascunho partiu (index.index quando não informada).
containersarray
Contêineres e seções, no mesmo formato de Ler a página publicada.
created_byuuid
Usuário que criou o rascunho. Ausente quando desconhecido.
created_atstring
Criação (RFC 3339, UTC).
updated_atstring
Última gravação (RFC 3339, UTC).

Gravar o rascunho

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

Cria ou substitui o rascunho inteiro

Grava o estado completo do editor. Se já existe rascunho, o conteúdo dele é substituído pelo que você enviar; senão, um novo é criado.

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout.

Corpo da requisição

page_typestringpadrão: index.index
Página de origem do rascunho.
containersarrayobrigatório

Lista completa de contêineres. Cada item:

idstring
Id do contêiner. Pode repetir o position.
positionstringobrigatório
Área da página (top_panel, header, content, footer...). É a chave usada na publicação.
sort_orderinteger
Ordem do contêiner.
sectionsarray
Seções, cada uma com id, template_slug, block_type, name, config, visible, sort_order e, opcionalmente, usergroup_ids e custom_css.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/editor/draft/166" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"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":"Natal na Loja"},"visible":true,"sort_order":0}]}]}'

A resposta 200 é o rascunho gravado, no formato de "Ler o rascunho".

Publicar o rascunho

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

Publica o rascunho como página real

Aplica o rascunho à vitrine e apaga o rascunho. Na prática: (1) contêineres que existem na página publicada e não estão no rascunho são removidos, a menos que o rascunho não tenha contêiner algum; (2) o conteúdo de cada contêiner do rascunho é reconstruído, com uma linha de largura total por seção; (3) seções com visible: false viram blocos desativados. A operação é uma transação: ou aplica tudo ou nada.

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout (positivo).
200Publicado
json
{ "status": "published", "message": "Draft has been published successfully" }

Descartar o rascunho

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

Descarta o rascunho sem publicar

Parâmetros de caminho

layoutIdintegerobrigatório
Id do layout.
200Descartado
json
{ "status": "discarded", "message": "Draft has been discarded" }

Erros

StatusQuandoCorpo
400layoutId que não é inteiro (ou menor que 1, no publicar); corpo inválido (gravar){"error":"invalid layout id","detail":"layout id must be an integer"}
401Sem token ou token expirado{"error":"missing authorization header"}
403Sem o privilégio manage_layouts{"error":"insufficient privileges","required":"manage_layouts"}
404Não existe rascunho (ler){"error":"no draft found","detail":"no draft exists for this layout"}
500Publicar ou descartar sem rascunho; layout sem página padrão; falha de banco{"error":"failed to publish draft","detail":"no draft exists for layout 166"}
Publicar não tem desfazer

A publicação apaga linhas, colunas e blocos antigos dos contêineres presentes no rascunho e os recria. Antes de publicar, leia a página publicada e guarde uma cópia do JSON se precisar voltar atrás. Um rascunho gravado com contêineres a menos remove os que faltam da página real.

Publica na página padrão do layout

A publicação grava no layout inteiro, na sua página padrão, mesmo que o rascunho tenha partido de outra página (products.view, por exemplo). Veja o detalhe na visão geral.

Veja também

  • Seções do rascunho
  • Modelos e página publicada
Anterior
Modelos e página publicada
Próxima
Seções do rascunho
Nesta página
  • Ler o rascunho
  • Gravar o rascunho
  • Exemplo de requisição
  • Publicar o rascunho
  • Descartar o rascunho
  • Erros
  • Veja também