Articles on: ggLeap

Combo Deals

Combo Deals

Bundle two items and automatically apply a discount at checkout β€” no cashier action required. This article covers how Combo Deals work, setting them up in WebAdmin, discount types, coupon interaction, the POS and ggLeap Client experiences, refunds, post-pay tabs, known limitations, and a full technical and data-model reference.

Combo Deals let you define two groups of items and reward customers for buying one item from each group in the same transaction. The system detects the match on its own β€” the cashier doesn't need to remember anything, press a button, or apply a code. The discount simply appears on the cart.


Overview

The problem Combo Deals solve

Imagine a busy Friday night. A customer buys a two-hour gaming session, then their friend nudges them to grab an energy drink too. That's two separate purchases, with no reward for buying both and no reason to come back and do it again tomorrow.

You know customers who pair a session with a drink stay longer, spend more, and leave happier β€” but until now there was no easy way to encourage that pairing. Combo Deals close that gap: define a Group A and a Group B, and when a customer buys one item from each in the same transaction, they get a discount automatically.

How a Combo Deal works

A combo is built from two groups of items:

  • Group A β€” the "trigger" item. One or more products or offers. The customer picks one of these. Think of it as the main purchase.
  • Group B β€” the "partner" item. One or more products or offers. The customer picks one of these. Think of it as the add-on they're rewarded for.

When the cart contains one item from Group A and one item from Group B, the combo is matched and the discount is applied. The customer doesn't need to know the combo exists β€” it just works.

The backend sorts combos by value β€” highest discount wins first. If the same item qualifies for multiple combos at once, the system always applies the highest-value combo to that item first, so customers always get the best available deal.


Setting up a Combo Deal

Head to Settings β†’ Inventory, select the Combo Deals category in the left panel, then click + Add.

  1. Give it a name (and optionally an icon). The name shows up in the shop β€” keep it short and appealing. Maximum 40 characters. You can also upload an icon from the image library and add a short description.
  2. Build Group A. Click into the Group A search field and start typing. Select one or more products or offers the customer needs to buy to trigger the combo. More options means more customer flexibility β€” the system uses whichever one they actually bought.
  3. Build Group B. Same idea β€” search and select the partner items. The system won't let you add the same item to both groups.
  4. Choose a discount type and value. Pick how the savings are calculated (see Discount types below).
  5. Decide if it stacks with coupons. Tick Allow Multiple if this combo should apply alongside a coupon code in the same transaction. Without it, whichever discount is larger wins and the other is removed. This toggle only affects coupon coexistence β€” all combos still match every qualifying pair in the cart.
  6. Click Add. The combo goes live immediately. No publish step, no restart needed.

Both groups must have at least one item. The Add button stays disabled until Group A and Group B each contain at least one item. A combo with an empty group would never match anything.

Discount types

Type

How it works

Example

Best for

Percentage

Takes a percentage off the combined price of the matched items.

Session $20 + Drink $5 = $25, set to 10% β†’ save $2.50

Flexible pricing

Fixed Price

Sells the pair for exactly the total you set, regardless of individual prices.

Session $20 + Drink $5 β†’ charged $22.00 flat

Bundle promotions

Fixed Amount Off

Deducts the exact currency amount you set, every time.

Session $20 + Drink $5 = $25, set to $3.00 β†’ $22.00

Straightforward deals

The discount is always capped at the combined item price. The backend never produces a negative cart total from a combo. If a discount calculation somehow exceeds the pair's value, it's clamped to the pair price.

Rules the system enforces for you

  • No item can appear in both groups. Prevents a combo from matching against itself.
  • Combos can't contain other combos. Only products and offers are valid group items.
  • Prize items are excluded. Prize items have special pricing and aren't part of regular commerce.
  • Combos have no stock of their own. Stock lives on the underlying items. If either runs out, the combo stops being addable.
  • Guest access is automatic. If a combo contains only products (no game passes), guests can see and buy it. If it includes an offer, guests can't.
  • Combos and coupons compete β€” they don't stack freely. If a coupon is applied and a non-stackable combo also matches, the system keeps whichever discount is larger and removes the other.

Field cheat-sheet

Field

Required

What to put here

Name (max 40 chars)

Yes

What the customer sees. Make it enticing, not technical.

Description

Optional

A short line shown under the combo tile.

Icon

Optional

Chosen from the image library. Helps the combo stand out visually.

Group A & B

Yes

At least one item each. Products and offers only.

Discount Type

Yes

Percentage, Fixed Price, or Fixed Amount Off.

Discount Value

Yes

The number paired with your type. Must be β‰₯ 0.

Allow Multiple

Optional

Controls coupon coexistence. Ticked: applies alongside a coupon. Unticked: the larger of the combo or coupon wins and the other is dropped.


Discounts and coupons

This behaviour catches people off guard, so it's worth understanding before a customer asks.

Non-stackable combos vs. coupons β€” only one wins

