10 min read

Coupons

Build percentage, fixed-amount, free-shipping, and BOGO discount codes, control who can use them and when, and track redemptions.

A well-timed discount can be the difference between an abandoned cart and a completed sale. The Coupons screen lets you build a promotion in a couple of minutes and see exactly how much it earned you.

Go to Marketing → Coupons.

What you get

  • Four discount types — percentage off, fixed amount off, free shipping, or Buy 1 Get 1 (BOGO).
  • Usage controls — a minimum spend, a total redemption cap, and a per-customer cap, all optional.
  • An active window — a start and end date; the code switches itself on and off, no manual action needed.
  • Vendor scoping (marketplace stores) — tie a coupon to one vendor's products or make it storewide.
  • Live KPIs — active coupons, total redemptions, and total discount given to date, updated as customers redeem.

The discount types

TypeWhat it doesBest for
Percentage offKnocks a percentage off the basket — 10%, 20%, 50%Clearances, seasonal pushes, new-customer welcome codes
Fixed amount offDeducts a flat currency amount from the order totalRewarding high-spend customers, e.g. "₹200 off orders above ₹1,500"
Free shippingRemoves the shipping charge entirelyOne of the highest-converting incentives in online retail
Buy 1 Get 1 (BOGO)Labelled "Buy 1 get 1" in the discount-type picker, described as "Free item when condition is met"Clearing slow-moving stock, driving up basket size

BOGO's backend support is unclear

BOGO appears as a selectable discount type — with its own filter chip and row colour in your coupon list — only in the newer dedicated coupon editor. It still asks you to enter a plain discount value the same way percentage/fixed-amount codes do, with no separate "buy X, get Y" quantity configuration. Treat it as new and unproven: save a test BOGO coupon and check it behaves as expected at checkout before relying on it for a live promotion.

Building a coupon

Start a new coupon

From the Coupons screen, click New coupon. This opens a dedicated coupon editor.

Set the code

Type a memorable code — something like WELCOME20 — or click Generate to get a random code automatically. Codes are automatically uppercased and stripped of spaces. Once a coupon is saved, its code cannot be changed. In the dedicated coupon editor, a status label next to the field updates as you type: checking…, then available or code already in use — fix the code before saving if it comes back taken.

Choose the discount type and value

