Promotions
Create discount offers and promo codes, and know which orders they apply to.
Where promotions apply
A promotion is an offer with a discount, a validity period and a promo code. You create and manage promotions in the Web admin under CRM.
Online orders only
- Promotions are worked out for online orders: orders customers place themselves. The customer mobile app shows public offers and has a field for the promo code at checkout.
- Promotions are not applied to orders taken in the POS app or in the Web admin. The Coupon Code window in the POS app reads "Coupon functionality coming soon" and its Apply button is switched off.
Create a promotion
You need permission to view promotions.
-
Open the formIn the Web admin, go to CRM > Create Promotion, or go to CRM > All Promotions and click New Promotion.
-
Fill in Basic Information
- Promotion Name: required.
- Promo Code: required for every promotion, also for one that applies automatically. It is turned into capital letters as you type and must be different from the code of every other promotion. If the code is already used, the promotion is not saved.
- Description: optional, for your own use.
- Offer Type: see the table below. The fields in Discount Configuration change with the type.
-
Fill in Discount ConfigurationEnter the discount for the offer type. Minimum Order Value is optional for every type: the offer applies only when the order subtotal reaches it.
-
Set the Validity PeriodValid From and Valid Until are required. They are filled with today and one month from today.
-
Set Status & Visibility
- Active: the offer can apply. Switched on for a new promotion.
- Public: the offer is listed to customers in the customer mobile app. A promotion that is not public can still be used by anyone who has the code.
-
Set Activation
- Trigger: choose Code — customer enters promo code (the default) or Auto — backend applies when eligible. An Auto offer applies by itself to every online order that qualifies.
- Stacking group: decides which offers can combine. See "How offers combine" below.
-
Set TargetingChoose the Audience. Leave it on Everyone unless you want to limit the offer. See the audience table below.
-
Click Create PromotionYou return to the Promotions list with the message "Promotion created successfully."
Offer types
| Offer Type | What you enter | What the customer gets |
|---|---|---|
| Percent Discount | Discount Percent (%), and optionally Max Discount Amount | That percentage off the order subtotal, never more than the maximum |
| Fixed Discount | Discount Amount | That amount off the order subtotal, never more than the subtotal |
| Free Item | Free Item: a menu item | The price of one of that item is taken off, when the item is in the order |
| Free Delivery | Nothing more | The delivery fee is taken off. Put the offer in the Delivery discount stacking group so that the delivery charge on the order is reduced |
| Happy Hour | Discount Percent (%), and under Time window the Start hour (0–23), End hour (0–23) and Days of week | That percentage off the subtotal, only inside the time window. Leave all days off for every day |
| Register Incentive | Discount Percent (%) | That percentage off the subtotal |
| Combo Bundle | Discount Amount (used as the combo price) and Menu item IDs (JSON array) | When every listed item is in the order, the difference between their prices and the combo price is taken off |
| Category Discount | Discount Percent (%) and Category IDs (JSON array) | See the note below |
| Buy X Get Y | Buy Quantity and Get Quantity (Free) | See the note below |
Check these before you announce an offer
- Happy Hour, Register Incentive, Category Discount and Combo Bundle: the discount you type on the Create form is not saved. After creating the promotion, open it with Edit, enter the discount again and click Update Promotion.
- Happy Hour hours are compared with UTC time, not your local time. Shift the hours by your time difference from UTC.
- Category Discount and Buy X Get Y do not take anything off a placed order in this version.
- Combo Bundle needs the internal IDs of the menu items typed as a list. There is no picker.
- Usage is not counted. The Usage column stays at 0, so Max Total Uses and Max Uses Per Customer do not stop an offer from applying.
Audience
| Audience | Who gets the offer on a placed order |
|---|---|
| Everyone | Every online order |
| Guests (not signed in) | Orders with no customer attached |
| New customers (no orders yet) | In this version: every order with a customer attached, whether or not they have ordered before |
| Specific customers | Only the customers whose internal IDs you type in Customer IDs (JSON array). There is no picker |
| Returning customers, Inactive customers (win-back), Specific segment, Birthday month | In this version these do not match any placed order, so the offer is not applied |
How offers combine
When an online order is placed, and again each time items are added to it, Suvaiq works out the discount like this:
- It takes every promotion that is Active and inside its validity period.
- It keeps the Auto offers the order qualifies for, plus the offer whose code the customer entered, if that one qualifies too. To qualify, the order must match the audience, be inside the time window, and reach the Minimum Order Value.
- Within each Stacking group, only the offer with the biggest discount is used.
- Offers from different stacking groups add up.
- If any qualifying offer is in the No stack — exclusive offer group, the biggest of those is used alone and every other offer is dropped.
The total is saved as the order's discount. An offer in the Delivery discount group reduces the delivery charge of a delivery order instead.
| Stacking group | Use it for |
|---|---|
| Subtotal discount (stacks with delivery) | Discounts on the food total. This is the default |
| Delivery discount (stacks with subtotal) | Free delivery offers |
| Item bundle (per-line) | Free item and combo offers that should combine with a subtotal discount |
| Loyalty (always applies) | A separate group that combines with the others |
| No stack — exclusive offer | An offer that must never combine with anything else |
What the customer sees for a code that does not qualify
| Message in the customer app | Reason |
|---|---|
| "Invalid promotion code." | No promotion with trigger Code has that code |
| "This code is no longer valid." | The promotion is inactive or outside its validity period |
| "This code is not available for your account." | The customer is not in the audience |
| "This code isn't active right now." | Outside the time window |
| "Minimum order of ... required for this code." | The cart is below the Minimum Order Value |
| "This code doesn't apply to your current cart." | The offer works out to nothing for the items in the cart |
Manage promotions
In the Web admin, go to CRM > All Promotions. The list shows the code, name, type, discount, validity, usage and status of each promotion. Filter it with Search (name or code), Status and Visibility, then click Search.
| Status | Meaning |
|---|---|
| Active | Switched on and inside its validity period |
| Expired | Switched on, but outside its validity period |
| Inactive | Switched off. It does not apply to any order |
| To | Do this |
|---|---|
| See a promotion | Click the eye button in its row. Promotion Details opens |
| Change a promotion | Click the pencil button in its row, or Edit on the details screen. Make the change and click Update Promotion |
| Switch a promotion off or on | Click the pause or play button in its row, or Deactivate / Activate on the details screen |
| Delete a promotion | Open the details screen, click Delete and confirm |