> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fire.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Menus

> Monte o cardápio de cada canal a partir de um só, sem manter cinco versões do mesmo produto em paralelo.

Um menu responde a uma pergunta: *o que se vende?* O que muda é **onde**. O cardápio do salão não é o do delivery, o do aeroporto não é o da loja do centro, e às duas da manhã não se vende o mesmo que ao meio-dia. Sustentar cinco cardápios em paralelo, produto por produto, é onde entram os erros que alguém descobre depois num pedido.

Esta tela existe para você ter muitos cardápios diferentes **sem mantê-los cinco vezes**. Vá em **Restaurant OS → Menu e Produtos → Menus**.

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/menus/01-listado.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=d37aa2dcee2f5ec895e12b75a988ec18" alt="Lista de menus em visão de árvore" width="3200" height="2000" data-path="images/manuals/backoffice/menus/01-listado.png" />
</Frame>

***

## O mínimo que você precisa saber

<Note>
  **1. Você já tem um menu, mesmo sem ter criado nenhum.** É o **Golden**, e contém todo o seu catálogo. Ele é criado sozinho quando você cadastra produtos, e não pode ser excluído.

  **2. Um menu custom herda do Golden e guarda só as diferenças.** Não é uma cópia: se amanhã você adicionar um produto ao catálogo, o custom também passa a tê-lo. A única coisa que ele guarda é onde se afasta.

  **3. O tipo de fulfillment é escolhido ao criar o menu e nunca mais pode ser alterado.** É o único campo desta tela sem volta.
</Note>

***

## O caminho simples

Você não precisa criar nenhum menu para começar a vender.

Você cadastra seus produtos no catálogo e o **Golden** se monta sozinho com todos eles. Esse é o seu menu, e serve para todos os canais até aparecer um motivo para não servir.

O Golden vem marcado com a etiqueta **Golden**, não tem fulfillment atribuído — serve para todos — e não pode ser excluído: é o catálogo inteiro, a base da qual pende todo o resto.

<Tip>
  Se você vende a mesma coisa em todo lugar, isso é tudo de que precisa. O resto do manual é para quando aparece o segundo cardápio.
</Tip>

***

## Golden e custom: duas maneiras de ter um menu

|                   | Golden                                     | Custom                                      |
| ----------------- | ------------------------------------------ | ------------------------------------------- |
| Como nasce        | Sozinho, ao cadastrar produtos no catálogo | Você cria                                   |
| O que contém      | Todo o catálogo                            | O que herda do pai, mais as suas diferenças |
| Fulfillment       | Nenhum: serve para todos                   | Um só, e é definitivo                       |
| Pode ser excluído | Não                                        | Sim                                         |
| Aba **Overrides** | Não tem                                    | Sim: é onde vive o que você mudou           |

<Info>
  **Por que "herda" e não "copia".** Uma cópia congela no dia em que é feita: três meses depois faltam nela os vinte produtos que entraram no catálogo desde então, e ninguém percebe até um cliente perguntar. Um menu custom não tem esse problema porque não guarda produtos, guarda **diferenças**. O que você não mudou continua vindo do pai, sempre em dia.

  É a mesma lógica das [listas de preços conectadas](/pt/manuals/backoffice/price-lists), aplicada à estrutura em vez do preço.
</Info>

***

## Criar um menu custom

Botão **Criar menu custom**, no canto superior direito. São quatro campos e só um é difícil.

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/menus/02-crear.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=f0c5b4457425e349e2cd95b65ffc6e28" alt="Diálogo de criação de um menu custom" width="1040" height="1412" data-path="images/manuals/backoffice/menus/02-crear.png" />
</Frame>

