Discounts — New Engine
New Engine
This section covers discounts in the New Engine (2023+), where a Discount is a standalone entity and Coupons are optional activation codes attached to it. For the legacy engine, see Discounts — Legacy Engine.
What is the Discount module?
The Discount module is Loyal Guru's promotional engine. It gives commercial and marketing teams complete control over every type of price promotion — from automatic club prices and mass leaflet offers to personalized win-back vouchers — independently of the POS or e-commerce checkout system.
A Discount is configured once (what benefit, under what conditions, for whom). At checkout, Loyal Guru evaluates all active discounts against the cart. How that evaluation translates into the final price depends on the integration scope contracted:
- LG as promo engine — Loyal Guru evaluates the discount and modifies the cart line values directly in the API response. The POS applies the returned prices as-is.
- POS as promo engine — Loyal Guru evaluates the discount and tells the POS which discounts apply and to whom, providing all the data needed (product IDs, conditions, rule details) so the POS can apply them correctly on its side.
In both cases, Loyal Guru is the source of truth for which discount applies and to which customer. The difference is only in who performs the final price calculation.
What you can do
| Campaign type | Example |
|---|---|
| Mass automatic | 10% off all products every Saturday for everyone — no code, no delivery |
| Club price | Loyalty members pay €1.49 for Product X; non-members pay €1.99 |
| Cart threshold | Spend over €100 → €15 off total, applied automatically |
| Category booster | 30% off all organic products every Tuesday for Gold members |
| BOGO / NxM | Buy 2 get 1 free on Coca-Cola when 3+ units are in the cart |
| Bundle price | Add Product A + Product B to the same cart → fixed combo price of €35 |
| Win-back voucher | Customers inactive 90+ days receive a unique 20% off code via campaign |
| Shared coupon | Broadcast SUMMER20 via email — any eligible customer can apply it |
| Payment incentive | Extra 5% discount for customers paying with the co-branded credit card |
Three levels of personalization
Every discount is configured for one of three audience levels. The level determines both who receives the discount and how it is delivered:
| Level | Audience | How it is applied | Coupon / Voucher needed? |
|---|---|---|---|
| All members (mass) | Every customer, enrolled or not | Automatically at checkout — no code, no delivery step | No |
| Loyalty members (club) | Enrolled loyalty club members only | Automatically at checkout for enrolled members | No |
| Personalized (targeted) | A specific audience segment | Via a Voucher (unique per-customer code) that links the customer to the discount | Yes — always |
Personalized discounts always require a Voucher
When a discount is targeted at a specific audience, it cannot apply automatically — it has no way to identify which customers should receive it at checkout unless they present a code. The Voucher is the Customer ↔ Discount relationship. It is created either by a Targeted Delivery campaign or by calling the trigger endpoint directly.
How to deliver a personalized discount
There are two ways to assign a discount to a specific customer:
| Method | When to use | How it works |
|---|---|---|
| Targeted Delivery campaign | Batch delivery to a segment | Build an Audience, launch a Targeted Delivery — Loyal Guru generates one Voucher per customer and delivers it via the configured channel (in-app, email, SMS) |
Trigger endpoint (POST /discounts/trigger) | Single-customer, API-driven | Call the endpoint directly to assign the discount to one specific customer immediately — no campaign UI needed |
How It Works
- Create the Discount — define the benefit (type, value), the conditions (products, cart, store), and the personalization level (all members, loyalty members, or personalized).
- Deliver (if personalized) — via a Targeted Delivery campaign or the trigger endpoint. Loyal Guru creates a Voucher linking that customer to the discount.
- Evaluate at checkout — when a purchase is submitted via
POST /carts/realtime, Loyal Guru evaluates all active discounts against the cart and returns the result:- LG as promo engine (
apply_discounts: true): line values are modified in the response — the POS applies them directly. - POS as promo engine (
apply_discounts: false): Loyal Guru returns which discounts apply and all the data needed for the POS to calculate and apply them correctly on its side.
- LG as promo engine (
- Stackability — priority and stackability rules determine which discounts apply when multiple compete for the same cart.
Configuration
Go to Loyalty and Promotional engine → Discounts → New Discount in the Owner App. The creation flow has three steps:
- General — name, description, active dates, and personalization level (all members, loyalty members, or personalized/targeted).
- Conditions — product scope, cart conditions, customer conditions.
- Effect — discount type, value, and redemption method (automatic for mass/club; Voucher for personalized).
For the full step-by-step guide, see Create a Discount Campaign.
In this section
| Page | Description |
|---|---|
| Discount Types | Percentage, fixed amount, BOGO, tiered quantity, combo price |
| Create a Discount Campaign | Creation flow: Description → Conditions → Effects → Limits → Stackability |
| Simulate and Apply Discounts | Use POST /carts/simulate as a calculator and POST /carts/realtime to apply discounts |
| Coupon Management | Universal codes, per-customer vouchers, and auto-selection |
| Stackability & Priority | Exclusive flags and promotion ordering |
| Limits | Global caps, per-customer limits, and budget controls |
| Campaigns API | Create and update discount campaigns via Streaming API |
| Integrations | Reading from GET and JSON rules for integration teams |