All guides

Coupons & Discounts

Create fixed and percentage promo codes, set usage limits and expiry, see how customers apply them at checkout, and read redemption performance.

11 min read

What coupons are and why they matter

  • Coupons (also called promo codes) are short codes like WELCOME10 or EID25 that your customers type into your store's cart to get a discount. You create and own them inside your store's Coupons section, and the discount is applied automatically the moment a valid code is entered. They are the single most effective lever you have for converting browsers into buyers, rewarding repeat customers, and running time-boxed campaigns (a weekend sale, a launch offer, an influencer code).

  • Two things make ScaanMe coupons safe to rely on. First, each code is scoped to one store — a coupon you make for your bakery store can never be used on another store, and the same code can mean different things in two different stores you own. Second, the discount is recalculated on the server at the moment the order is placed; the customer's browser only ever sends the *code*, never a discount amount, so a code can never be tampered with to over-discount an order.

  • Coupons are a plan feature. The Coupons section only appears for stores on a plan that includes the store_coupons entitlement — if your plan does not grant it, you will see a message like "Coupons are not available on your plan" and be returned to the store editor. If you expect coupons and do not see the menu item, upgrade your plan or contact support to confirm your entitlement before building a campaign around codes.

Open the Coupons section

  • Where it lives. Coupons are managed per store, not globally. Open the store you want to add codes to, then look in the left Store Settings menu for Coupons. The page has two parts stacked vertically: a Create Coupon form at the top and a Your Coupons table below it listing every code you have already made for this store.

  • If you only own one store the link takes you straight there. If you own several stores, double-check the store name at the top of the editor before creating a code — because coupons are store-scoped, a SUMMER20 you intend for Store A does nothing in Store B unless you create it there too. There is no "copy coupon to another store" action, so plan to recreate shared codes in each store deliberately.

Create a coupon, field by field

  • What this form does. The Create Coupon form turns one row of inputs into a live, ready-to-use code. Every new coupon starts Active automatically, so the moment you click Create Coupon the code works in your storefront — there is no separate "publish" step. Fill the six fields below, then press the blue Create Coupon button at the bottom right.

  • 1) Code (required). This is exactly what the customer types, up to 64 characters. Matching is case-insensitive, so welcome10, Welcome10 and WELCOME10 are treated as the same code at checkout — but it is stored exactly as you type it, so type it in clean uppercase for a tidy display. Keep codes short, memorable and free of confusing characters (avoid O vs 0, l vs 1). The code must be unique within this store; if you try to reuse one, you'll get "A coupon with this code already exists."

  • 2) Discount Type (required). Choose Fixed Amount or Percentage. *Fixed* subtracts a flat amount in your store's currency (e.g. 25 off). *Percentage* subtracts a share of the cart subtotal (e.g. 10% off). Use Fixed when you want a predictable cost per redemption and a clear "X off" message; use Percentage when you want bigger baskets to get proportionally bigger discounts. This choice changes how the next field is interpreted, so set it before typing the value.

  • 3) Discount Value (required). For a Fixed coupon, type the amount to subtract (e.g. 25). For a Percentage coupon, type the percent (e.g. 10 for 10%). Percentage values are automatically clamped to 0–100 — if you enter 150 it is saved as 100. Decimals are allowed (step 0.01). Note an important safety rule: a discount can never push an order below zero — if a fixed coupon is larger than the subtotal, it simply reduces that order to free rather than producing a negative total.

  • 4) Minimum Order (optional). The smallest cart subtotal required for the code to apply, in your store currency. Leave it blank or 0 for no minimum. This is your main tool to protect margins and lift average order value — e.g. set a 10-off code's minimum to 60 so it never erodes tiny orders. The minimum is checked against the *subtotal of products only*; delivery fees are added after the discount, so they do not help a cart clear the minimum.

  • 5) Max Uses (optional). The total number of redemptions allowed across all customers combined — not per customer. Leave it blank for unlimited (the placeholder literally says "Unlimited"). Set a number to cap a campaign: e.g. "first 50 orders get the deal." Once the used count reaches this limit the code stops working for everyone. There is currently no *per-customer* limit, so a single customer could in theory use a code repeatedly until the shared cap is hit — keep that in mind for high-value codes.

  • 6) Expires At (optional). Pick a calendar date after which the code stops working; leave it blank for a code that never expires. Expiry is evaluated at the moment of use, so a code is valid up to and including its expiry day and becomes invalid once that date has passed. Always set an expiry on seasonal or promotional codes — an undated "launch" code that leaks online can keep discounting orders for months.

  • Click Create Coupon. On success you'll see "Coupon created." and the code appears at the top of the Your Coupons table, already Active. If you instead see a red error, read it: a duplicate code, a missing required field, or the plan message all return you to this page with the reason. Fix the flagged field and submit again — nothing is saved until the success message appears.

