Skip to content

Documentação de Menus

Visão Geral

O menu é responsável por estruturar a navegação da loja, organizando links e acessos para as principais áreas da plataforma 🧭.

Por meio dos menus, é possível direcionar usuários para categorias, páginas, marcas, vitrines ou outras seções estratégicas, facilitando a descoberta de conteúdos e produtos.

Cada menu pode conter múltiplos itens de navegação, permitindo construir estruturas simples ou hierarquias mais completas, conforme a necessidade da loja.

Além disso, os menus podem ser vinculados a localizações específicas, possibilitando que diferentes menus sejam exibidos em áreas distintas da interface, como cabeçalho, rodapé ou menus laterais.

Entidades Relacionadas

Itens de Menu

Os itens de menu representam os elementos individuais de navegação dentro de um menu.

Cada item define o rótulo exibido ao usuário e o destino do link, podendo apontar para diferentes áreas da loja ou conteúdos específicos.

Essa estrutura permite organizar a navegação de forma flexível, criando desde menus simples até estruturas mais complexas de navegação.

Localização

O menu pode estar vinculado a uma localização específica.

As localizações são gerenciadas pelo frontend e permitem retornar um conjunto de entidades com base no local informado, determinando onde o menu deve ser exibido na interface.

Para mais informações sobre localizações, clique [aqui]({{ MAIN_URL }}/).

Listagem de menus

GET /template/menus

Retorna uma lista de menus da loja

Descrição

Este endpoint é responsável por retornar uma lista de menus cadastrados 📋.

A resposta inclui os menus disponíveis na loja, permitindo consultar e gerenciar a estrutura de navegação existente.

Esse recurso é utilizado em contexto administrativo, onde é necessário recuperar os menus configurados no sistema.

Dessa forma, facilita a visualização e manutenção da navegação da loja 🧭.

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Campos de Condição Disponíveis

CampoTipoDescrição
idintegeridentificador do menu
codestringcódigo de identificação do menu
namestringnome definido ao menu
salesChannelIdintegeridentificador do canal de venda associado
locationIdstringidentificador da localização vinculada
createdAtstringdata de criação do menu
updatedAtstringdata de última atualização do menu

Campos de Ordenação Disponíveis

CampoDescrição
ididentificador do menu
codecódigo de identificação
namenome definido ao menu
createdAtdata de criação do menu
updatedAtdata de última atualização do menu

Exemplo de Requisição

1curl --request GET \
2 --url {{MAIN_URL}}/template/menus \
3 --header "Authorization: Bearer userToken" \

✅ Resposta de Sucesso

1{
2 "registers": [
3 {
4 "id": 1,
5 "salesChannelId": 1,
6 "locationId": null,
7 "code": "institutional-menu",
8 "name": "Menu de páginas institucionais",
9 "items": [],
10 "itemsCount": 5,
11 "createdAt": "2025-12-12 15:07:05",
12 "updatedAt": "2026-02-10 16:17:18"
13 },
14 {
15 "id": 2,
16 "salesChannelId": 1,
17 "locationId": null,
18 "code": "main-header",
19 "name": "Menu principal do cabeçalho",
20 "items": [],
21 "itemsCount": 13,
22 "createdAt": "2025-12-12 15:07:05",
23 "updatedAt": "2026-01-28 08:19:05"
24 },
25 {
26 "id": 3,
27 "salesChannelId": 1,
28 "locationId": null,
29 "code": "footer-main-menu",
30 "name": "Menu principal do rodapé",
31 "items": [],
32 "itemsCount": 6,
33 "createdAt": "2025-12-12 15:07:05",
34 "updatedAt": "2025-12-12 15:07:05"
35 }
36 ]
37}

⚠️ Erro retornado:

1{
2 "status": false,
3 "data": {
4 "code": 400,
5 "errorCode": "UAPPI_CORE_INVALID_TRADE_POLICY_ID",
6 "message": "Requested trade policy IDs are not allowed."
7 }
8}

Busca detalhes de um menu

GET /template/menus/{menuId}

Retorna informações detalhadas de um menu

Descrição

Este endpoint é responsável por retornar um menu específico, identificado pelo ID informado na API, juntamente com todos os itens cadastrados nesse menu.

A resposta permite visualizar de forma completa a estrutura e o conteúdo associado ao menu solicitado.

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
menuIdintegerSimIdentificador do menu que deve ser consultado

Exemplo de Requisição

1curl --request GET \
2 --url {{MAIN_URL}}/template/menus/{menuId} \
3 --header "Authorization: Bearer userToken" \

✅ Resposta de Sucesso

1{
2 "id": 1,
3 "salesChannelId": 1,
4 "locationId": null,
5 "code": "institutional-menu",
6 "name": "Menu de páginas institucionais",
7 "items": [
8 {
9 "id": 1,
10 "templateMenuItemId": 0,
11 "active": true,
12 "title": "Pagina 1",
13 "type": "page",
14 "productId": null,
15 "productCategoryId": null,
16 "productBrandId": null,
17 "productPageId": 1,
18 "image1": "",
19 "image2": "",
20 "highlight": false,
21 "order": 0,
22 "url": "/pagina/sobre-nos",
23 "target": "_self",
24 "bannerGroups": [],
25 "items": []
26 },
27 {
28 "id": 2,
29 "templateMenuItemId": 0,
30 "active": true,
31 "title": "Uappi",
32 "type": "brand",
33 "productId": null,
34 "productCategoryId": null,
35 "productBrandId": 1,
36 "productPageId": null,
37 "image1": "",
38 "image2": "",
39 "highlight": true,
40 "order": 0,
41 "url": "",
42 "target": "_blank",
43 "bannerGroups": [],
44 "items": []
45 }
46 ]
47}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HttpDescrição
UAPPI_STORE_MENU_NOT_FOUND404O menu solicitado não foi encontrado.
UAPPI_CORE_INVALID_TRADE_POLICY_ID400Os ids de política comercial solicitados não são permitidos.
UAPPI_STORE_PROFILE_NOT_FOUND404O perfil de usuário solicitado não foi encontrado.

