Some audiences never click. They hear a code, type your domain, and buy. Coupon attribution pays the affiliate anyway.
Setting it up#
- Create the coupon in your store as you normally would — the discount, the limits and the expiry are the store’s business, not the plugin’s.
- Open the affiliate and attach the coupon to them.
Any order using that code now credits that affiliate, with or without a cookie. A code maps to exactly one affiliate at a time — assigning it to a second affiliate replaces the mapping rather than adding to it, so a code can never attribute to two people at once. Codes are matched case-insensitively and with surrounding whitespace trimmed, so SPRING10, spring10 and spring10 are all the same mapping as far as attribution is concerned, which matters because a customer typing a code by hand rarely gets the case right.
Letting the plugin generate the coupon for you#
Rather than creating a coupon in your store first, you can have the plugin mint one directly for an affiliate: it builds a deterministic code from a filterable prefix and the affiliate’s own ID — AFF42 by default for affiliate 42 — and, when WooCommerce is active, creates the matching WC_Coupon itself with a default 10% discount (also filterable). The code is generated lazily, the first time it’s actually needed rather than the moment an affiliate is approved, so a landing page being crawled or previewed doesn’t mint a coupon nobody asked for. Once generated, the same code is returned every time — it’s deterministic from the affiliate ID, not random, so there’s exactly one coupon per affiliate under this path and no risk of an affiliate accumulating several.
The discount and the commission are separate#
A 10% discount does not imply a 10% commission. Set the commission on the affiliate, their group, or a commission rule; the coupon only decides who gets paid, never how much. Worth saying out loud, because the two numbers being different is what people expect to be a bug and is not — a generated coupon’s default 10% discount and an affiliate’s actual commission rate are two entirely separate settings that happen to share no connection at all.
What happens if a coupon and a cookie both apply#
One commission is paid, decided by the fixed route order: a referral-link cookie is checked first, and only when there’s no cookie attribution does the plugin look at whether any coupon code on the order maps to an affiliate. If you want the coupon to win instead, the setting is under Settings → Tracking — but decide once, at the start, rather than after two affiliates have both told their audience the sale was theirs. See How attribution works for the full precedence, including the third fallback — a bound customer — that only applies when neither a cookie nor a coupon matches.
Self-referral#
An affiliate cannot use their own coupon to buy from you. Self-referral blocking ships free and covers the coupon route as well as the link route — the same check, in the same place, regardless of which route produced the attribution. An admin can lift this with a filter if a programme deliberately wants to reward staff or insiders on their own purchases, but that’s an explicit opt-in, not a setting you’d flip by accident.
Per-platform coupon reading#
Not every integrated platform reads coupon codes the same way. WooCommerce coupons carry an “Affiliate ID” field added directly to the coupon editor, so the mapping lives on the coupon itself. Easy Digital Downloads reads the discount code straight from the payment’s own stored meta, so no separate mapping step is needed for a code EDD already tracked. SureCart, by contrast, has no coupon-to-affiliate attribution at all — if you’re running SureCart, referral links (or referring domains) are your only attribution paths, and a coupon-code programme isn’t something that platform’s integration can support. See Integrations for the full breakdown.