VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Vitrine: layout, menus e temas

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.

Um menu ativo por local

Se houver mais de um menu ativo no mesmo local, a vitrine mostra só um: o primeiro por nome (e, em empate, por id). A lista marca esse com is_served: true. Antes de editar, confira qual menu a vitrine usa de fato.

Listar os menus

GET/api/v1/admin/navigation-menusAdmin

Listar 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[].iduuid
Id do menu.
menus[].namestring
Nome, para o painel.
menus[].locationstring
Local do menu na vitrine, como header, header_account, footer_about, footer_help, footer_contact.
menus[].statusstring
AD
Letra de status: A ativo, D desativado.
menus[].is_servedboolean
true quando este é o menu que a vitrine mostra naquele local. Só é calculado nesta lista.
menus[].created_atstring
RFC 3339, UTC.
menus[].updated_atstring
RFC 3339, UTC.

Ler um menu

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

Ler 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ório
Id 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

iduuid
Id do menu. Os demais campos do menu são os da lista.
is_servedboolean
Sempre false aqui, mesmo para o menu em uso. Consulte a lista para saber qual é o servido.
itemsarray
Itens de primeiro nível, por position.
items[].iduuid
Id do item.
items[].menu_iduuid
Menu dono do item.
items[].parent_item_iduuid
Item pai, quando o item é um submenu. Ausente no primeiro nível.
items[].labelstring
Texto do link.
items[].urlstring
Destino. Ausente quando o item aponta para um registro (reference_id).
items[].item_typestring
categorypageproductcustom_link
O que o item representa.
items[].reference_iduuid
Id da categoria, página ou produto, quando item_type não é custom_link.
items[].positioninteger
Ordem entre os irmãos.
items[].open_in_new_tabboolean
Se abre em outra aba.
items[].css_classstring
Classe CSS opcional.
items[].statusstring
AD
Letra de status.
items[].childrenarray
Subitens, no mesmo formato. Ausente quando não há.

Erros

StatusQuandoCorpo de exemplo
401Sem token ou token expirado.{"error":"invalid or expired token"}
403Sem manage_layouts.{"error":"insufficient privileges","required":"manage_layouts"}
404Menu inexistente.{"error":"menu not found"}
500Falha interna, ou {id} que não é UUID.{"error":"failed to get menu","detail":"..."}
is_served no detalhe é sempre false

O detalhe de um menu não calcula is_served. Se a sua tela precisa dessa informação, leia a lista e cruze pelo id.

Menus Desktop e Mobile

É comum a loja ter dois menus ativos no mesmo local (por exemplo "Sobre Nós - Desktop" e "Sobre Nós - Mobile"). Só o primeiro por nome é mostrado. Desative o que não deve aparecer, em vez de apagá-lo.

Veja também

  • Modelos de layout
  • Aparência da vitrine
Anterior
Modelos de layout
Próxima
Galeria de temas
Nesta página
  • Listar os menus
  • Ler um menu
  • Erros
  • Veja também