Skip to main content
In Fire, a COMBO is a product whose price is not fixed in the catalog — it depends on which options the customer selects across its required modifier groups. When you receive a COMBO in a menu.updated event, priceInfo.price is always 0. This is intentional. Fire pre-computes the minimum reachable price and stores it in priceInfo.referencePrice.

Identifying a COMBO in the payload

Look for "type": "COMBO" in data.menu.products:
Never display priceInfo.price for a COMBO — it is always 0. Use priceInfo.referencePrice as the header price.

Modifier overrides

A product can appear in many combos and many menus. In the global products[] list it has a single base price. But when that product acts as a modifier option inside a specific combo, its price within that combo may differ — for example, a medium fries that sells for R$ 8.00 individually might cost R$ 6.40 when bundled in a particular combo. That is what productModifiers[n].overrides is for: it lets each combo declare a different price for any of its modifier options without changing the product’s base catalog price.

Structure

Each entry in overrides targets one modifier option by its productId:
In this example, prod_fries_medium has a base price of R$ 8.00 in products[], but the override sets it to R$ 6.40 for this combo. prod_fries_large is similarly overridden to R$ 8.30.

Resolving the effective price

When processing a modifier option, always check overrides first:
Use the effective price — not the base catalog price — for every calculation: the reference price, the delta display, and the cart total.

Reference price

priceInfo.referencePrice is pre-computed by Fire as the minimum the customer can pay for the combo:
Display this value as the combo’s header price or as “from BRL 99.90” on product cards. Never rely on priceInfo.price for display.

Worked example — Box da Torcida

Customer-facing display logic

Show prices relative to the cheapest option in the group — not the absolute catalog price. This way customers see what a premium option costs on top of the base selection.
Apply this logic only to required groups (minOptions ≥ 1). For optional groups (minOptions = 0), show the full add-on price for each option.

Example — Choose your box (required, pick 1)

The override for prod_tiras_6 (R$ 38.00) is used instead of its base catalog price.

Example — Choose your sauce (required, all same price)

No delta is shown when all options cost the same.

Cart total

The total displayed on the “Add to order” button updates live as the customer makes selections:
Before any premium option is selected, display referencePrice.