| Campo                                | O que colocar                                                                                       |
| ------------------------------------ | --------------------------------------------------------------------------------------------------- |
| **Menu name** *(obrigatório)*        | O nome pelo qual você vai procurá-lo daqui a seis meses: *Madrugada*, *Aeroporto*, *Café da manhã*. |
| **Base menu**                        | De quem ele herda. Veja abaixo.                                                                     |
| **Description** *(opcional)*         | Para que serve. *"Ativo das 22:00 às 06:00 para delivery em zonas urbanas"*.                        |
| **Fulfillment type** *(obrigatório)* | Delivery, retirada, salão… **Não pode ser alterado depois.**                                        |

### O campo que importa: Base menu

De quem ele herda decide quanto trabalho você vai ter daqui em diante.

| Opção                      | O que significa                                                   | Quando usar                                                                                       |
| -------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| **Golden Menu** *(padrão)* | Começa com todo o catálogo e você só guarda o que tirar ou mudar. | Quase sempre.                                                                                     |
| **No parent (empty menu)** | Menu vazio. Você adiciona categorias e produtos na mão.           | Uma marca nova que não compartilha nada com o catálogo atual.                                     |
| **Outro menu custom**      | Herda de um custom que você já montou.                            | Quando você já tem um menu de delivery e precisa de uma variante *dele*, não do catálogo inteiro. |

<Note>
  **A herança vai até três níveis**: Golden → custom → custom. Não há um quarto. O seletor só oferece os menus que ainda podem ser pais; se um menu não aparece na lista, é porque pendurar algo nele passaria do limite.
</Note>

Ao confirmar com **Create and edit menu**, o menu é criado e você cai direto no editor.

***

## O fulfillment se escolhe uma única vez

<Warning>
  **O tipo de fulfillment não pode ser alterado depois de criar o menu.** Se você criou o menu da madrugada como *retirada* quando era para *delivery*, não há como corrigir: é preciso criar outro menu e montá-lo de novo.

  O próprio diálogo avisa antes de você confirmar: *"The menu belongs to a single fulfillment type and it cannot be changed later"*. É a linha que vale ler duas vezes.
</Warning>

Um mesmo vendor pode ter **vários menus para o mesmo fulfillment** — três menus de delivery, por exemplo, um por faixa de horário ou por zona. O que ele não pode ter é um menu que sirva para dois fulfillments ao mesmo tempo. O único que serve para todos é o Golden, que não tem fulfillment atribuído.

***

## O que a lista te diz

A lista é uma **árvore**: os menus custom pendem do seu pai e se dobram e desdobram. Assim você vê de relance quem herda de quem.

| Coluna                        | O que olhar                                                                    |
| ----------------------------- | ------------------------------------------------------------------------------ |
| **Name**                      | O nome, a descrição e de quem ele herda (*Based on*).                          |
| **Type**                      | **Golden** ou **Custom**.                                                      |
| **Fulfillment**               | Para que tipo de entrega serve. **—** no Golden: serve para todos.             |
| **Products** · **Categories** | Quantos tem, já contando o que é herdado.                                      |
| **Overrides**                 | Quantas diferenças você guardou em relação ao pai. **—** se não mexeu em nada. |
| **Status**                    | **Published** · **Partial** · **Draft** · **Archived**, com um ponto colorido. |
| **Last publish**              | Quando foi ao canal pela última vez.                                           |

Abaixo do status podem aparecer dois avisos: **sync pending** (foi enviado e o canal ainda não confirmou) e **sync failed** (o canal recusou o envio). Os dois se resolvem na tela de [Atribuição de menus](/pt/manuals/backoffice/menu-assignments), não aqui.

No topo você tem busca por nome e três filtros: tipo, status e fulfillment.

<Note>
  **Se você procura a lista de atribuições aqui, ela não está mais.** Ficava numa aba desta tela e mudou para [Atribuição de menus](/pt/manuals/backoffice/menu-assignments), que é uma tela própria e faz bem mais.
</Note>

***

## Montar o menu: a aba Structure

