Features
Storefront
Gift Cards

Gift Cards

Sell and redeem gift cards on the storefront. Cards can also be issued manually by admins.

Where to find it

Storefront purchase: /gift-cards (if enabled) Storefront account: /account/gift-cards Admin: /commerce/giftcards Enable flag: tenant.enable_gift_cards

Customer purchase flow

  1. Customer goes to /gift-cards
  2. Picks an amount (preset or custom)
  3. Enters recipient email, name, and an optional message
  4. Pays via Stripe
  5. On successful payment, a gift card is generated and emailed to the recipient

Admin-issued cards

Create cards manually from /commerce/giftcards:

  • Set amount, optional recipient, optional expiry
  • Card code is generated and shown; an email is sent if recipient provided

Redeeming at checkout

Customers enter their code at checkout:

  • Code validated server-side
  • Balance applied against the order total
  • Remaining balance stays on the card
  • If balance < order total, customer pays the difference via their chosen payment method

Ledger

Every gift card has a full transaction ledger showing:

  • Initial purchase
  • Each redemption (with order ID)
  • Admin adjustments (+/-)
  • Refunds

View the ledger from the admin detail view of a card.

Statuses

StatusMeaning
activeValid and has balance
redeemedBalance hit zero
expiredPast expiry date
disabledManually revoked by admin

Security

  • Card codes are 16 characters, alphanumeric, unambiguous (no I/O/0/1)
  • Rate-limited validation to prevent enumeration
  • Redemption is atomic — concurrent redemption attempts can't overdraw