Offers
Offers is the flexible rules engine for promotions in Paimnt. You define triggers (conditions that must be met) and actions (what happens when those conditions are met). This covers bundles, buy-X-get-Y deals, sale-total discounts, automatic voucher issuance, and more.
Happy Hours and Time Period Promos Apply First: Anything configured in Happy Hours or Time Periods is always applied before any Offer-based discounts. If a product already has a Happy Hours or Time Period promo applied, keep this in mind when configuring your triggers and actions.
[Screenshot: Offers list page showing the full table with Group, Name, Label, Trigger, Actions, Start, End, Available At, Active Periods, Auto, and Enabled columns]
Your created offers display in a table. Use the top-left column selector to hide columns and simplify the view.
Offer Groups
What Offer Groups are and why they are required
Required: You must create at least one Offer Group before you can create an offer.
Offer Groups serve two purposes:
- Best-price logic — offers within the same group compete with each other. The engine picks the combination that gives the customer the lowest price.
- Stacking — offers in different groups stack. Each group applies in sequence, in the order you set.
Within a Group vs Across Groups
Within a group, the engine selects whichever combination results in the best price for the customer. If you want two discounts to both apply regardless (a double discount), they must be in separate groups.
How to set up Offer Groups
Press Manage Groups (top right of the Offers page).
[Screenshot: Manage Groups popup showing existing groups listed with drag handles and a + button to add new groups]
In the popup:
- Press + to create a new group and give it a name
- Drag groups to set their priority order
- Press Save to confirm
Recommended Structure for Most Venues
| Order | Group Name | Purpose |
|---|---|---|
| 1 | Item Discounts | Per-item deals, bundles, and matched-set pricing |
| 2 | Sale Discounts | Whole-of-sale discounts, applied after item discounts are resolved |
| 3 | Voucher Issues | Automatically issue a voucher when a trigger is met |
Why this order matters:
Say you have three offers in Group 1 (Item Discounts): 20% off all beer, a 2 beers + pizza bundle for $35, and buy 1 get 1 free on beer. A customer adds 5 beers and 3 pizzas. The engine works out the best combination: 2x “2 beers + 1 pizza for $35” + 1 beer at 20% off + 1 pizza. Item discounts are now fully resolved and the subtotal lands at around $80.
Group 2 (Sale Discounts) then runs. There is an offer: 10% off sales over $50. The subtotal is $80, so this triggers and a further 10% is applied to the whole sale.
Group 3 (Voucher Issues) runs last. An offer is set: buy 3 pizzas and get a free pizza voucher. The customer bought 3 pizzas, so a 100% off pizza voucher is automatically issued at sale finalisation.
Keeping these in separate groups prevents the engine from evaluating sale-level discounts before item bundles are resolved, and ensures vouchers issue cleanly at the end.
How to create an offer
Press + Create Offer (top right of the Offers page). A 3-panel view opens: General | Trigger | Actions
[Screenshot: Create Offer 3-panel view with the General, Trigger, and Actions tabs visible across the top]
General
[Screenshot: General panel with all fields visible — Name, Label, Group, Start Date, End Date, Automatic toggle, Enabled toggle, Max Uses Per Sale, Places, and Periods]
| Field | Required | Details |
|---|---|---|
| Name | Yes | Internal name for this offer |
| Label | No | Displayed on the POS at the till |
| Group | Yes | Select from your created Offer Groups |
| Start Date | Yes | DD/MM/YYYY HH:MM AM/PM |
| End Date | Yes | DD/MM/YYYY HH:MM AM/PM |
| Automatic | No | See callout below |
| Enabled | No | Default: off. Toggle on to make the offer active. |
| Max Uses Per Sale | No | Limits how many times this offer can apply in a single transaction. E.g. set to 2 for a buy-1-get-1 on alcoholic drinks to prevent over-serving. |
| Places | No | Press + to add: included sites, excluded sites, included locations, excluded locations. Each filter can only be added once but all 4 can coexist. Default: all sites and locations. |
| Periods | No | Press + to add a day-of-week selection and time range (24hr format). Default: all times. |
Automatic vs Manual Offers
| Setting | Behaviour | Use when |
|---|---|---|
| Automatic (ticked) | Fires as soon as the trigger is met — no staff action needed | Self-applying discounts, auto-issued vouchers |
| Manual (unticked) | Requires a Voucher to be applied at the till | Printed vouchers, member vouchers, keyboard-applied discounts |
A Manual Offer must have a Voucher created for it in HQ > Promotions > Vouchers before it can be used at the till.
Example — Places: An offer for “Friday Night Special” can be set to apply only at your city venue (included site) and exclude the takeaway counter (excluded location). All four filter types can coexist on the same offer.
Trigger
[Screenshot: Trigger panel showing the trigger type selector dropdown with available trigger types listed]
Change the Default Trigger Before Saving: Every new offer defaults to a trigger of Always — this must be changed. Never select Never either. Both are engine baseline values that will be updated in a future UI revision.
The trigger defines the condition(s) that must be met for the offer to fire. You have 7 usable trigger types:
| Trigger | What it does |
|---|---|
| Chance | Sets a % probability the action fires |
| Group | Wraps multiple triggers together with AND or OR logic |
| Is Guest | Fires if the customer is not a member |
| Is Member | Fires if the customer is a member |
| Item Matcher | Matches specific products using filters |
| Loyalty Tier | Fires for customers in a specific loyalty tier |
| Sale Value | Fires based on the sale total amount |
Tip — Combining Triggers: Use Group to combine multiple triggers. For example: wrap “Is Member” AND “Chance 60%” in one sub-group, and “Is Guest” AND “Chance 40%” in another, with the outer group set to OR. The action — say, a $20 voucher at end of sale — then fires with a 60% chance for members and a 40% chance for guests.
Chance
Enter a percentage value. That is the probability the action will fire for any qualifying sale.
Example: Set to 50% — half of all sales that meet the other conditions will receive the action.
Group
Wraps multiple conditions together. Set the connection to:
- AND — all conditions must be met to trigger the action
- OR — any one condition is enough to trigger the action
Example (AND): Item Matcher on beer AND Item Matcher on pizza = both must be on the sale (bundle trigger).
Example (OR): Item Matcher on beer OR Item Matcher on pizza = either product alone triggers the action.
Is Guest / Is Member
Use these within a Group trigger to apply different conditions depending on whether the customer is a member or a guest.
Item Matcher
[Screenshot: Item Matcher trigger expanded, showing the Item Filters, Set Condition, and Group By sub-sections]
Item Matcher filters which products are involved in the trigger. It has three sub-sections: Item Filters, Set Condition, and Group By.
Item Filters
Use these to define which products qualify. Multiple filters can be combined:
| Filter | What it does | Included / Not Included |
|---|---|---|
| Tag | Match products by tag (e.g. all items tagged Beer) | Yes |
| Product | Match a specific product | Yes |
| Size | Narrow further by size (e.g. schooner, medium) | Yes |
| Has Instructions | Only triggers if the product has add-ons or modifications | — |
| No Instructions | Only triggers if the product has no modifications | — |
| No Discounts | Only triggers if no discount is already applied to the product | — |
Example — Has Instructions: Offer is “10% off a large pepperoni pizza when extra toppings are added.” Set Item Matcher to: Product = Pepperoni Pizza, Size = Large, Has Instructions. The 10% only fires if extra toppings were added.
Example — No Discounts: Offer is “buy a large pizza and get a free small pizza voucher.” If the large pizza already has a Happy Hours 15% discount applied, you don’t want the free small pizza to also trigger. Add “No Discounts” to prevent the offer firing on an already-discounted pizza.
Tip: The Bulk Tag Products feature in HQ > Products > Product Tags is useful for tagging products in bulk before setting up tag-based filters here.
Set Condition
| Option | When to use |
|---|---|
| None | No quantity condition needed — e.g. 20% off any alcoholic drink |
| Sets of | A specific quantity must be met to trigger — e.g. buy 2 beers to get the discount |
| Min Qty | Minimum quantity required — use when your item filters are already specific enough |
| Min Price | Trigger only if item(s) meet a minimum spend amount |
When using Sets of, configure the following:
| Sub-field | Details |
|---|---|
| Qty per set | The quantity required (e.g. 2) |
| Strategy | How the engine selects which products to discount — see below |
Strategy options:
| Strategy | Behaviour | Example |
|---|---|---|
| Cheapest First | Sorts qualifying products by price ascending and discounts the cheapest first | Buy 6 wines get 10% off — customer buys 8 bottles. The 6 cheapest are discounted. |
| Evenly Distributed | Pairs cheapest and most expensive products into sets and discounts each pair evenly | Buy 6 wines get 10% off — customer buys 8 bottles. Cheap and expensive bottles are paired into sets so the discount spreads evenly. |
Group By
| Option | When to use | Example |
|---|---|---|
| Any | Discount applies broadly across different products with the same tag | 20% off all beer — a Peroni Lager and a Stone and Wood both count toward the trigger quantity |
| Product | Requires the same product in multiples | Buy 2 Peroni Lagers — must be the same SKU, not just any beer |
Loyalty Tier
Press + Add Tier and select from tiers configured in HQ > Customers > Loyalty Tiers.
Set as Included (this tier qualifies for the offer) or Not Included (this tier is excluded).
Sale Value
Set a dollar amount and an operator to define when the trigger fires:
| Operator | Trigger fires when… |
|---|---|
| Equals | Sale total exactly equals the amount |
| Less Than | Sale total is below the amount |
| More Than | Sale total exceeds the amount |
| Less Than or Equals | Sale total is at or below the amount |
| More Than or Equals | Sale total is at or above the amount |
Best Practice: Put Sale Value offers in your “Sale Discounts” Offer Group — separate from item-level offers. This ensures item discounts are fully resolved before the sale total is evaluated.
Actions
[Screenshot: Actions panel with the four action type options visible — Item Discount, Sale Discount, Set Price, Issue Voucher]
Actions define what actually happens when the trigger is met. You have four options:
| Action | What it does |
|---|---|
| Item Discount | Discounts specific matching products |
| Sale Discount | Discounts the entire sale total |
| Set Price | Sets a fixed price for matched items or sets |
| Issue Voucher | Issues a voucher at sale finalisation |
Item Discount
| Field | Required | Details |
|---|---|---|
| Type | Yes | Fixed ($ amount) or Percent (%) |
| Value | Yes | The dollar or percentage amount |
| Discount Qty | No | Limits how many matching items get discounted. Default (blank): all matching items. |
Example — Discount Qty: Offer is “buy 5 coffees, get 1 at 50% off.” Item Matcher has Qty Per Set = 5. If Discount Qty is left blank, all coffees get 50% off once 5 are in the sale — which is not the intention. Set Discount Qty = 1 so only 1 coffee is discounted at 50%.
Item Filters on the Action side work the same as in the Trigger — use them to further narrow which of the matched products actually receive the discount (tag, product, size, has instructions, no instructions, no discounts).
Sale Discount
| Field | Required | Details |
|---|---|---|
| Type | Yes | Fixed ($ amount) or Percent (%) |
| Value | Yes | The dollar or percentage amount |
Set Price
| Source | When to use | Example |
|---|---|---|
| Matched Sets | Bundle pricing for a group of trigger products | 2 beers + 1 pizza set at $35 |
| Matched Items | Flat price per individual matching item | All tap beer schooners set at $8 |
Issue Voucher
Best Practice: Place Issue Voucher actions in a dedicated Voucher Issues Offer Group, separate from your discount groups.
Select from vouchers already created in HQ > Promotions > Vouchers.
Timing: Voucher issuance happens at sale finalisation — not mid-sale when the trigger is first met. The voucher can be configured to print or attach to a member account. Both options are set on the voucher itself — see Vouchers.
Was this page helpful?
Help us keep the docs accurate and useful for your whole team.
