Sales, Coupons, and Gift Cards
Run discount campaigns, issue promo codes, and sell gift cards customers can redeem later.
Storra ships three discount mechanisms, each suited to a different use case:
- Sales — automatic, time-bound, applies to a set of packages without any code
- Coupons — codes customers enter at checkout; you control distribution
- Gift cards — prepaid balances customers redeem against any future order
Sales
A sale is an automatic discount that applies whenever a customer adds a qualifying package to their basket. No code required — the discounted price shows on the product card with the original crossed out.
Create a sale
- Go to Sales and click New sale.
- Give it a name (visible only to your team).
- Pick discount type:
- Percentage — e.g. 25% off
- Fixed amount — e.g. $5 off (in cents)
- Set Start date and End date in your store's timezone. Leave end blank for an indefinite sale.
- Attach qualifying packages:
- Individually — pick specific packages
- By category — auto-include everything in a category (and any future packages added to it)
- All packages — store-wide sale
- Save. The sale activates at the start date and deactivates at the end date — no babysitting required.
Storefront display
Active sales render with:
- Strikethrough on the original price
- Highlighted sale price
- "Sale" badge on the package card
- Optional countdown (set in theme settings → "Show sale countdown")
Coupons
Coupon codes are customer-typed discount codes. Customers paste the code into the "Have a promo code?" field at checkout.
Create a coupon
- Go to Coupons and click New coupon.
- Either type your own code (case-insensitive —
SUMMER25=summer25) or click Generate for a random 8-char code. - Pick discount type (percentage or fixed amount).
- Configure constraints:
- Expiry date — auto-deactivates after this
- Total uses — global cap (e.g. "first 100 customers")
- Per-customer uses — limit per email (1 = "one redemption per customer")
- Minimum basket — only applies to baskets ≥ this amount in cents
- Eligible packages — restrict to specific packages or categories (default: all)
- Save.
Bulk coupon generation
For codes you want to distribute (e.g. unique codes for an influencer campaign), use Bulk generate:
- Click Bulk generate on the Coupons page.
- Set the number of codes (max 1000 per batch).
- Configure shared settings (discount, expiry, eligibility).
- Generate. Storra creates that many random codes and shows them in a downloadable CSV.
Tracking redemptions
Each coupon has a stats page: total redemptions, revenue attributed, breakdown by day. Click into a coupon to see the list of orders that used it.
Gift cards
Gift cards are prepaid balances. Unlike coupons (which discount), gift cards pay — the balance is real money the customer can spend on any future order. If the order is bigger than the balance, they pay the difference with a regular payment method.
Issue a gift card manually
- Go to Gift Cards → New gift card.
- Set initial balance in cents.
- Optional: enter a recipient email — Storra emails them the code automatically with a "You've received a gift card" message.
- Optional: expiry date (gift cards default to no expiry).
- Save. Storra generates a unique 16-character code (e.g.
GIFT-3K4P-9HM2-QXYZ).
Sell gift cards as packages
Most stores want to sell gift cards too — "buy a $25 gift card for a friend":
- Create a regular package (Packages → New).
- Set price (e.g. $25.00).
- Add a Gift card deliverable — set the issued balance (typically same as the price, or a bit higher as a bonus).
- Save. When customers buy this package, Storra automatically mints a fresh gift card on payment and emails the code to the buyer.
Tracking gift card balance
Each gift card's detail page shows:
- Original balance
- Current balance
- Redemption history (which orders consumed how much)
- Status (Active, Fully redeemed, Expired, Voided)
Voiding a gift card
If a card is reported lost or fraudulently obtained, click Void on its detail page. Remaining balance becomes unusable. Already-redeemed amounts are unaffected.
Stacking rules
At checkout, customers can apply at most one of each type:
| Type | Applies | Stackable with others? |
|---|---|---|
| Sale | Automatically (one per qualifying package) | Yes — stacks with everything below |
| Coupon | One coupon code per basket | Yes |
| Gift card | One gift card per basket | Yes |
| Creator code | One creator code per basket | Yes |
Discount calculation order:
- Apply sale prices to qualifying line items
- Apply coupon (percentage or fixed) to subtotal
- Apply creator code (treated as a coupon)
- Add tax (if configured)
- Apply gift card balance to remaining total
- Customer pays the rest with their chosen gateway
Best practices
- Test stacking — before launching a sale + coupon combo, run a test order with both to verify the math is what you expect.
- Don't compound percentages — a 25% sale + 25% coupon is 43.75% off, not 50%. Customers expect intuitive math; consider a single combined discount instead.
- Set per-customer limits on coupons used in public marketing — without limits, a single customer can redeem the same code on every purchase forever.
- Use sale categories — attaching a sale to a category means new packages added to that category automatically join the sale. Less manual work.
FAQ
Can I have multiple sales running at the same time?
Yes. If a package qualifies for multiple sales, the biggest discount wins — no stacking of sales on top of sales.
Can a coupon apply to specific packages only?
Yes — the "Eligible packages" field. Use this for "10% off ranks only" type promotions.
Do gift card refunds re-credit the card?
Yes. If a customer paid with a gift card and you refund the order, the gift card balance is restored.
Can customers buy a gift card and apply it in the same order?
No. Gift cards are minted on payment confirmation, after the basket is finalized. Tell them to come back for a separate order.
What about referral codes?
Creator codes are the closest equivalent — see Creator codes. Native referrals (one-customer-refers-another with attribution) are Future.
Updated recently