Skip to main content
Você tem o menu montado e a lista de preços pronta. Nada disso vende ainda: falta dizer em que loja, em que canal e para que tipo de entrega eles são usados. Essa decisão é esta tela, e é também onde se aperta o botão que envia o cardápio ao canal. Vá em Restaurant OS → Menu e Produtos → Atribuição de menus.
Matriz de atribuição de menus por loja, canal e fulfillment

O mínimo que você precisa saber

1. A unidade é a linha: loja × canal × fulfillment. Uma linha para cada combinação possível. A mesma loja aparece várias vezes, uma por canal e tipo de entrega que atende.2. Uma linha precisa de menu e de lista de preços. Com só um deles não dá para sincronizar: o botão fica desabilitado.3. Atribuir não publica. Publicar é o Sync. E o Sync envia o que existe naquele momento, não o que existia quando você atribuiu.

O caminho simples

Você abriu uma loja nova e ela precisa começar a vender:
  1. Filtre por essa loja com o seletor Store.
  2. Em cada linha que interessa, Assign menu.
  3. Na mesma linha, Assign list.
  4. Selecione as linhas e Sync.
O status vira Pending, e quando o canal confirma fica em Synced. É isso.
Se a sua operação é uma loja e um canal, você já terminou. O resto do manual é para quando são quarenta lojas e todas têm que mudar no mesmo dia.

A matriz: uma linha por combinação

Cada linha é um destino real de venda. Estas são as suas colunas: No topo há sete filtros — loja, grupo, canal, fulfillment, menu, lista e status de sync — e uma busca que entra por nome de loja, de menu ou de canal. Com quarenta lojas e cinco canais a matriz tem duzentas linhas: os filtros não são enfeite.
Para que servem os grupos de lojas. Um grupo permite filtrar de uma vez todas as lojas de uma região, uma marca ou um formato, e atribuir a elas o mesmo menu numa única operação. Sem grupos, mudar o menu de delivery de uma região é marcar lojas na mão e errar em uma.

Atribuir em bloco

Marque várias linhas com as caixas de seleção e a barra de ações em massa aparece: Assign menu, Assign list e Sync, com a contagem do que está selecionado.
Barra de ações em massa com linhas selecionadas
O diálogo sempre diz a quantas combinações a mudança vai se aplicar antes de você confirmar.
Diálogo de atribuição de menu
Também serve para o contrário: Remove assignment tira o menu ou a lista das linhas selecionadas. Uma linha sem menu deixa de poder ser sincronizada, mas conserva o último achatado que já tinha enviado. Dá para mexer em até 200 combinações de uma só vez.

A regra do fulfillment

O diálogo de atribuir menu não mostra todos os menus. Só os que servem para o fulfillment daquela linha, mais os agnósticos — o Golden, que serve para todos. É o mesmo critério que faz o fulfillment de um menu ser definitivo: um menu de delivery numa linha de salão não significa nada.
Se você selecionou linhas com fulfillments misturados, só vai ver o Golden. A tela avisa: “The selection mixes fulfillment types: only agnostic menus (Golden) can be assigned.”Não é um erro da tela: é que não existe menu custom que sirva para dois fulfillments. Se você queria atribuir o seu menu de delivery, filtre antes por Fulfillment e trabalhe um tipo por vez.

Sincronizar: o que acontece de verdade

O Sync faz três coisas, nesta ordem:
  1. Achata o menu. Pega a estrutura do menu, aplica os preços da lista atribuída e monta um cardápio plano, sem heranças nem fórmulas: a lista literal do que se vende e por quanto.
  2. Envia ao canal. O status vira Pending.
  3. Espera a confirmação. O canal responde depois, no tempo dele, e o status fica em Synced ou Failed.
Os quatro estados de sincronização na coluna Sync
Enquanto houver linhas em Pending, a tela se atualiza sozinha a cada quinze segundos. Não precisa recarregar nem ficar olhando: pode sair e voltar. O botão fica desabilitado — “Assign a menu and a price list first” — enquanto faltar o menu ou a lista na linha. É de propósito: sem lista, todos os preços sairiam em zero.

