Páginas do app
Lê as páginas montadas por seções que o aplicativo mobile da loja exibe, como a home do app.
Uma página do app é uma tela do aplicativo mobile da loja montada no painel por seções empilhadas (carrossel de banners, lista de produtos, lista de categorias, textos). Em vez de cada tela ser fixa no código do app, o app pergunta a esta rota o que mostrar e desenha as seções que receber. Assim a loja muda a home do app sem publicar uma versão nova.
/api/v1/storefront/mobile-pagesPúblicaListar as páginas do app
Parâmetros de consulta
homestring1trueDevolve só as páginas marcadas para a home e já com as seções.
with_sectionsstring1Inclui as seções de cada página. Sem ele (e sem
home), sections vem vazio.slugstringSe enviado, devolve só a página com esse slug (ou id), no mesmo formato de lista de um item.
channelstringvenddor_appclient_appQual aplicativo está perguntando. Filtra os banners dos carrosséis. Sem ele, só entram banners válidos para todos os canais.
devicestringpadrão: mobilemobiletabletdesktopTamanho da tela. Filtra os banners dos carrosséis.
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/storefront/mobile-pages?home=1&channel=client_app&device=mobile"Resposta
200Páginas do app
json
{
"pages": [
{
"id": "b7a6c5d4-e3f2-4a1b-8c9d-0e1f2a3b4c5d",
"page_id": "b7a6c5d4-e3f2-4a1b-8c9d-0e1f2a3b4c5d",
"slug": "home",
"status": "A",
"position": 0,
"show_in_home": true,
"storefront_id": "",
"title": "Início",
"description": "Tela inicial do app",
"sections": [
{
"id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"section_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"type": "product_list",
"position": 0,
"status": "A",
"settings": {},
"content": {
"title": "Lançamentos",
"source": "newest",
"items": []
}
}
]
}
]
}Campos da resposta
pagesarrayPáginas do app.
[] quando não há nenhuma.pages[].iduuidId da página.
pages[].page_iduuidIgual a
id (apelido).pages[].slugstringIdentificador da página (por exemplo
home).pages[].statusstringLetra do estado. Na lista, sempre
A (ativa).pages[].positionintegerOrdem das páginas.
pages[].show_in_homebooleanSe a página entra na home do app.
pages[].storefront_idstringIdentificador da vitrine do app à qual a página pertence. Pode ser vazio.
pages[].titlestringTítulo.
pages[].descriptionstringDescrição.
pages[].sectionsarraySeções ativas, em ordem de
position. Vazio quando não foram pedidas.pages[].sections[].iduuidId da seção.
pages[].sections[].section_iduuidIgual a
id.pages[].sections[].typestringTipo da seção, por exemplo
banner_carousel, product_list ou category_list. É texto aberto: o app deve ignorar tipos que não conhece.pages[].sections[].positionintegerOrdem da seção na página.
pages[].sections[].statusstringLetra do estado. Sempre
A aqui.pages[].sections[].settingsobjectReservado. Hoje sempre
{}.pages[].sections[].contentobjectConteúdo configurado no painel; depende do tipo. Nas seções de produtos, categorias e banners ganha
items (até 50 produtos; para produtos, a origem é uma lista de product_ids, uma category_id ou source: "newest", e sem nenhuma delas items fica vazio).Erros
| Status | Quando | Corpo |
|---|---|---|
| 403 | Módulo mobile-pages desligado. | {"error":"module_disabled","module":"mobile-pages"} |
| 404 | Com slug, a página não existe. | {"error":"mobile page not found"} |
| 500 | Falha ao ler. | {"error":"failed to list mobile pages","detail":"..."} |
/api/v1/storefront/mobile-pages/{id}PúblicaLer uma página do app
Parâmetros de caminho
idstringobrigatórioId (UUID) ou slug da página.
Parâmetros de consulta
channelstringvenddor_appclient_appAplicativo que está perguntando.
devicestringpadrão: mobilemobiletabletdesktopTamanho da tela.
bash
curl "$BASE_URL/api/v1/storefront/mobile-pages/home?channel=client_app"200Página encontrada
json
{
"pages": [
{
"id": "b7a6c5d4-e3f2-4a1b-8c9d-0e1f2a3b4c5d",
"page_id": "b7a6c5d4-e3f2-4a1b-8c9d-0e1f2a3b4c5d",
"slug": "home",
"status": "A",
"position": 0,
"show_in_home": true,
"storefront_id": "",
"title": "Início",
"description": "Tela inicial do app",
"sections": []
}
]
}A leitura por id ou slug sempre traz as seções, e a resposta tem os mesmos campos da lista.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 403 | Módulo mobile-pages desligado. | {"error":"module_disabled","module":"mobile-pages"} |
| 404 | Nenhuma página com esse id ou slug (ou slug de página inativa). | {"error":"mobile page not found"} |
| 500 | Falha ao ler. | {"error":"failed to load mobile page","detail":"..."} |