Cadastro de menu

POST /template/menus

Permite ao lojista criar e configurar menus de navegação na loja

Descrição

Este endpoint é responsável por permitir que o lojista crie menus para navegação na loja 🧭.

Os menus estruturam a navegação e ajudam a organizar categorias, páginas e demais seções da plataforma.

É possível definir uma localização para o menu, vinculando-o a uma página ou área específica da loja.

Esse controle é gerenciado pelo frontend e não é um campo obrigatório, permitindo maior flexibilidade na configuração conforme a necessidade da interface.

Parâmetros

Parâmetros do Corpo

ParâmetroTipoObrigatórioDescrição
salesChannelIdinteger✅Id do canal de venda associado
locationIdstring❌Id da localização do menu (max 50)
codestring✅Código interno de indentificação (max 100)
namestring✅Nome interno do menu (max 100)

Exemplo de Requisição

1curl --request POST \
2 --url {{MAIN_URL}}/template/menus \
3 --header "Authorization: Bearer userToken" \,
4 --data '{
5 "salesChannelId":1,
6 "locationId":"MENU_HOME_LOCATION",
7 "code": "menu-smartphone",
8 "name": "smartphones"
9 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "id": 1,
3 "salesChannelId": 1,
4 "locationId": "MENU_HOME_LOCATION",
5 "code": "menu-smartphone",
6 "name": "smartphones",
7 "items": [],
8 "itemsCount": 0,
9 "createdAt": "2025-12-12 11:47:41",
10 "updatedAt": "2025-12-12 11:47:41"
11}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HttpDescrição
UAPPI_CORE_INVALID_SALES_CHANNEL_ID400O ids de canal de venda solicitados não são permitidos.
UAPPI_STORE_MENU_NOT_FOUND404O menu solicitado não foi encontrado.
UAPPI_STORE_DUPLICATED_MENU_CODE400O código do menu informado já está sendo utilizado.
UAPPI_STORE_TEMPLATE_LOCATION_NOT_FOUND404A localização solicitada não foi encontrada.

Atualização de menu

PUT /template/menus/{menuId}

Permite que o lojista atualize e ajuste os menus da loja

Descrição

Este endpoint é responsável por atualizar um menu existente ✏️.

O menu que será alterado é identificado pelo ID informado na URL do endpoint, garantindo que a modificação seja aplicada ao registro correto.

Por meio dessa rota, é possível editar informações e ajustes de configuração do menu, permitindo adaptar a estrutura de navegação conforme necessário.

Isso facilita a manutenção e evolução da navegação da loja, acompanhando mudanças na organização do conteúdo 🧭.

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
Content-Typeapplication/jsonTipo de conteúdo
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
menuIdintegerSimIdentificador do menu que deve ser atualizado

Parâmetros do Corpo

ParâmetroTipoObrigatórioDescrição
salesChannelIdinteger✅Id do canal de venda
locationIdstring❌Id da localização do menu (max 50)
codestring✅Código interno de indentificação (max 100)
namestring✅Nome interno do menu (max 100)

Exemplo de Requisição

1curl --request PUT \
2 --url {{MAIN_URL}}/template/menus/{menuId}
3 --header "Authorization: Bearer userToken" \
4 --data '{
5 "salesChannelId":1,
6 "locationId":"MENU_HOME_LOCATION",
7 "code": "menu-smartphone",
8 "name": "smartphones"
9 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "id": 1,
3 "salesChannelId": 1,
4 "locationId": "MENU_TESTE",
5 "code": "footer-menu",
6 "name": "Menu do footer",
7 "items": [],
8 "itemsCount": 0,
9 "createdAt": "2026-02-12 19:47:49",
10 "updatedAt": "2026-02-12 19:47:49"
11}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HttpDescrição
UAPPI_CORE_INVALID_SALES_CHANNEL_ID400O ids de canal de venda solicitados não são permitidos.
UAPPI_STORE_MENU_NOT_FOUND404O menu solicitado não foi encontrado.
UAPPI_STORE_DUPLICATED_MENU_CODE400O código do menu informado já está sendo utilizado.
UAPPI_STORE_TEMPLATE_LOCATION_NOT_FOUND404A localização solicitada não foi encontrada.

Exclusão de menu

Endpoint

DELETE /template/menus/{menuId}

Possibilita o lojista excluir menus da loja

Descrição

Este endpoint é responsável por excluir um menu cadastrado, ação que deve ser realizada por um usuário autorizado.

Após a exclusão, o menu não ficará mais disponível para consultas ou utilização na plataforma.

⚠️ Importante: Essa endpoint também exclui todos os itens de menu associados ao menu atual.

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
menuIdintegerSimIdentificador do menu que deve ser excluído

Exemplo de Requisição

1curl --request DELETE \
2 --url {{MAIN_URL}}/template/menus/{menuId}\
3 --header "Authorization: Bearer userToken" \

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": true
4}

⚠️ Possíveis erros:

Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.

Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.

Código InternoCódigo HttpDescrição
UAPPI_STORE_MENU_NOT_FOUND404O menu solicitado não foi encontrado.
UAPPI_STORE_MENU_ITEM_FOUND404O item de menu solicitado não foi encontrado.

Uappi é a melhor opção para o crescimento da sua loja!

;