O editor tem três abas — **Structure**, **Overrides** e **History** — e é em Structure que se trabalha.

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/menus/03-structure.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=6b192041ab9699e14522bf9a2460ed9f" alt="Aba Structure do editor de menus" width="3200" height="2000" data-path="images/manuals/backoffice/menus/03-structure.png" />
</Frame>

* **Add category** e **Add** *(dentro de cada categoria)* abrem uma busca no catálogo — oferecem o que já existe em [Produtos](/pt/manuals/backoffice/products) e [Categorias](/pt/manuals/backoffice/categories). O que você adiciona entra neste menu e não mexe com mais ninguém.
* **A reordenação é arrastando.** As categorias entre si e os produtos dentro de cada categoria. A ordem que você deixa é a ordem em que o cliente vê o cardápio.
* Duas visões do mesmo menu: **Visual**, para arrumar e ver como fica, e **Table**, para revisar muitos produtos de uma vez com seus preços e suas marcas.

***

## Salvar é tudo o que há para fazer

Esta é a parte que surpreende todo mundo: **no editor não há botão de publicar**.

O menu mantém sua estrutura em dia **só com salvar**. O que antes eram botões de publicar, sincronizar e pré-visualizar dentro do editor mudou inteiro para a tela de atribuições, porque publicar não é uma propriedade do menu: é uma decisão sobre em que loja e em que canal ele é usado.

Enquanto houver alterações não salvas você verá o chip âmbar **Unsaved changes**. Com **Save draft** ele vira **Draft saved**.

<Warning>
  **Se você sair do editor com alterações não salvas, elas se perdem e ninguém pergunta nada.** Diferente de Listas de preços, esta tela não tem uma trava que te segure na saída: o chip **Unsaved changes** é todo o aviso que existe.

  Salve antes de trocar de aba, de menu ou de tela.
</Warning>

***

## Tirar não é a mesma coisa que ocultar

Duas ações que se parecem e fazem coisas diferentes. A diferença aparece quando você quer voltar atrás.

|             | **Remove from menu**                       | **Hide**                                                                |
| ----------- | ------------------------------------------ | ----------------------------------------------------------------------- |
| O que faz   | Tira o produto do menu por completo        | Deixa no menu, mas não exibe                                            |
| Onde fica   | Na aba **Removed** do diálogo de adicionar | Na aba **Hidden**                                                       |
| Como volta  | **Restore**                                | **Show**                                                                |
| Quando usar | O produto não entra neste cardápio, ponto  | Está fora de venda por um tempo, mas continua fazendo parte do cardápio |

A própria interface resume: *"Removed products are taken out of this menu entirely. To keep a product but not show it, use Hide instead."*

<Warning>
  **Nada disso serve para "acabou no meio do serviço".** Tirar ou ocultar um produto aqui é uma decisão de cardápio, permanente até alguém desfazer na mão. Se o que aconteceu é que a batata acabou às duas da tarde, isso se resolve em [Esgotados](/pt/manuals/backoffice/out-of-stock), que volta sozinho no fechamento e não depende de ninguém lembrar.
</Warning>

***

## O que você pode mudar só neste menu

Um menu custom pode se afastar do pai em várias coisas ao mesmo tempo. Cada campo que você muda fica marcado com um chip azul **Override**, e todas as diferenças juntas aparecem na aba **Overrides**.

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/menus/04-overrides.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=9a83fa6c2f8ecf2ab914ad5bf513fb91" alt="Aba Overrides com as diferenças em relação ao menu pai" width="3200" height="2000" data-path="images/manuals/backoffice/menus/04-overrides.png" />
</Frame>

| O que você pode mudar          | Em                                                                                   |
| ------------------------------ | ------------------------------------------------------------------------------------ |
| **Name** · **Description**     | Produto e categoria                                                                  |
| **Image**                      | Produto e categoria — *"Only applies to this menu. The base image stays untouched."* |
| **Visibility** *(Hide / Show)* | Produto e categoria                                                                  |
| **Availability**               | Produto                                                                              |
| **Modifiers**                  | Produto: nome do grupo, mínimos e máximos, quais opções são oferecidas               |
| **Price by service type**      | Produto                                                                              |