O achatado é de agora, não de ontem

Não há versões. O Sync envia o estado atual. Ele pega o menu e a lista exatamente como estão salvos naquele segundo. Não existe “publicar a versão de segunda” nem voltar a um achatado anterior.Isso tem uma consequência prática que vale ter em mente: se alguém deixou o menu pela metade, é isso que sai. Antes de sincronizar em bloco, vale confirmar que o menu está como deveria.
O contrário também é verdade, e é a parte confortável: não é preciso “republicar o menu” depois de mudar um preço. A próxima sincronização daquela linha já leva o preço novo, porque lê a lista na hora.

Sincronizou, mas algo ficou de fora

Uma linha pode terminar em Synced e ainda assim ter deixado coisas pelo caminho. Quando isso acontece, aparece um chip de avisos na coluna Sync.
O primeiro é o que leva vendas em silêncio. O sync diz Synced, o menu chegou ao canal, e aquele produto simplesmente não está no cardápio que o cliente vê. Ninguém recebe um erro: é preciso abrir os avisos para ficar sabendo.Resolve-se colocando preço no produto na lista atribuída àquela linha e sincronizando de novo.

Os lotes: 50 por vez, um de cada vez

Dá para selecionar quantas linhas você quiser, mas cada envio processa no máximo 50. Se você selecionou 120, as primeiras 50 são enviadas e a tela avisa: “Syncing the first 50 rows; 70 left for the next round”. Além disso, o canal processa um lote por vendor de cada vez. Se há um envio em andamento, o seguinte espera. Não é uma limitação caprichosa: achatar um menu é caro, e mandar duzentos cardápios de uma vez termina em timeouts e sincronizações pela metade, o que é pior do que ir por lotes.
Se você vai sincronizar muitas linhas, faça em lotes organizados — por região, por canal — em vez de selecionar tudo. Quando algo falhar, você vai saber exatamente qual grupo revisar.
As linhas selecionadas às quais falta menu ou lista são puladas sozinhas, e a tela diz quantas foram.

Ver exatamente o que foi enviado

O botão do olho, View sync preview, abre o último achatado daquela linha. É a única forma de responder com certeza “o que o canal recebeu?”.
Pré-visualização do achatado enviado ao canal
Tem três abas:
  • Menu — o cardápio como ficou: categorias, produtos, preços e modificadores.
  • Snapshot JSON — o mesmo cardápio, cru.
  • Sync payload JSON — exatamente o que foi enviado ao canal.
No topo se lê quando foi gerado. Se a linha nunca foi sincronizada, o botão fica desabilitado: “No snapshot generated yet”. Para uma discussão com um canal — “isso não me chegou” — as duas últimas abas são a prova.

Mudar o preço de um único destino

Existe uma tela à parte, Preços e disponibilidade, para ajustar preços e visibilidade de um destino pontual sem abrir o menu nem a lista inteira. Ela trabalha sobre as linhas que já têm menu e lista atribuídos aqui. Vale conhecer a regra dela, porque não é óbvia:
  • O preço que você muda ali vive na lista, e essa lista pode estar compartilhada por vários destinos.
  • A visibilidade vive no menu, que também pode estar em uso em vários destinos.
  • Mas ao salvar sincroniza só aquela linha. Os demais destinos pegam a mudança no próximo Sync deles.
Ou seja: a mudança já está salva para todos, mas só um publicou. A própria tela avisa isso num quadro antes de salvar.

Receitas: como os casos reais se resolvem

  1. Filtre pela loja com o seletor Store. Vão aparecer as linhas dela, uma por canal e fulfillment.
  2. Selecione todas as que essa loja vai atender.
  3. Assign list com a lista que corresponde a ela.
  4. Assign menu — lembre de filtrar por Fulfillment e fazer um tipo por vez, ou só vai conseguir atribuir o Golden.
  5. Selecione tudo de novo e Sync.
  6. Espere os status irem de Pending a Synced, e veja se alguma linha trouxe avisos.
  1. Filtre por Group com o grupo daquela região e por Fulfillment em delivery.
  2. Selecione todas as linhas.
  3. Assign menu com o menu novo. O diálogo confirma a quantas combinações se aplica.
  4. Sync. Se forem mais de 50, vá por lotes: a tela diz quantas ficaram.
