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
/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
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação |
Campos de Condição Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | identificador do menu |
| code | string | código de identificação do menu |
| name | string | nome definido ao menu |
| salesChannelId | integer | identificador do canal de venda associado |
| locationId | string | identificador da localização vinculada |
| createdAt | string | data de criação do menu |
| updatedAt | string | data de última atualização do menu |
Campos de Ordenação Disponíveis
| Campo | Descrição |
|---|---|
| id | identificador do menu |
| code | código de identificação |
| name | nome definido ao menu |
| createdAt | data de criação do menu |
| updatedAt | data 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
/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
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| menuId | integer | Sim | Identificador 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 Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_MENU_NOT_FOUND | 404 | O menu solicitado não foi encontrado. |
| UAPPI_CORE_INVALID_TRADE_POLICY_ID | 400 | Os ids de política comercial solicitados não são permitidos. |
| UAPPI_STORE_PROFILE_NOT_FOUND | 404 | O perfil de usuário solicitado não foi encontrado. |
Cadastro de menu
/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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
salesChannelId | integer | ✅ | Id do canal de venda associado |
locationId | string | ❌ | Id da localização do menu (max 50) |
code | string | ✅ | Código interno de indentificação (max 100) |
name | string | ✅ | 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 Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_CORE_INVALID_SALES_CHANNEL_ID | 400 | O ids de canal de venda solicitados não são permitidos. |
| UAPPI_STORE_MENU_NOT_FOUND | 404 | O menu solicitado não foi encontrado. |
| UAPPI_STORE_DUPLICATED_MENU_CODE | 400 | O código do menu informado já está sendo utilizado. |
| UAPPI_STORE_TEMPLATE_LOCATION_NOT_FOUND | 404 | A localização solicitada não foi encontrada. |
Atualização de menu
/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
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| menuId | integer | Sim | Identificador do menu que deve ser atualizado |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
salesChannelId | integer | ✅ | Id do canal de venda |
locationId | string | ❌ | Id da localização do menu (max 50) |
code | string | ✅ | Código interno de indentificação (max 100) |
name | string | ✅ | 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 Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_CORE_INVALID_SALES_CHANNEL_ID | 400 | O ids de canal de venda solicitados não são permitidos. |
| UAPPI_STORE_MENU_NOT_FOUND | 404 | O menu solicitado não foi encontrado. |
| UAPPI_STORE_DUPLICATED_MENU_CODE | 400 | O código do menu informado já está sendo utilizado. |
| UAPPI_STORE_TEMPLATE_LOCATION_NOT_FOUND | 404 | A localização solicitada não foi encontrada. |
Exclusão de menu
Endpoint
/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
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| menuId | integer | Sim | Identificador 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": true4}⚠️ 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 Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_MENU_NOT_FOUND | 404 | O menu solicitado não foi encontrado. |
| UAPPI_STORE_MENU_ITEM_FOUND | 404 | O item de menu solicitado não foi encontrado. |