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

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.

Pontos principais
  • Depende do módulo mobile-pages.
  • A lista só traz páginas ativas, ordenadas por position. Ler por id (UUID) devolve a página mesmo que esteja inativa; ler por slug só devolve ativa.
  • Listar sem with_sections traz as páginas com sections: []. Com home=1, ou com with_sections=1, as seções vêm junto.
  • Seções dos tipos product_list, category_list e banner_carousel chegam com o campo content.items já preenchido pelo servidor.
  • Mesmo a leitura de uma página devolve um objeto pages com uma lista de um item.
GET/api/v1/storefront/mobile-pagesPública

Listar as páginas do app

Parâmetros de consulta

homestring
1true
Devolve só as páginas marcadas para a home e já com as seções.
with_sectionsstring
1
Inclui as seções de cada página. Sem ele (e sem home), sections vem vazio.
slugstring
Se enviado, devolve só a página com esse slug (ou id), no mesmo formato de lista de um item.
channelstring
venddor_appclient_app
Qual aplicativo está perguntando. Filtra os banners dos carrosséis. Sem ele, só entram banners válidos para todos os canais.
devicestringpadrão: mobile
mobiletabletdesktop
Tamanho 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

pagesarray
Páginas do app. [] quando não há nenhuma.
pages[].iduuid
Id da página.
pages[].page_iduuid
Igual a id (apelido).
pages[].slugstring
Identificador da página (por exemplo home).
pages[].statusstring
Letra do estado. Na lista, sempre A (ativa).
pages[].positioninteger
Ordem das páginas.
pages[].show_in_homeboolean
Se a página entra na home do app.
pages[].storefront_idstring
Identificador da vitrine do app à qual a página pertence. Pode ser vazio.
pages[].titlestring
Título.
pages[].descriptionstring
Descrição.
pages[].sectionsarray
Seções ativas, em ordem de position. Vazio quando não foram pedidas.
pages[].sections[].iduuid
Id da seção.
pages[].sections[].section_iduuid
Igual a id.
pages[].sections[].typestring
Tipo 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[].positioninteger
Ordem da seção na página.
pages[].sections[].statusstring
Letra do estado. Sempre A aqui.
pages[].sections[].settingsobject
Reservado. Hoje sempre {}.
pages[].sections[].contentobject
Conteú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

StatusQuandoCorpo
403Módulo mobile-pages desligado.{"error":"module_disabled","module":"mobile-pages"}
404Com slug, a página não existe.{"error":"mobile page not found"}
500Falha ao ler.{"error":"failed to list mobile pages","detail":"..."}
GET/api/v1/storefront/mobile-pages/{id}Pública

Ler uma página do app

Parâmetros de caminho

idstringobrigatório
Id (UUID) ou slug da página.

Parâmetros de consulta

channelstring
venddor_appclient_app
Aplicativo que está perguntando.
devicestringpadrão: mobile
mobiletabletdesktop
Tamanho 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

StatusQuandoCorpo
403Módulo mobile-pages desligado.{"error":"module_disabled","module":"mobile-pages"}
404Nenhuma página com esse id ou slug (ou slug de página inativa).{"error":"mobile page not found"}
500Falha ao ler.{"error":"failed to load mobile page","detail":"..."}
Página inativa lida por UUID

Quem sabe o UUID de uma página inativa consegue lê-la, porque a busca por id não confere o estado. Não use uma página do app inativa para guardar conteúdo que não possa ser visto. Para esconder uma tela, apague-a no painel.

Veja também

  • Banners
  • Páginas
Anterior
Formulários
Próxima
Anúncios patrocinados
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Erros
  • Veja também