A aba **Overrides** começa com *"Inherits from \<menu pai> — this tab shows only the differences"* e separa três blocos: diferenças de produto, produtos retirados e overrides de categoria. Cada um tem **Reset**, e no topo está **Reset all**: devolvem aquele campo — ou todos — ao valor do pai.

<Info>
  **O chip Price que você verá ali não é uma mudança do menu.** É a diferença entre o que o produto custa na lista de preços pela qual você está olhando o menu e o preço dele no catálogo, mais a contagem de preços de opções de modificadores fixados nessa lista. Aparece junto com os demais para você ver todas as diferenças num só lugar, mas se corrige na [lista de preços](/pt/manuals/backoffice/price-lists), não no menu.
</Info>

<Note>
  **A aba Overrides só aparece nos menus custom.** O Golden não herda de ninguém, então não tem diferenças para mostrar.
</Note>

As sugestões de **upselling** e **cross-selling** aparecem na linha do produto, mas são somente leitura: hoje são sempre herdadas do produto e não podem ser alteradas por menu.

***

## As duas lentes: preços e dia

Dois seletores acima do editor que mudam **o que você vê**, não o que o menu é.

### Prices from — a lente de preços

Mostra os preços da lista que você escolher, e deixa editá-los ali mesmo sem sair do menu. Útil para revisar o cardápio com os olhos do canal: *"é assim que o menu de delivery fica com a lista de delivery"*.

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/menus/05-lente-precios.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=524b37cdde1c85760d199203ef71ece6" alt="O seletor Prices from aberto, com a lente de dia sobre a estrutura do menu" width="3200" height="2000" data-path="images/manuals/backoffice/menus/05-lente-precios.png" />
</Frame>

Se a lista escolhida estiver conectada a outra, cada célula mostra sua marca — **Formula** ou **Fixed** — e no topo a contagem de quantas há de cada uma.

<Warning>
  **Trocar de lente com preços não salvos descarta esses preços.** Aparece o aviso *Unsaved prices* e a única saída é **Discard and switch**. Salve antes de mudar de lista.
</Warning>

<Info>
  **O que a lente não faz: não muda a lista do menu.** Olhar os preços de outra lista não reatribui nada. Que lista cada loja usa é decidido em [Atribuição de menus](/pt/manuals/backoffice/menu-assignments).
</Info>

### Day — a lente de dia

**Day** e **Time** filtram a visão para mostrar como fica o cardápio naquele dia e naquele horário. As categorias com horário próprio que não cobrem aquele momento somem, e no topo aparece quantas ficaram *hidden by schedule*.

É **só um filtro**: não edita horários nem muda o menu. Os horários são cadastrados nas categorias e nos produtos, não aqui.

***

## O preço não vive no menu

<Info>
  **Um menu diz o que se vende e em que ordem. Nunca quanto custa.** O preço vive nas [listas de preços](/pt/manuals/backoffice/price-lists), e o que vale sai da lista atribuída àquela loja e àquele canal.

  Por isso duas lojas podem usar exatamente o mesmo menu e cobrar diferente: mesmo menu, lista diferente. E por isso subir um preço não exige mexer em nenhum menu.
</Info>

***

## Um menu não vende até ser atribuído

Você terminou de montar o menu, salvou, e não aconteceu nada. Está certo: **salvar não publica**.

Um menu só entra em venda quando alguém diz em que loja, em que canal e para que fulfillment ele é usado, e aperta **Sync**. Isso acontece em [Atribuição de menus](/pt/manuals/backoffice/menu-assignments), que é também onde se resolvem os avisos de **sync pending** e **sync failed** que você vê na lista.

***

## Receitas: como os casos reais se resolvem

