Auto Combos in Odoo 20 POS: Meal Deals Without the Workarounds

Every restaurant and café has a version of the same order: a burger, a drink and fries should cost less together than separately. Customers expect the deal automatically. Cashiers, historically, have had to remember it, hunt for a special combo button, or apply a manual discount. Get it wrong and you give away margin, overcharge a regular, or hold up the lunch line.

Odoo 20 tackles the problem from the other direction. Instead of forcing staff to start with the combo, the Point of Sale now watches what is already in the cart. The release notes put it in one line: the POS now recommends converting order lines into combos when possible, to simplify menu orders for big tables. The underlying product-combo machinery is documented in detail in the POS product documentation — and in Odoo 20 it becomes automatic at the moment it matters most, in the register.

What a product combo actually is

A product combo in Odoo is a bundle of multiple products sold together as a single unit. Each combo is built from several categories called combo choices, and each combo choice contains several items the customer can pick from. When a customer buys the combo, they select one or more items from each choice.

The documentation's own example is the classic meal deal:

  • Choice 1 — Burger: cheeseburger or bacon burger
  • Choice 2 — Drink: water or soda
  • Choice 3 — Fries: regular or large

The same structure works outside restaurants: a retail starter kit with a choice of device, case and accessory is the same shape — a fixed bundle price with structured choices inside it, defined once in the backend rather than improvised at the till.

Step 1: Create the combo choices

Combos are built bottom-up. You create the choices first, then you assemble them into a combo product.

  1. Create a new combo choice and give it a name — Burger, Drink, Fries, or whatever the customer is choosing between.
  2. Set the Maximum items field: the maximum number of items a customer can select from this choice.
  3. Set how the choice behaves, in one of two ways. Use Includes items to define how many items are included in the combo price — or enable Is Upsell if the choice is optional and offered as an additional paid upgrade.
  4. In a multi-company database, set the Company, or leave it empty to make the choice available to all companies.
  5. Under Options, add a line for each product the customer can choose, and, if needed, set an Extra Price on a specific product.

Two price concepts live on a combo choice, and confusing them is the most common setup mistake:

  • Combo Price is the price charged for any additional product selected beyond the included amount. It applies when Maximum items is set to 2 or more, or when the choice is configured as an optional upsell, and it is calculated automatically based on the least expensive product in the choice.
  • Extra Price is a surcharge for one specific product in the choice — used, for example, to cover a higher-cost option or to encourage upselling. It is applied each time the customer selects that product within the combo choice.

Step 2: Create the combo product

  1. Create a new product and give it the name customers and staff will recognise — “Burger Meal Deal”, for example.
  2. Set the Product Type to Combo and select the relevant combo choices you created.
  3. Add the Sales Price — this is the base price of the deal.
  4. Optionally, open the Point of Sale tab and select the preferred POS category so the combo sits in the right place on the register screen.

Pricing follows a clear rule documented by Odoo: the total price shown in the POS register is based on the Sales Price defined on the combo product's form. That base is then adjusted only by the selections the customer actually makes — selecting several products in a choice, picking a product with an Extra Price, or adding a choice configured as an upsell all affect the final total.

The documentation's worked example makes the arithmetic concrete. The Office Combo has a Sales Price of €300 and a chairs choice — conference chair, office chair and leather armchair — with a maximum selectable amount of 2. Selecting a second chair adds a Combo Price of €35; the armchair carries an Extra Price of €100 because it is leather. Selecting both the conference chair and the armchair costs €435: €300 base, plus €35, plus €100. No summing of shelf prices — the deal price is the deal price, plus only the extras you defined.

If you track stock, note the related rule: to track stock for POS products, the product type must be set to Goods or Combo, with Track Inventory enabled, and products can also be tracked by lot or serial number. A combo is therefore not just a pricing trick — it can be a real stock-tracked product.

The Odoo 20 change: the register finds the deal for you

Predefined combos only help if staff remember to use them. A busy cashier taps Burger, Soda, Fries as three separate products — and until now, that is how the order stayed unless someone noticed and rebuilt it.

In Odoo 20, when all the products that belong to a predefined combo are added to the cart individually, Odoo automatically detects the combo and displays a suggestion for it above the keypad. The workflow at the till is deliberately small:

  1. Ring the items exactly as the customer says them. Do nothing special.
  2. When a matching combo is detected, the suggestion appears above the keypad.
  3. Click Apply to convert the order lines into the combo and apply the combo pricing.
  4. If more than one combo matches what is in the cart, click Choose, pick the appropriate combo, then click Apply.

That is why the release notes single out big tables. On a large restaurant order — six burgers, six drinks, six sides, all tapped in item by item as people shout their orders — nobody has time to audit the cart for missed deals before payment. Auto-detection does the audit continuously, and the cashier makes one decision: apply, or don't.

Editing and undoing a combo at the till

Automatic conversion would be a liability if it locked the order. It does not. The documentation describes two escape hatches staff should be trained on:

  • Change the selection: after a combo has been added to the cart, click and hold the combo item to reopen the selection popover, then adjust which items the customer picked from each choice.
  • Break the combo: select the combo in the cart, click the vertical ellipsis button, and select Break Combo. The combo splits back into its individual products, and the price of each product is adjusted according to its standard Sales Price.

Break Combo matters for the awkward real-world cases: a customer changes their mind and drops the drink, a deal should not apply because one item is being refunded separately, or the wrong combo was applied when several matched. Staff can undo in seconds instead of voiding the order and starting again.

What this replaces: the workarounds and their costs

  • Memory-based selling. “Remember to use the meal-deal button” is not a system. Auto-detection removes the deal from the cashier's memory and puts it in the cart logic, so new and temporary staff sell the deal correctly on their first shift.
  • Manual discounts. A hand-applied discount to “make it the combo price” destroys reporting: you cannot tell which deals sold, the discount percentage varies by cashier, and margin leaks invisibly. A converted combo is a defined product with a defined price.
  • Duplicate shadow products. Many menus accumulate near-duplicate items created only to fake a bundle price. A combo built from real products keeps one record per item, with choices handling the variation.
  • Missed deals on large orders. The bigger the order, the more likely a manual combo is missed — and the more the customer overpays. Detection scales with the cart, not with the cashier's attention.

Getting the most from auto combos

  1. Build combos for deals you actually promote. Detection can only suggest combos that exist, so every advertised deal should exist as a combo product first.
  2. Keep choices tight. Use Maximum items and Includes items to encode the real rules, and reserve Extra Price for genuinely premium options, so the till price matches the menu board.
  3. Use upsell choices deliberately. An upsell choice is optional and paid — the right home for “make it a large” upgrades, priced via Combo Price logic instead of a separate product.
  4. Train the two gestures. Click-and-hold to change a selection, and Break Combo to undo. Staff who know both will trust Apply instead of avoiding it.
  5. Watch for multiple matches. Overlapping combos are legitimate — a lunch deal and a family deal can share items. The Choose step exists for that case; decide in advance which deal your team should prefer.

Auto combos are a small feature with an outsized effect on speed and price accuracy. The deal is defined once, priced once, and in Odoo 20 the register itself makes sure it is not left on the table.

Further reading

Leave a Comment