Páginas do layout
Cria, altera e remove as páginas de um layout e gera as páginas padrão da Loja WhatsApp.
Cada página de um layout representa uma tela da vitrine, identificada por um dispatch (um código como index.index para a home, products.view para a página de produto ou checkout.cart para o carrinho). A página "Default (Catch-all)" vale para qualquer tela que não tenha página própria. Cada página nasce com os quatro contêineres e carrega os campos de SEO da tela.
Criar página
Adiciona ao layout uma página para um dispatch. Use para dar a uma tela um desenho próprio em vez de herdar o da página padrão.
/api/v1/admin/advanced-layouts/{id}/pagesAdminCriar uma página no layout
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioCorpo da requisição
dispatchstringobrigatórioproducts.view.namestringobrigatórioobject_idsstring[]is_defaultbooleanpadrão: falsepositionintegerpadrão: 0seo_titlestringtitle).seo_descriptionstringseo_keywordsstringog_imagestringog_typestringcanonical_urlstringno_indexbooleanpadrão: falsetrue pede aos buscadores que não indexem a tela.custom_html_codestringExemplo de requisição
Resposta
Campos da resposta
idintegerlayout_idintegerdispatchstringnamestringobject_idsstring[]is_defaultbooleanpositionintegerseo_titlestringseo_descriptionstringseo_keywordsstringog_imagestringog_typestringcanonical_urlstringno_indexbooleancustom_html_codestringcreated_atstringErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de layout no caminho não é um inteiro. | {"error":"invalid layout id","detail":"id must be an integer"} |
| 400 | Corpo JSON inválido. | {"error":"invalid request body","detail":"unexpected EOF"} |
| 400 | dispatch vazio. | {"error":"dispatch 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 create page","detail":"..."} |
Atualizar página
Altera os campos enviados da página (nome, dispatch, SEO...). O que não for enviado permanece. Atenção: object_ids, quando enviado, é aplicado como lista; omita para não mexer.
/api/v1/admin/advanced-layouts/pages/{id}AdminAtualizar uma página
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioCorpo da requisição
dispatchstringnamestringobject_idsstring[]is_defaultbooleanpositionintegerseo_titlestringseo_descriptionstringseo_keywordsstringog_imagestringog_typestringcanonical_urlstringno_indexbooleancustom_html_codestringExemplo de requisição
Resposta
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de page no caminho não é um inteiro. | {"error":"invalid page id","detail":"id must be an integer"} |
| 400 | Corpo JSON inválido. | {"error":"invalid request body","detail":"unexpected EOF"} |
| 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 update page","detail":"..."} |
Excluir página
Remove a página e toda a árvore dela. A tela volta a usar a página padrão (catch-all) do layout.
/api/v1/admin/advanced-layouts/pages/{id}AdminExcluir uma página
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioExemplo de requisição
Resposta
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de page no caminho não é um inteiro. | {"error":"invalid page id","detail":"id must be an integer"} |
| 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"} |
| 404 | Página não existe. | {"error":"page not found","detail":"2945"} |
| 500 | Falha ao gravar ou ler no banco, ou id inexistente onde a rota não trata 404. | {"error":"failed to delete page","detail":"..."} |
Gerar páginas da Loja WhatsApp
A Loja WhatsApp (WAC) é a mini-loja que roda dentro do WhatsApp. Esta rota cria, para cada tela wa.* que o layout ainda não tem, a página já preenchida com os blocos que reproduzem a mini-loja padrão. Páginas existentes nunca são alteradas, então é seguro repetir. O corpo é opcional.
/api/v1/admin/advanced-layouts/{id}/wa-default-pagesAdminGerar as páginas padrão da Loja WhatsApp
Requer o privilégio manage_layouts.
Parâmetros de caminho
idintegerobrigatórioCorpo da requisição
dispatchesstring[]wa.home, wa.product, wa.cart, wa.checkout, wa.choose, wa.account, wa.orders, wa.order, wa.track, wa.signup, wa.call, wa.tryon, wa.privacy, wa.proposal, wa.rep.home, wa.rep.sell, wa.rep.clients, wa.rep.orders, wa.rep.approvals, wa.rep.assistant, wa.rep.review, wa.rep.more. Omitido gera todas as que faltam.Exemplo de requisição
Resposta
Campos da resposta
createdstring[]skippedstring[]Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | O id de layout no caminho não é um inteiro. | {"error":"invalid layout id","detail":"id must be an integer"} |
| 400 | Corpo JSON inválido. | {"error":"invalid request body","detail":"unexpected EOF"} |
| 400 | Dispatch wa.* desconhecido. | {"error":"invalid dispatches","detail":"unknown wa dispatch ..."} |
| 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"} |
| 404 | Layout não existe. | {"error":"layout not found","detail":"135"} |
| 500 | Falha no meio do processo. As páginas já criadas são mantidas e listadas. | {"error":"failed to seed wa pages","details":"...","created":["wa.home"],"skipped":[]} |