<AccordionGroup>
  <Accordion title="Montar o cardápio da madrugada">
    Depois das 22:00 a cozinha trabalha com meia brigada e não dá conta do cardápio inteiro.

    1. **Criar menu custom**. Nome: *Madrugada*.
    2. **Base menu**: **Golden Menu** — começa com tudo e você tira o que não cabe.
    3. **Fulfillment type**: o que corresponder. Confira duas vezes: não muda depois.
    4. Em **Structure**, use **Remove from menu** em tudo o que a cozinha não consegue fazer à noite.
    5. **Save draft**.
    6. Vá em **Atribuição de menus** e atribua às lojas que abrem de madrugada.

    Os produtos que ficaram continuam herdando do Golden: se amanhã mudar o cadastro de um deles, o menu da madrugada fica sabendo sozinho.
  </Accordion>

  <Accordion title="Abrir uma loja de aeroporto com cardápio reduzido e preços mais altos">
    São duas coisas diferentes e se resolvem em duas telas diferentes.

    1. **O cardápio**: crie um menu custom que herde do Golden e tire o que não vende no aeroporto.
    2. **Os preços**: crie uma [lista de preços](/pt/manuals/backoffice/price-lists) conectada à base, com `=P*1.15`.
    3. Em **Atribuição de menus**, dê à loja do aeroporto **esse menu e essa lista**.

    Não é preciso mexer em preços dentro do menu. São eixos independentes de propósito: o mesmo menu pode conviver com cinco listas diferentes.
  </Accordion>

  <Accordion title="Tirar um produto do delivery sem mexer no salão">
    O milanesa chega frio e decidiram parar de vendê-lo por delivery.

    1. Abra o **menu custom de delivery** (não o Golden: o salão fica como está).
    2. Encontre o produto e use **Remove from menu**.
    3. **Save draft**.
    4. Em **Atribuição de menus**, sincronize as linhas que usam esse menu.

    No Golden o produto segue intacto, e portanto o salão continua vendendo. Se depois você mudar de ideia, ele está na aba **Removed** do diálogo de adicionar, com **Restore**.
  </Accordion>

  <Accordion title="Abrir uma marca nova que não compartilha nada com a atual">
    1. **Criar menu custom** com **Base menu → No parent (empty menu)**.
    2. Adicione as categorias com **Add category** e os produtos com **Add**.
    3. Ajuste a ordem arrastando.
    4. **Save draft** e atribua na outra tela.

    Este menu não herda de ninguém: o que entrar no catálogo amanhã **não** vai aparecer aqui sozinho. É a contrapartida de começar vazio, e é a razão para escolher esta opção só quando realmente não há nada a compartilhar.
  </Accordion>

  <Accordion title="Preparar o cardápio para um agregador">
    Um agregador costuma querer menos produtos e fotos próprias.

    1. Crie um menu custom que herde do **Golden**, com o fulfillment que corresponder.
    2. Tire os produtos que não entram nesse canal.
    3. Onde for preciso outra foto ou um nome mais comercial, edite: eles ficam com o chip **Override** e **não mexem no cadastro original**.
    4. Os preços, à parte: uma lista conectada à base que compense a comissão.
    5. Atribua menu e lista às linhas desse canal, e sincronize.

    Tudo o que você não mudou continua herdando. No dia em que você subir uma foto nova no catálogo, este menu a pega sozinho — exceto nos produtos onde você colocou uma própria.
  </Accordion>
</AccordionGroup>

***

## Erros que saem caro

<Warning>
  **Escolher o fulfillment errado ao criar o menu.** Não dá para corrigir. É preciso criar outro menu e montar tudo de novo.
</Warning>

<Warning>
  **Sair do editor com alterações não salvas.** Não há nenhuma pergunta na saída: o trabalho se perde em silêncio. O chip **Unsaved changes** é o único aviso.
</Warning>

