Menus de navegação
Lista os menus do cabeçalho e dos rodapés da loja e lê um menu com seus itens em árvore.
Os menus de navegação são os links que a vitrine mostra no cabeçalho, nos rodapés e em outras áreas. Cada menu tem um local (header, footer_help, footer_about...) e uma lista de itens (rótulo e destino), que podem ter filhos para formar submenus.
Estas duas rotas só leem. Criar, alterar, apagar e reordenar menus e itens usa a família de rotas /api/v1/admin/navigation/menus e /api/v1/admin/navigation/items. Exigem manage_layouts.
Listar os menus
/api/v1/admin/navigation-menusAdminListar todos os menus
Devolve todos os menus da loja, sem os itens, sem paginação.
bash
curl "$BASE_URL/api/v1/admin/navigation-menus" \
-H "Authorization: Bearer $TOKEN"200Menus
json
{
"menus": [
{
"id": "b4d75fb9-9e16-4efa-b15d-5b5547af37fb",
"name": "Sobre Nós - Desktop",
"location": "footer_about",
"status": "A",
"created_at": "2026-04-07T02:45:34.139094Z",
"updated_at": "2026-06-18T20:15:07.543128Z",
"is_served": true
},
{
"id": "00000000-0000-0000-0000-000000000202",
"name": "Sobre Nós - Mobile",
"location": "footer_about",
"status": "A",
"created_at": "2026-04-07T03:04:36.820617Z",
"updated_at": "2026-06-18T20:17:37.543491Z",
"is_served": false
}
]
}Campos da resposta
menus[].iduuidId do menu.
menus[].namestringNome, para o painel.
menus[].locationstringLocal do menu na vitrine, como
header, header_account, footer_about, footer_help, footer_contact.menus[].statusstringADLetra de status:
A ativo, D desativado.menus[].is_servedbooleantrue quando este é o menu que a vitrine mostra naquele local. Só é calculado nesta lista.menus[].created_atstringRFC 3339, UTC.
menus[].updated_atstringRFC 3339, UTC.
Ler um menu
/api/v1/admin/navigation-menus/{id}AdminLer um menu com seus itens em árvore
Devolve o menu e seus itens. Os itens de primeiro nível vêm em items; os submenus vêm aninhados em children.
Parâmetros de caminho
iduuidobrigatórioId do menu.
bash
curl "$BASE_URL/api/v1/admin/navigation-menus/b723eb99-ca29-4c4b-8b8a-7fbc0a9c219d" \
-H "Authorization: Bearer $TOKEN"200Menu
json
{
"id": "b723eb99-ca29-4c4b-8b8a-7fbc0a9c219d",
"name": "Menu Home",
"location": "header",
"status": "A",
"created_at": "2026-04-07T02:45:34.115783Z",
"updated_at": "2026-06-18T12:29:32.465381Z",
"is_served": false,
"items": [
{
"id": "501f1e92-26eb-4ced-add2-2b1cdea77cbd",
"menu_id": "b723eb99-ca29-4c4b-8b8a-7fbc0a9c219d",
"label": "Feminino",
"url": "/feminino",
"item_type": "custom_link",
"position": 0,
"open_in_new_tab": false,
"status": "A",
"created_at": "2026-04-07T02:45:34.121123Z",
"updated_at": "2026-04-07T02:45:34.121123Z"
}
]
}Campos da resposta
iduuidId do menu. Os demais campos do menu são os da lista.
is_servedbooleanSempre
false aqui, mesmo para o menu em uso. Consulte a lista para saber qual é o servido.itemsarrayItens de primeiro nível, por
position.items[].iduuidId do item.
items[].menu_iduuidMenu dono do item.
items[].parent_item_iduuidItem pai, quando o item é um submenu. Ausente no primeiro nível.
items[].labelstringTexto do link.
items[].urlstringDestino. Ausente quando o item aponta para um registro (
reference_id).items[].item_typestringcategorypageproductcustom_linkO que o item representa.
items[].reference_iduuidId da categoria, página ou produto, quando
item_type não é custom_link.items[].positionintegerOrdem entre os irmãos.
items[].open_in_new_tabbooleanSe abre em outra aba.
items[].css_classstringClasse CSS opcional.
items[].statusstringADLetra de status.
items[].childrenarraySubitens, no mesmo formato. Ausente quando não há.
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token ou token expirado. | {"error":"invalid or expired token"} |
| 403 | Sem manage_layouts. | {"error":"insufficient privileges","required":"manage_layouts"} |
| 404 | Menu inexistente. | {"error":"menu not found"} |
| 500 | Falha interna, ou {id} que não é UUID. | {"error":"failed to get menu","detail":"..."} |