A lista de preços não é tocada: mudar o menu não muda quanto as coisas custam.
  1. Filtre por esse Channel.
  2. Selecione as linhas.
  3. Assign menu → Remove assignment.
As linhas ficam sem menu e não podem mais ser sincronizadas. Atenção: isso não apaga do canal o que já foi enviado — isso se desliga no canal. O que você consegue é que nenhuma mudança futura chegue lá.
Depois de salvar o aumento na lista de preços:
  1. Filtre por Price list com a lista que você mexeu. Aparecem todas as linhas que a usam.
  2. Selecione todas.
  3. Sync, em lotes de 50.
Não é preciso abrir nenhum menu: o achatamento lê a lista na hora e leva os preços novos.
Percorra nesta ordem, que vai do mais comum ao mais raro:
  1. A linha está em Synced? Se está em Failed, a viagem terminou ali.
  2. Há avisos? Se o produto não tem preço na lista atribuída, ele não foi enviado — é a causa mais frequente.
  3. Abra View sync preview → aba Menu. Se o produto não está ali, ele não saiu do Fire.
  4. Abra o menu atribuído. Veja se ele está retirado (Removed) ou oculto (Hidden).
  5. Confira Esgotados. Ele pode estar desligado pela operação do dia.
Se ele aparece na pré-visualização e ainda assim não é visto no app, o problema já não está no Fire.

Uma mudança de preço, seguida de ponta a ponta

Você subiu um produto de 10,90 para 11,99 na lista Delivery. Isto é o que acontece em cada elo: A linha para olhar é a terceira: o status Synced não significa que o publicado está em dia, significa que a última sincronização deu certo. Se você mudou preços depois daquele envio, o canal segue com os anteriores até a próxima.

Erros que saem caro

Mudar o menu ou a lista e não sincronizar. A atribuição fica salva e o canal continua vendendo com o anterior. Synced se refere ao último envio, não ao que há hoje no menu.
Ignorar o chip de avisos. O sync dá certo e mesmo assim há produtos que não chegaram ao canal. O mais caro é o que não tem preço na lista atribuída: ele cai do envio sem ninguém receber um erro.
Sincronizar 200 linhas e supor que todas foram. Vão 50 por vez. A tela avisa quantas ficaram, mas o aviso some: se você não olhar de novo, metade das lojas fica com o menu antigo.
Sincronizar com o menu pela metade. O Sync envia o que está salvo naquele momento, sem versões. Um menu que alguém deixou pela metade é publicado pela metade.
Tirar a atribuição achando que isso baixa o menu do canal. Tirá-la impede que mudanças novas cheguem, mas o último envio segue publicado do lado do canal.

Glossário


Perguntas frequentes

Falta sincronizar. Atribuir só registra qual menu aquela linha usa; o canal fica sabendo quando alguém aperta Sync.
Falta o menu ou a lista de preços na linha. Os dois são necessários: sem lista, todos os preços seriam publicados em zero. O tooltip diz: “Assign a menu and a price list first”.
Você selecionou linhas com fulfillments misturados. Um menu custom serve para um único tipo de entrega, então numa seleção mista o Golden é o único atribuível. Filtre por Fulfillment e faça um tipo por vez.
O canal recusou o envio. Verifique se o menu tem produtos e se a lista tem preços, e sincronize aquela linha sozinha para ver se o erro se repete. No menu você também verá o banner “Sync failed — menu snapshot is outdated”.
Não. Não há versionamento: cada Sync achata o menu e a lista exatamente como estão naquele momento. Para voltar atrás, é preciso desfazer a mudança no menu ou na lista e sincronizar de novo.

O que vem por aí

  • Versionamento dos achatados, para poder republicar um estado anterior sem desfazer mudanças na mão.
  • Status dos canais agregadores: hoje os agregadores recebem seus eventos, mas o resultado não se reflete no status de sincronização que você vê aqui.
  • Lotes maiores: o teto de 50 por envio é uma defesa contra timeouts, não um objetivo.