<Warning>
  **Usar Remove from menu para um produto que acabou hoje.** Tirar é uma decisão de cardápio e fica assim até alguém restaurar na mão. Para o temporário existe [Esgotados](/pt/manuals/backoffice/out-of-stock), que volta sozinho.
</Warning>

<Warning>
  **Achar que salvar o menu o publica.** Salvar deixa a estrutura em dia; o canal não fica sabendo de nada até alguém sincronizar em [Atribuição de menus](/pt/manuals/backoffice/menu-assignments).
</Warning>

<Warning>
  **Começar com No parent (empty menu) por costume.** Um menu sem pai não herda: os produtos novos do catálogo nunca vão aparecer sozinhos, e seis meses depois o cardápio está incompleto sem nada avisar.
</Warning>

***

## Glossário

| Termo           | O que significa                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------- |
| **Golden**      | O menu do catálogo. É criado sozinho, contém tudo e não é excluído.                                |
| **Custom**      | Um menu que herda de outro e guarda só as diferenças.                                              |
| **Base menu**   | De quem um menu custom herda. Escolhido na criação.                                                |
| **Fulfillment** | O tipo de entrega para o qual o menu serve. Escolhido uma vez, e definitivo.                       |
| **Override**    | Um campo que neste menu vale diferente do pai. Marcado com um chip azul.                           |
| **Reset**       | Devolver um override ao valor do pai.                                                              |
| **Removed**     | Um produto tirado do menu por completo. Recuperado com **Restore**.                                |
| **Hidden**      | Um produto que segue no menu mas não é exibido. Recuperado com **Show**.                           |
| **Lente**       | Um seletor que muda o que você vê — preços de outra lista, um dia e um horário — sem mudar o menu. |
| **Snapshot**    | A foto da estrutura do menu. Regenera sozinha toda vez que você salva.                             |

***

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Salvei o menu e no app não mudou nada">
    Salvar não publica. O canal recebe o menu só quando alguém sincroniza a linha correspondente em [Atribuição de menus](/pt/manuals/backoffice/menu-assignments).
  </Accordion>

  <Accordion title="Errei o fulfillment, como mudo?">
    Não dá. O campo é definitivo a partir do momento em que o menu é criado. A saída é criar outro menu com o fulfillment certo e montá-lo de novo.
  </Accordion>

  <Accordion title="Adicionei um produto ao catálogo e ele não aparece no meu menu custom">
    Verifique de quem esse menu herda. Se ele nasceu com **No parent (empty menu)**, não herda de ninguém e os produtos novos precisam ser adicionados na mão com **Add**. Se herda do Golden, deveria aparecer sozinho; se não está lá, veja se alguém o tirou com **Remove from menu** — ele estará na aba **Removed**, com **Restore**.
  </Accordion>

  <Accordion title="Posso ter dois menus de delivery?">
    Pode. Um vendor pode ter vários menus para o mesmo fulfillment: um por faixa de horário, por zona ou por marca. O que não existe é um menu que sirva para dois fulfillments ao mesmo tempo — para isso existe o Golden, que não tem nenhum atribuído.
  </Accordion>

  <Accordion title="Por que não consigo excluir o menu Golden?">
    Porque ele é o catálogo. É onde aterrissam os produtos que você cadastra e o ponto de partida do qual os outros menus herdam. Excluí-lo deixaria os custom herdando do nada.
  </Accordion>
</AccordionGroup>

***

## O que vem por aí

* **A aba History**, hoje vazia. O banner já antecipa o alcance: eventos de publicação, overrides, estrutura e atribuições, com a auditoria completa planejada para uma segunda etapa.
* **Duplicar um menu** e **ver o JSON dele** — as ações estão no menu do editor, ainda desabilitadas.
* **Horários do menu** a partir desta tela: hoje a lente de dia só filtra, e os horários são cadastrados em categorias e produtos.
* **Sugestões por menu**: hoje o upselling e o cross-selling são sempre herdados do produto e não podem ser alterados para um menu específico.
