VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Menus de navegação

Menus

Lista, consulta, cria, altera e exclui menus de navegação da vitrine.

Cadastro dos menus em si; os links ficam nos itens. Todas as rotas exigem o privilégio manage_layouts.

Listar menus

GET/api/v1/admin/navigation/menusAdmin

Lista todos os menus da loja

Sem paginação, ordenados por local e nome. Cada menu traz is_served: true quando é o menu que a vitrine exibe naquele local (o primeiro ativo por nome).

200Menus retornados
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-04-07T02:45:34.139094Z",
      "is_served": true
    },
    {
      "id": "00000000-0000-0000-0000-000000000202",
      "name": "Sobre Nós - Mobile",
      "location": "footer_about",
      "status": "A",
      "created_at": "2026-04-07T02:45:34.139094Z",
      "updated_at": "2026-04-07T02:45:34.139094Z",
      "is_served": false
    }
  ]
}

Campos da resposta

menus[].iduuid
Identificador do menu.
menus[].namestring
Nome do menu. Também decide qual menu vale quando há mais de um ativo no local.
menus[].locationstring
Local onde aparece (veja a visão geral).
menus[].statusstring
AD
A ativo, D desativado.
menus[].is_servedboolean
Se é o menu exibido no local. Só vem correto na listagem.
menus[].created_atstring
Criação (RFC 3339, UTC).
menus[].updated_atstring
Última alteração (RFC 3339, UTC).

Consultar menu com itens

GET/api/v1/admin/navigation/menus/{id}Admin

Consulta um menu com a árvore de itens

Devolve o menu e os itens em árvore (items, com children aninhados), inclusive os desativados. Nesta rota is_served vem sempre false; use a listagem para saber qual menu está em uso.

Parâmetros de caminho

iduuidobrigatório
Id do menu.
200Menu encontrado
json
{
  "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-04-07T02:45:34.139094Z",
  "is_served": false,
  "items": [
    {
      "id": "fee18b03-4540-4b3b-91c5-79ac915a4301",
      "menu_id": "b4d75fb9-9e16-4efa-b15d-5b5547af37fb",
      "label": "Sobre a Marca",
      "url": "/sobre",
      "item_type": "custom_link",
      "position": 0,
      "open_in_new_tab": false,
      "status": "A",
      "created_at": "2026-04-07T02:45:34.142Z",
      "updated_at": "2026-04-07T02:45:34.142Z"
    }
  ]
}

Campos dos itens

items[].iduuid
Identificador do item.
items[].menu_iduuid
Menu dono.
items[].parent_item_iduuid
Item pai. Ausente em itens de primeiro nível.
items[].labelstring
Texto do link.
items[].urlstring
Endereço. Presente em custom_link.
items[].item_typestring
categorypageproductcustom_link
Tipo do item.
items[].reference_iduuid
Id da categoria, página ou produto apontado. Ausente em custom_link.
items[].positioninteger
Ordem entre os irmãos, a partir de 0.
items[].open_in_new_tabboolean
Se o link abre em nova aba.
items[].css_classstring
Classe CSS extra. Ausente quando vazia.
items[].statusstring
AD
A ativo, D desativado.
items[].childrenarray
Subitens, no mesmo formato. Ausente quando não há.

Criar menu

POST/api/v1/admin/navigation/menusAdmin

Cria um menu ativo vazio

O menu nasce ativo (A) e sem itens.

Corpo da requisição

namestringobrigatório
Nome do menu.
locationstringobrigatório
headerheader_accountfooterfooter_aboutfooter_helpfooter_contactfooter_brandsfooter_policiesfooter_shopsidebar
Local onde o menu aparece.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/navigation/menus" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Rodapé Institucional","location":"footer_about"}'
201Menu criado
json
{
  "id": "4a8d3c2b-1e0f-4a5b-9c6d-7e8f9a0b1c2d",
  "name": "Rodapé Institucional",
  "location": "footer_about",
  "status": "A",
  "created_at": "2026-10-11T18:00:00.000Z",
  "updated_at": "2026-10-11T18:00:00.000Z",
  "is_served": false
}

Alterar menu

PUT/api/v1/admin/navigation/menus/{id}Admin

Altera nome, local ou status de um menu

Alteração parcial; envie ao menos um campo. Para tirar um menu do ar sem apagar, use status: "D".

Parâmetros de caminho

iduuidobrigatório
Id do menu.

Corpo da requisição

namestring
Novo nome.
locationstring
headerheader_accountfooterfooter_aboutfooter_helpfooter_contactfooter_brandsfooter_policiesfooter_shopsidebar
Novo local.
statusstring
ADactivedisabled
Novo status.
200Menu atualizado
json
{ "message": "menu updated" }

Excluir menu

DELETE/api/v1/admin/navigation/menus/{id}Admin

Exclui um menu e todos os seus itens

Exclusão definitiva: todos os itens do menu são apagados junto.

Parâmetros de caminho

iduuidobrigatório
Id do menu.
200Menu excluído
json
{ "message": "menu deleted" }

Erros

StatusQuandoCorpo
400Corpo inválido; name ou location ausente (criar){"error":"name is required"} ou {"error":"location is required"}
401Sem token ou token expirado{"error":"missing authorization header"}
403Sem o privilégio manage_layouts{"error":"insufficient privileges","required":"manage_layouts"}
404Menu inexistente (alterar, excluir; consultar com id UUID válido que não existe){"error":"menu not found"}
500Local inválido; PUT sem campos; id que não é UUID{"error":"failed to create menu","detail":"invalid menu location: zzz"}
Só um menu ativo por local aparece

Se houver dois menus ativos no mesmo local, a vitrine mostra o primeiro por nome. Para trocar o menu em uso sem apagar nada, desative o atual (status: "D") ou renomeie para mudar a ordem.

Veja também

  • Itens do menu
  • Visão geral de menus
Anterior
Menus de navegação
Próxima
Itens do menu
Nesta página
  • Listar menus
  • Consultar menu com itens
  • Criar menu
  • Exemplo de requisição
  • Alterar menu
  • Excluir menu
  • Erros
  • Veja também