Legacy Coupons
:::warning Legacy Engine This section covers discounts in the Legacy Engine (pre-2023). If you are evaluating capabilities or planning a new integration, read the limitations section first β several discount types available in the new engine are not possible here.
For new implementations, see Discounts β New Engine. :::
What is the Coupon in the legacy engine?β
In the legacy engine, the Coupon is the full promotional entity. Unlike the new engine β where the Discount defines the offer and the Coupon is an optional code that gates it β here the Coupon contains everything: the offer definition, the redemption code, conditions, and availability window. There is no standalone Discount object.
Loyal Guru does not act as the real-time discount calculation engine in this model. Loyal Guru validates that the Voucher belongs to the Customer, is active, and matches the Coupon configuration. The POS is responsible for applying the final discount to the cart according to the Coupon fields it receives or has mapped.
| New engine | Legacy engine | |
|---|---|---|
| Offer entity | Discount (standalone) | Coupon (combined offer + code) |
| Code | Optional β Coupon or Voucher attached to a Discount | Always present β it is part of the Coupon itself |
| Mass / club discounts | Yes β automatic, no code needed | No β every offer requires a Coupon sent to each Customer |
| Targeted discounts | Yes β via Coupon or Voucher + Targeted Delivery | Yes β the only supported mode |
| Final price calculation | Loyal Guru can calculate/apply the discount or return the promotion for an external system to calculate | POS applies the discount following Coupon fields |
| Flexibility | High β rich condition builder, stacking, effect types | Limited β simpler configuration |
What you can and cannot doβ
| Campaign type | Legacy engine | New engine |
|---|---|---|
| Send a personalized offer to a segment of Customers | Yes | Yes |
| Apply a discount automatically to all Customers (mass) | No | Yes |
| Apply a discount automatically to all loyalty members (club price) | No | Yes |
| Create a single shared code any Customer can use | No | Yes (Coupon) |
| Bundle / combo pricing | No | Yes |
| Stacking rules | No | Yes |
:::caution Companies needing mass or club discounts If a company wants to apply promotions automatically β without distributing codes β to all Customers or to all loyalty club members, the legacy engine cannot support this. They must upgrade to the new engine, where the Discount entity enables automatic, codeless application to any audience. :::
How It Works (legacy)β
- A Coupon is created under Personalized Offers with the offer details (discount type, value, affectation, payment method rules, conditions, and validity).
- The Coupon is distributed to a specific set of Customers via a campaign.
- Each Customer receives a Voucher β their unique code tied to that Coupon.
- At checkout, the Customer presents the Voucher code. The POS calls
POST /vouchers/redeemto validate and redeem it. - The POS applies the discount to the cart using the Coupon fields. Loyal Guru validates redemption; the POS owns the final price modification.
The key constraint: every offer must go through this Coupon β Voucher β Customer chain. There is no way to make a discount apply automatically without a code.
Types of promotions in the legacy engineβ
| Type | Where | Description |
|---|---|---|
| Personalized Offer | Loyalty and Promotional engine β Personalized Offers | Coupon-based promotion per Customer or segment. The Coupon IS the promo entity. |
| Promotion | Company Data β Promotions | Legacy automatic promotion applied to all Customers buying a qualifying product. No code required. Limited configuration. |
:::info About Promotions (legacy) The Promotion entity in the legacy engine is a simpler automatic promotion β it applies to all Customers buying a matching product without requiring a code. However, it is not the same as the new engine's flexible Discount campaigns: it has very limited condition and effect options and cannot target loyalty members specifically. :::
Pages in this sectionβ
| Page | Description |
|---|---|
| Create a Coupon | Step-by-step Personalized Offers creation flow, including coupon types, award points, and all configuration steps |
| Create a Promotion | Automatic discounts via Company Data β Promotions |
| Redeem a Voucher | POS redemption flow, voucher statuses, and cancellation options |
Special Actionsβ
Special Actions let you automate coupon delivery in response to specific platform events β without requiring a manual campaign. They are configured under Loyalty and Promotional engine β Discounts β Special Actions.
Available triggersβ
| Trigger | When it fires |
|---|---|
| After Create Customer | A new Customer profile is created |
| After First Login | A Customer makes their first login to the retailer's app |
| After Create a Cart / Purchase | A new cart or purchase is created |
Available actionsβ
| Action | What it does |
|---|---|
| Send a Push | Delivers a push notification to the Customer (requires Subject and Message) |
| Deliver a Coupon | Issues a Voucher to the Customer from a pre-existing Coupon |
Coupons must exist before creating a Special Action that references them. Create the coupon first under Personalized Offers, then reference it in the Special Action.
Special Actions are useful for welcome coupons (after sign-up), first-purchase rewards, and other automated lifecycle moments.
Configurationβ
Go to Loyalty and Promotional engine β Personalized Offers in the Owner App.
Limitations vs new engineβ
| Capability | Legacy | New engine |
|---|---|---|
| Discount without a code (automatic) | Promotions entity only (limited) | Full support for all audiences |
| Club pricing (loyalty members only, automatic) | Not possible | Yes |
| Shared coupon code (one code for many) | Not possible | Yes |
| Targeted offer with unique Voucher per Customer | Yes | Yes |
| Rich condition builder (cart, product, store, customer attributes) | Limited | Full |
| Stackability rules | No | Yes |
| Win limits and budgets | Basic | Full |
| Real-time discount calculation (LG modifies line values) | No | Yes |