Skip to content
ThemesIonic — home
WooCommerce

WooCommerce Gift Cards and Store Credit: How They Work

WooCommerce has coupons, not gift cards. A coupon can imitate a gift card for one purchase, but a balance that survives partial use, an email to a recipient and refunds as store credit are what separate the two.

6 min read beginner

Some links on this page are affiliate links: if you buy through one, we may earn a commission at no extra cost to you. It does not change what we recommend; see the editorial policy.

WooCommerce has coupons, not gift cards — and the difference is the balance. A coupon is a discount rule: it applies, it reduces the order, and its job is done. A gift card is money held in advance: it is spent down across several orders, it can be given to someone who has never visited the store, and a refund can be turned back into it. Everything below follows from that distinction.

What the core coupon can fake

WooCommerce ships three discount types: percentage discount, fixed cart discount and fixed product discount. The usual workaround for selling a gift card without a plugin is:

  1. Create a virtual product called "Gift card — $50".
  2. When it sells, create a fixed cart coupon for 50 with a usage limit of 1.
  3. Email the code to the buyer.

That is a gift card for exactly one scenario — the recipient spends at least the full amount in one order. It breaks the moment anything else happens:

Situation What the coupon does
Recipient spends $30 of a $50 card Discount is $30; the remaining $20 is gone, because the coupon's usage is now used up
Card used on a cart that also has a sale coupon Depends on "Individual use only": off by default, but if either coupon has it ticked, the second code is rejected
Order is refunded The coupon is not restored; you issue cash or create a new code by hand
Buyer wants it sent to someone else on a date Nothing in core sends it at all

A coupon is a discount, so it is applied to line items before tax is calculated, and it appears as a discount in reports. A gift card is closer to a payment — the goods are sold at full price and the card pays for them. Whether that distinction matters for your tax filings is a question for an accountant, but it is worth knowing that a coupon-based gift card produces different numbers from a balance-based one. Coupon behaviour in general, including why codes get rejected, is covered in WooCommerce coupon not working.

What a real gift card system has to do

When the store sells more than a few cards a year, these are the capabilities that matter, in roughly the order stores discover they need them:

  • Partial redemption with a stored balance. The card is spent down; the remainder survives for the next order and is visible to the customer.
  • Delivery to a recipient. An email to a different address, ideally on a date the buyer chooses — the "it's for her birthday on Friday" case. The recipient's details travel with the cart line, the mechanism behind woocommerce_add_cart_item_data.
  • Fixed and custom amounts. Fixed denominations are simpler to manage; letting buyers choose an amount within limits sells more.
  • Physical and printable cards. Some customers want something to put in an envelope.
  • Expiry rules that match what you are legally allowed to do in the places you sell. Some jurisdictions restrict expiry on gift cards; check before setting one.
  • Refunds as store credit. A balance keeps revenue in the shop; where customers are entitled to a refund to their payment method, offer credit as an option, not a replacement.
  • A balance page in My Account, so customers stop emailing to ask how much is left.

This is where the core coupon system stops and a plugin starts. WebToffee's WooCommerce Gift Cards covers the list above: email and physical cards, printable PDF cards through a free add-on, custom amounts within the minimum and maximum you set, scheduled delivery, expiry dates, partial redemption with the balance shown in the customer's account, and refunds issued as store credit.

Decisions to make before launch

Who can buy them. Selling a gift card with a gift card is a loop some stores block, and buying cards with store credit is a common way refunds get converted back into cash. Decide the rule before the first refund.

What they can be spent on. A card valid on everything is simplest. Excluding sale items or certain categories is possible but generates support tickets; if you exclude, say so on the product page.

Shipping and taxes. A digital card needs no shipping; a physical one does. Whether tax is due at sale or at redemption depends on the jurisdiction, so make the card's tax status a deliberate choice agreed with your accountant, not the default.

Emails. The recipient's email is the product. It must arrive, it must not look like phishing, and it needs to carry the code, the amount and a link to the store. Stores that already struggle with WooCommerce emails not sending should fix delivery first, because a gift card that never arrives is a refund and an unhappy customer at once.

Abuse. Codes must be long and random. Rate-limit attempts if the plugin allows it, because short codes on a public checkout invite guessing.

Store credit without gift cards

Some stores only want the refund half: return money to the customer as a balance instead of to their card. The same systems handle it, and the decisions are the same — what credit can be spent on, whether it expires, and where the customer sees it. A store credit balance also solves the "return one item from a coupon order" problem, which core refunds handle awkwardly because the discount was spread across every line.

Common mistakes

  • Using one shared coupon code as a "gift card". Everyone who learns the code can spend it.
  • Forgetting the remainder. Customers notice when a $50 card disappears after a $30 order.
  • Setting an expiry without checking local rules. In some places it is not allowed or must be at least several years.
  • Leaving the card product as a shippable item, which adds shipping costs to an email.
  • Not testing a refund. Decide before launch whether refunds go to the card, to store credit or to the original payment method.

Verify

  1. Buy a card as a guest, sending it to a second email address on a future date, and confirm it arrives on that date.
  2. Spend part of it, then check the balance in My Account and in the admin.
  3. Spend the rest across a second order with another coupon applied.
  4. Refund an order paid partly by card and confirm where the money goes.
  5. Check the order totals and tax lines look the way your accountant expects.

Frequently asked

Only as a workaround: sell a virtual product, then create a fixed cart coupon by hand and email the code. It works for a handful of orders, but nothing generates the code automatically, and an unused remainder is lost when the coupon is spent on a smaller order.
A gift card is bought and usually given to someone else; store credit is a balance the store issues, typically instead of a cash refund. Both behave like a balance that is spent down across orders, which is why plugins tend to handle them in the same system.
It depends on the jurisdiction and on whether the card can be spent on one kind of goods or on anything. Many tax systems treat a general-purpose voucher as a payment method and tax the goods when it is redeemed. Confirm the treatment with an accountant before choosing settings.

Related guides