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

Rascunho e publicação

Abre um rascunho do layout no ar, edita sem afetar a loja e publica ou descarta no fim.

O rascunho é uma cópia completa do layout publicado. Você edita o rascunho com as mesmas rotas de páginas, linhas, colunas e blocos (usando os ids da cópia) e a vitrine continua servindo o layout publicado até você publicar. É o fluxo do editor visual ao vivo. Há um único rascunho em uso por vez: ele é reaproveitado entre sessões de administradores.

Fluxo típico
  1. POST /draft e guarde draft_id. 2) GET /advanced-layouts/{draft_id} para ler a árvore e edite. 3) Para ver o resultado sem publicar, abra a página da vitrine com ?layout_id=<draft_id>. 4) Publique uma página (dispatch) ou o rascunho todo; ou descarte.

Abrir rascunho

Devolve o rascunho do layout publicado, criando-o (como cópia profunda) na primeira chamada. Chamadas seguintes devolvem o mesmo. Sem corpo.

POST/api/v1/admin/advanced-layouts/draftAdmin

Obter ou criar o rascunho

Requer o privilégio manage_layouts.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/advanced-layouts/draft" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Rascunho
json
{
  "draft_id": 140,
  "live_id": 135
}

Campos da resposta

draft_idinteger
Id do layout rascunho. Use nas rotas de edição.
live_idinteger
Id do layout publicado de origem.

Erros

StatusQuandoCorpo de exemplo
401Sem token, token inválido ou expirado.{"error":"invalid or expired token"}
403Seu usuário não tem o privilégio manage_layouts.{"error":"insufficient privileges","required":"manage_layouts"}
500Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404.{"error":"failed to open draft","detail":"..."}
O rascunho é compartilhado

Ele pode conter edições abandonadas de outra sessão. Antes de publicar o rascunho inteiro, confira o conteúdo, ou prefira publicar só a página que você editou.

Publicar rascunho

Com dispatch: copia para o layout no ar só a árvore daquela página, sem tocar nas outras. O rascunho continua aberto. Sem corpo: o rascunho vira o layout padrão e o anterior é rebaixado (mantido como ponto de volta).

POST/api/v1/admin/advanced-layouts/{id}/publishAdmin

Publicar o rascunho

Requer o privilégio manage_layouts.

Parâmetros de caminho

idintegerobrigatório
Id do layout rascunho (draft_id).

Corpo da requisição

dispatchstring
Publica só esta página, por exemplo products.view. Omitido publica o rascunho inteiro.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/advanced-layouts/140/publish" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "dispatch": "index.index"
  }'

Resposta

200Página publicada
json
{
  "published_layout_id": 140,
  "dispatch": "index.index",
  "published_page_id": 2930
}
200Rascunho inteiro publicado
json
{
  "published_layout_id": 140,
  "replaced_layout_id": 135
}

Campos da resposta

published_layout_idinteger
O rascunho que foi publicado.
dispatchstring
Só na publicação por página: a página publicada.
published_page_idinteger
Só na publicação por página: id da página afetada.
replaced_layout_idinteger
Só na publicação inteira: o layout rebaixado.

Erros

StatusQuandoCorpo de exemplo
400O id de layout no caminho não é um inteiro.{"error":"invalid layout id","detail":"id must be an integer"}
401Sem token, token inválido ou expirado.{"error":"invalid or expired token"}
403Seu usuário não tem o privilégio manage_layouts.{"error":"insufficient privileges","required":"manage_layouts"}
404Rascunho inexistente, ou página sem esse dispatch no rascunho.{"error":"dispatch page not found in draft","detail":"index.index"}
500Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404.{"error":"failed to publish draft","detail":"..."}
Corpo opcional

Um corpo ausente ou inválido é ignorado e cai na publicação inteira. Se a intenção é publicar uma página, confira que o JSON está certo antes de enviar.

Descartar rascunho

Apaga o rascunho e sua árvore sem publicar nada. A resposta é 204, sem corpo.

DELETE/api/v1/admin/advanced-layouts/{id}/draftAdmin

Descartar o rascunho

Requer o privilégio manage_layouts.

Parâmetros de caminho

idintegerobrigatório
Id do layout rascunho.

Exemplo de requisição

bash
curl -X DELETE "$BASE_URL/api/v1/admin/advanced-layouts/140/draft" \
  -H "Authorization: Bearer $TOKEN"

Resposta

204Descartado

Corpo vazio.

Erros

StatusQuandoCorpo de exemplo
400O id de layout no caminho não é um inteiro.{"error":"invalid layout id","detail":"id must be an integer"}
401Sem token, token inválido ou expirado.{"error":"invalid or expired token"}
403Seu usuário não tem o privilégio manage_layouts.{"error":"insufficient privileges","required":"manage_layouts"}
404Rascunho inexistente.{"error":"draft not found","detail":"140"}
500Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404.{"error":"failed to discard draft","detail":"..."}

Veja também

  • Layouts avançados: visão geral
  • Converter em blocos
Anterior
Blocos reutilizáveis
Próxima
Converter em blocos
Nesta página
  • Abrir rascunho
  • Exemplo de requisição
  • Resposta
  • Erros
  • Publicar rascunho
  • Exemplo de requisição
  • Resposta
  • Erros
  • Descartar rascunho
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também