When a cart has both a coupon applied and a non-stackable combo matched, the backend compares the two discount amounts and keeps whichever is higher. The smaller one is silently removed. There's no notification to the cashier β€” the cart total simply reflects the winner.

Stackable combos are never removed by a coupon

If a combo has Allow Multiple ticked, it's treated as stackable and always applies alongside a coupon, regardless of the value comparison. Only non-stackable combos compete.

Guests can't use coupons at all. Coupon codes are blocked entirely for guest orders. Combo discounts still apply to guests β€” this restriction only affects coupon codes.


The cashier experience (POS)

Combo Deals appear as their own tiles in the POS shop. The cashier clicks a combo tile to add it β€” the customer never interacts with this interface directly. The shop and the till (cart) are visible on screen at the same time.

Fast path: both groups have exactly one item

No modal opens. The system checks stock and eligibility, then adds both items to the cart directly and applies the discount automatically. Fast, clean, zero friction.

Stock protection is built in. If either item has no stock, the combo won't add and the cashier sees a clear "combo out of stock" message.

Selector modal: one or both groups have multiple items

A modal opens showing Group A on one side and Group B on the other. The cashier picks one item from each. Out-of-stock and ineligible items are clearly badged. Once both groups have a selection, a price summary appears and Add to cart becomes active. Confirming adds both items to the cart.

In the cart

All items appear first. Below them, a combo section shows each matched combo as a two-line card: the combo name and discount amount on top, a "Combo Deal Discount" label and a dismiss icon on the bottom. Dismissing a combo shows a greyed-out "Removed" row with a Reapply button.

Multiple combos in the same transaction each get their own card. The same combo matched twice shows as one card with an Γ—2 count badge.

In order history and receipts

The full combo breakdown is saved on every transaction β€” which items were matched, what the original price was, and how much was saved. This is visible in the transaction details view.


The customer experience (ggLeap Client)

Combos are detected automatically

In the ggLeap Client flow, Combo Deals are not shown as a single selectable package tile and cannot be selected manually. The system detects eligible item combinations from the current cart contents, then shows the combo as a grouped discount in the cart sidebar.

How combos appear in the cart sidebar

Each matched combo is a named group in the cart sidebar. The items are listed inside the group with their prices, followed by the discounted total, a "You save" line, and a quantity control. A delete icon removes the combo group from the cart. The totals section at the bottom shows subtotal, taxes, total savings, and the final total.

Who gets the discount

  • Guests qualify for product-only combos. If the combo contains only products (no game-pass offers), the backend applies it to guest orders too.
  • Offer-based combos are subscribers only. If either group contains a game pass, the combo is skipped entirely for guest transactions.
  • Stock is checked before applying. If an item runs out between when the player added it and when the combo is evaluated, the combo is not applied and the player sees a stock error.


Refunds and post-pay tabs

What happens to the discount when items are refunded

This is important for cashiers to understand before a refund situation comes up at a busy moment.

If a customer bought a session + drink, got a combo discount, then later refunds only the drink, the pair is broken. The backend re-evaluates the remaining item at its full original price, and the combo discount is lost. If both items are refunded, the full original prices (before discount) are used in the refund calculation, so the customer gets back exactly what they paid.


If both items from a combo remain, the discount stays. Partial refunds of other items in the cart don't affect a matched combo. The discount is only lost if one of the two matched items is refunded.

Train cashiers on the refund rule. Refunding one item from a combo pair means the surviving item reverts to full price. Communicate this to the customer before processing a partial refund.

How combos work with post-pay / client orders

Each time an item is added to a post-pay tab, the backend evaluates only that add request for combos. Items added in separate requests do not form a combo at add-time β€” the full picture is only seen at settlement.

For example, a player orders 1 Coke (added to the tab), then later orders 1 Beer that completes a "Beer + Coke" pair. At add-time, each request sees only its own item, so there's no match. When the cashier settles the tab, the backend aggregates all outstanding items into one cart and runs combo detection across the full set. The combo is detected and the discount is applied at checkout.


The discount rate used is whatever is configured at settlement time. Because combo detection re-runs at settlement on the aggregated cart, the discount that applies is the one currently configured on the combo β€” not whatever was set when the individual items were added.


Known limitations

These are real gaps in the current implementation. Knowing them helps you set expectations with your team and avoid workarounds that don't work.

Limitation

Status

Detail

No Quick Sale support

Gap

Combos don't appear in the Quick Sale flow, which is built for rapid single-item transactions. Combo transactions must go through the main shop.

No combo icon in ggLeap Client

Gap

Combo Deal icons aren't visible in the ggLeap Client interface.

No enable / disable toggle

Gap

A combo is always live once created. There's no way to pause it without deleting it. Deleting and recreating loses the original UUID (historical transactions still reference the old one correctly).

No time-based restrictions

Gap

You can't limit a combo to happy hour, weekends, or a date range. Time-windowed promotions must be managed manually.

/

Updated on: 16/06/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!