Skip to main content

Coupons

Code-based promos a customer presents at checkout — typed manually, scanned from a flyer, or pulled from their personal SMS. Two flavours: a shared code anyone can use (e.g. WELCOME10) or a unique-codes campaign that bulk-generates one code per customer. Navigate to POS > Coupons in the dashboard.

Coupons admin page walkthrough video
Coupons admin page walkthrough video

1. Coupons Table

ColumnWhat it means
CodeThe shared code (e.g. WELCOME10) or "Unique Codes" badge for campaigns
NameDisplay label shown in reports and pickers
ValuePercentage or fixed peso amount
Valid Period"From — Until" dates, or "No expiry"
UsageCount vs. total limit (e.g. 42 / 100)
ActiveToggle to disable without deleting

Click the eye icon on any row to open the coupon details page (redemption history + stats).

Coupons admin page with coupon list

2. Shared Code vs Unique Codes

When you tap Add Coupon, the Unique codes per customer switch chooses between two modes:

Shared code (switch OFF — the default)

  • One code that any customer can type at checkout — e.g. WELCOME10
  • Configure a total usage limit and per-customer limit
  • Best for ads, flyers, social posts, in-store signage

Unique codes per customer (switch ON)

  • LaundryVerse generates a separate code for each customer through a CRM campaign
  • Each code is single-use by that customer only — no total limit field, per-customer is locked at 1
  • Best for personalised win-backs, anniversary offers, "we miss you" campaigns
  • Codes are sent via the CRM Campaigns flow

3. Adding a Coupon

Required

FieldDescription
Code(Shared mode only) The string the customer types. Auto-uppercased — WELCOME10, FLAT50
NameDisplay label — e.g. Welcome Discount, Holiday Promo
TypePercentage (%) or Fixed Amount (₱)
ValueNumber that pairs with Type

Optional caps and rules

FieldDescription
Max Discount Amount (₱)Only for percentage types. Caps the absolute discount
Minimum Spend (₱)Required subtotal before the coupon can be redeemed
Valid From / Valid UntilDate range. Leave blank for no expiry
Redeemable DaysTap days to restrict — e.g. Tuesdays only
Total Usage Limit(Shared mode only) Total redemptions across all customers
Per Customer Limit(Shared mode only) Times each customer can use this code
tip

The code is locked after creation — you can't edit it later. If you typo'd, delete the coupon and add a new one. Past redemptions on receipts remain regardless.

Add Coupon form dialog

4. Bulk-Generating Unique Codes via CRM

For a unique-codes coupon, codes are generated in batches from the CRM module:

  1. Go to CRM > Campaigns
  2. Create a campaign and pick the unique-codes coupon as the offer
  3. Select the segment of customers (all, regulars, lapsed, etc.)
  4. Send via SMS — each customer gets their own one-time code

When the customer comes in, the cashier opens the coupon picker on the POS — the customer's personal codes show up in their own section if a customer is attached to the order.

5. Redeeming a Coupon at Checkout

  1. (Recommended) Attach the customer to the order — required for personal codes from a unique-codes campaign
  2. Tap Charge to open the checkout sheet
  3. Tap Apply Coupon in the totals section
  4. The picker shows:
    • Available shared coupons — every active shared code this store accepts today
    • Customer's personal codes — only if a customer is attached and has unredeemed unique codes
  5. Tap a coupon to apply, or tap Enter code manually to type a code directly

Only one coupon can be applied per order.

What blocks a coupon from being applied

ReasonWhat the cashier sees
Coupon is inactive (toggle OFF)Doesn't appear in the picker, manual entry rejects
Today is outside the valid date rangeDoesn't appear, manual entry rejects
Today is not a redeemable dayDoesn't appear, manual entry rejects
Subtotal is below the minimum spendError toast on tap
Total usage limit reached (shared)Error toast on tap
Customer's per-customer limit reachedError toast on tap
Personal code was already redeemedError toast on tap

6. Pause vs Delete

ActionEffect
Active toggle OFF (pause)Coupon stops appearing in the picker and stops accepting manual entry. Past redemptions stay. Flip it back ON anytime to reactivate
Trash icon (delete)Removes the coupon entirely. Use this for typos or test entries. Past redemptions stay on receipts

Pause is reversible — prefer it over delete for any coupon that has redemptions on real receipts.

7. Order of operations

Subtotal → Discounts → Coupons → Loyalty Points → Final Total

A percentage coupon is applied to the post-discount amount. See Discounts for the full calculation order.

What's Next?