Manage your coupons (the list)

  • Reading the table. Each row shows the Code, the Discount (percentages display with a %, fixed amounts as a plain number), the Min Order (a dash means none), Uses, Expires (a dash means never), a Status badge, and the Actions buttons. Newest coupons appear at the top. This table is your single source of truth for what is live in the store right now.

  • Reading the Uses column. This is where you read performance. It shows the redemption count, and when you set a Max Uses it shows it as used / limit (for example 12 / 100). A code at 0 has never converted — revisit the discount, the minimum, or how you're promoting it. A code racing toward its limit is a winner worth extending or restocking. Because the count only increments when an order is actually placed, it is a clean signal of real conversions, not just people typing the code.

  • Toggle (pause/resume). The Toggle button flips a code between Active (green badge) and Disabled (red badge) instantly, without a page reload. Disabling is the safe way to pause a code without losing its history or its usage count — a disabled code is immediately rejected at checkout but keeps everything intact so you can switch it back on later. Use Toggle rather than Delete whenever you might run the same promotion again.

  • Delete (permanent). The Delete button removes the coupon for good after a confirmation prompt ("Delete this coupon?"). The row disappears immediately. Deleting frees the code so you could later create a brand-new coupon reusing the same text, but it erases that coupon's usage history. Prefer Disable for anything you want to report on or revive; reserve Delete for typos and abandoned drafts.

How a customer applies a coupon at checkout

  • Where the customer sees it. When your plan grants coupons, the storefront cart shows a Promo code input with an Apply button right above the totals. The customer types the code and taps Apply. If the code is valid for their current cart, a green message confirms it ("Promo code applied.") and a Discount line appears in the totals, showing the code name and the amount subtracted, with the grand total updating live.

  • Helpful rejection messages. If a code doesn't work, the customer gets a reason, not just a failure. They'll see "This promo code is not valid" for an unknown, disabled, expired, or fully-used code; and the specific "This code requires a higher order amount" when the cart subtotal is below the coupon's Minimum Order. That min-order message is intentionally a nudge to add more items — a small but real upsell built into the flow.

  • The discount follows the cart. Because the preview re-checks the code whenever the cart changes, a customer who removes items and drops below the minimum will see the discount fall away automatically, and adding items back restores it. For a percentage code the amount shown grows and shrinks with the subtotal in real time. This keeps the displayed total honest at every step rather than locking in a stale discount.

  • The server has the final word. When the customer confirms the order, the browser sends only the code, and ScaanMe recomputes the discount from your saved coupon against the true subtotal — re-verifying it is active, in date, under its max uses, and meets the minimum — before producing the final total. The applied code and discount amount are recorded on the order, the coupon's usage count is incremented, and the discount appears as its own line in the WhatsApp order message the customer sends you. A discount can never be faked client-side, and a coupon that became invalid between previewing and ordering is simply ignored.

Tips & best practices

  • Protect your margins with Minimum Order. Never ship a fixed-amount coupon without a minimum unless you genuinely intend to discount tiny baskets. A 25-off code with a 100 minimum guarantees you only ever discount profitable orders, and the "requires a higher order amount" message quietly pushes customers to add one more item to qualify.

  • Always date and cap your campaigns. Set both an Expires At and a sensible Max Uses on any public promo. Codes leak — to deal sites, screenshots, and group chats. An expiry plus a usage cap turns an open-ended liability into a controlled, budgetable offer, and the Uses column tells you exactly when you're approaching the limit.

  • Use clear, channel-specific codes. Give each marketing channel its own code — IG15 for Instagram, WHATS15 for your broadcast list, EID25 for a seasonal push. Because the Uses count is per code, this turns coupons into a free attribution tool: the code with the most redemptions tells you which channel actually drives sales.

  • Pause, don't delete, for repeatable promos. If you run the same offer every month or every Eid, Disable the code between runs instead of deleting it. You keep its cumulative usage history, avoid recreating the configuration, and can re-enable it in one tap. Reserve Delete strictly for mistakes you never want to see again.

  • Avoid lookalike codes. Skip characters that are easy to mistype — the letter O next to the number 0, lowercase l next to 1. A customer who can't enter the code blames your store, not their typing. Short, uppercase, alphanumeric codes (SAVE20, NEW10) have the lowest failure rate.

Frequently asked questions

  • Does a percentage coupon discount the delivery fee too? No. The discount applies to the product subtotal only. Delivery is added afterward, so a 10% code takes 10% off the items, not off shipping. This also means a delivery fee never helps a cart reach a coupon's Minimum Order — only the value of the products counts toward that threshold.

  • Can two coupons be combined on one order? No. The cart applies one promo code at a time; entering a new code replaces the previous one rather than stacking. If you want a bigger discount for a specific occasion, create a single coupon with the combined value instead of expecting customers to chain codes.

  • Can a customer use the same code more than once? Max Uses is a store-wide cap, not a per-customer one, so until that shared limit is reached the same person could redeem a code on multiple orders. If you need true one-time-per-person codes, the current best approximations are a low Max Uses, a tight expiry window, or generating several unique single-use-cap codes for a small audience.

  • What happens if the discount is bigger than the cart total? The order is reduced to a minimum of zero — never a negative total. A fixed coupon larger than the subtotal effectively makes the products free (delivery, if any, is still added on top). This is a deliberate safety guard, but it's a reason to pair large fixed coupons with a Minimum Order so they only fire on the baskets you intend.

  • Why isn't my brand-new code working at checkout? Walk the checklist: is it spelled exactly right (it's case-insensitive but otherwise exact)? Is its Status Active in the list? Has its Expires At date passed? Has it hit Max Uses? Is the cart subtotal at or above its Minimum Order? And is it being tried on the same store you created it in? A failure on any one of these produces the rejection the customer sees.

  • Where do I see how well a coupon performed? Open the Coupons section and read the Uses column — it's the live redemption count (shown as used / limit when you set a cap). Each number reflects real orders placed, so comparing codes there tells you which offer and which channel converted best. Remember that deleting a coupon erases this history, so disable rather than delete anything you want to keep measuring.