Pick % off, ₹ off, Free shipping, or Buy 1 get 1. For all but free shipping, enter the discount value (a percentage can't exceed 100%).

Set spend and usage limits

  • Minimum order value — only apply the discount once the basket crosses a threshold, protecting your margins on small orders.
  • Total usage limit — cap how many times the code can be redeemed overall (e.g. first 200 uses).
  • Limit per customer — cap how many times one customer can reuse the code (leave blank for unlimited).

Set the active window

Pick a start date and an end date. Both must be today or later — the platform won't let you schedule a coupon into the past. The code activates and expires automatically at those dates.

Choose whether to promote it on the storefront

Turn on Show on storefront to make an eligible coupon available through the storefront's public coupons API. Then enter an optional Storefront title (up to 120 characters) and Storefront description. These two fields stay disabled until the storefront switch is on. They are customer-facing promotion copy; the coupon code, discount, and eligibility rules still come from the coupon itself. This switch does not add the coupon to a storefront section.

Scope the coupon (marketplace stores only)

If you run a multi-vendor marketplace, store-level admins can scope a coupon to Storewide or to one specific vendor. Vendor users don't see this control — their coupons are scoped to their own products automatically.

Save

Click Save. The coupon appears in your coupon list immediately, active if its start date has already arrived.

Turning Show on storefront off again removes the storefront title and description when you save. Coupons created before this control was added remain private until you opt them in. In the coupon list, an opted-in coupon has an On storefront indicator.

Coming later

Offer cards that list your promoted coupons automatically are coming in a later release.

Why don't customers see this coupon?

Show on storefront does not place a coupon card on a page. Add a /cart?coupon=CODE promotion link to a button or banner, replacing CODE with the saved coupon code. For the public coupons API, also check that Show on storefront is on, the coupon is enabled, its start time has arrived, its end time has not passed, and its total usage limit has not been reached. Scheduled, expired, exhausted, disabled, and storefront-private coupons are omitted from that feed.

Use /cart?coupon=CODE as the destination for any button or banner link, replacing CODE with the saved coupon code. When a customer follows the link, the cart reads and applies the code after the cart is ready. If the code is invalid or the cart is not eligible, the cart stays usable and shows an inline error that the customer can dismiss.

For custom storefront integrations, GET /api/v1/customer/public/coupons returns only currently eligible, opted-in coupons and their customer-safe presentation fields. Custom renderer hosts can send Apply through onApplyCoupon, copy through onCopyCouponCode, or dispatch the bb:apply-coupon event; these integration hooks do not create a coupon section by themselves.

Fields you'll see but that aren't saved yet

The coupon editor also shows a description field, a maximum discount cap, a product/category scope selector, and a customer-eligibility selector (all customers / new customers / segments). These are visible in the form but are not yet sent to the server when you save — treat them as not-yet-persisted rather than working restrictions.

Your coupon list

The list shows every coupon with its code, type, current value, a usage bar (redeemed vs. limit), its active window, and its status (Active, Scheduled, Expired, or Disabled). Use the tabs to jump straight to one status, or the search box and type filter to narrow a long list. Store-level admins on a marketplace also see a scope column showing which vendor (or "storewide") each coupon belongs to, plus a separate Coupon Scope filter dropdown — All scopes, Store-wide only, or Vendor-specific only — that narrows the whole list instead of just labelling each row.

Click a coupon's code to copy it. Click anywhere else on the row to open a read-only detail view showing its full conditions, validity countdown, and recent redemptions (who used it, on which order, and how much they saved).

Editing, pausing, and deleting

Open a coupon's row menu to:

  • Edit — opens the same editor you used to create it, pre-filled.
  • Enable / Disable — pause a coupon without deleting it; it stops applying at checkout until re-enabled.
  • Delete — removes the coupon permanently.

You can also select multiple coupons with the checkboxes and enable, disable, or delete them in bulk from the bar that appears above the list.

Duplicate isn't wired up yet

The row menu also shows a Duplicate option. Clicking it currently only shows a "coming soon" message — it does not create a copy of the coupon. To reuse a coupon's settings today, open it and manually re-enter the same values under a new code.

Export doesn't produce a file

The export CSV button in the masthead shows a "Coupons ledger exported" success message, but no file is actually generated or downloaded. Don't rely on it to pull your coupon list into a spreadsheet — for now, copy the figures you need from the screen directly.

Coupon analytics at a glance

On the new admin the top of the Coupons screen shows four tiles, and the line under the title summarises the same figures. They update as customers redeem your codes:

  • Active Coupons — how many coupons are live right now: switched on, already started, and not yet past their end date. When the whole list is loaded, a sub-line adds how many more are scheduled.
  • Total Redemptions — total redemptions across every coupon, all time.
  • Discount Given — the cumulative discount you have given out, all time. The title line says the same: N active · ₹X discounts given to date. It is a lifetime total, not a monthly one.
  • Avg Discount / Order — Discount Given divided by Total Redemptions. It shows a dash and no redemptions yet until the first redemption.

Use these to judge whether a promotion is earning you more in incremental sales than it costs you in margin.

The tab counts on a long coupon list (new admin)

The new Coupons screen asks the server for one page of coupons, the first 10, and does not show a pager. The tabs (all, active, scheduled, expired, disabled), the search box, and the type filter then work on those loaded coupons. The tab counts therefore show a number only when it is a true store-wide figure, rather than guessing from the loaded rows:

Tab or tileWhen all your coupons are on the loaded pageWhen you have more coupons than the loaded page
allNumber of coupons loadedStore-wide total reported by the list
active and the Active Coupons tileCounted from the couponsThe store-wide active figure from the coupon stats
scheduled, expired, disabledCounted from the couponsNo number is shown on the tab

When the list is too long to load whole, the Active Coupons tile also drops its scheduled sub-line, because that number would be a page count too.

Why does a coupon tab show no number, or why can't I find a coupon?

Your store has more than 10 coupons. A missing number on scheduled, expired, or disabled means that count cannot be stated store-wide, and the tabs still filter the loaded coupons correctly. The same limit applies to search and the type filter in the new admin: they search only the coupons that were loaded, so an older coupon outside that first page will not appear. Disable or delete expired coupons you no longer need to keep the loaded page useful, or open the coupon from a link you already hold. If the Active Coupons tile and the number of active rows you can see differ, trust the tile: it counts every coupon in the store. The classic admin lists coupons in its own table and is not covered here.

Plan limits

Higher-tier plans unlock more simultaneously active coupons. If you're near your plan's limit, a hint bar above the list shows how many you've used and links to Billing to upgrade. Coupons that exceed your plan's limit show a locked status until you upgrade or disable others.

Next steps