Skip to main content
No Fire, um COMBO é um produto cujo preço não é fixo no catálogo — ele depende das opções que o cliente selecionar nos grupos de modificadores obrigatórios. Ao receber um COMBO em um evento menu.updated, priceInfo.price será sempre 0. Isso é intencional. O Fire pré-calcula o preço mínimo alcançável e o armazena em priceInfo.referencePrice.

Identificar um COMBO no payload

Procure "type": "COMBO" dentro de data.menu.products:
Nunca exiba priceInfo.price para um COMBO — ele é sempre 0. Use priceInfo.referencePrice como preço de cabeçalho.

Overrides de modificadores

Um produto pode aparecer em vários combos e vários menus. Na lista global products[] ele possui um único preço base. Mas quando esse produto atua como opção de modificador dentro de um combo específico, seu preço naquele combo pode ser diferente — por exemplo, uma batata média que custa R$ 8,00 individualmente pode custar R$ 6,40 quando incluída em um determinado combo. É para isso que serve productModifiers[n].overrides: ele permite que cada combo declare um preço diferente para qualquer uma de suas opções de modificador sem alterar o preço base do produto no catálogo.

Estrutura

Cada entrada em overrides aponta para uma opção de modificador pelo seu productId:
Neste exemplo, prod_batata_media tem preço base de R$ 8,00 em products[], mas o override define R$ 6,40 para este combo. prod_batata_grande também é sobrescrito para R$ 8,30.

Resolvendo o preço efetivo

Ao processar uma opção de modificador, sempre verifique overrides primeiro:
Use o preço efetivo — não o preço base do catálogo — em todos os cálculos: preço de referência, exibição do delta e total do carrinho.

Preço de referência

priceInfo.referencePrice é pré-calculado pelo Fire como o mínimo que o cliente pode pagar pelo combo:
Exiba este valor como o preço principal do combo ou como “a partir de R$ 99,90” nos cards de produto. Nunca use priceInfo.price para exibição.

Exemplo — Box da Torcida

Lógica de exibição para o cliente

Exiba os preços relativos à opção mais barata do grupo — não o preço absoluto do catálogo. Assim, o cliente vê quanto custa uma opção premium além da seleção base.
Aplique esta lógica apenas aos grupos obrigatórios (minOptions ≥ 1). Para grupos opcionais (minOptions = 0), exiba o preço cheio do add-on para cada opção.

Exemplo — Escolha seu box (obrigatório, escolha 1)

O override para prod_tiras_6 (R$ 38,00) é usado no lugar do seu preço base no catálogo.

Exemplo — Escolha seu molho (obrigatório, todos com mesmo preço)

Nenhum delta é exibido quando todas as opções têm o mesmo preço.

Total do carrinho

O total exibido no botão “Adicionar ao pedido” atualiza em tempo real conforme o cliente faz suas seleções:
Antes de qualquer opção premium ser selecionada, exiba preçoReferência.