Skip to content

Need it customized?

Custom features, theme changes, server setup, migrations and upgrades - built by the Botble team. Quick fixes from $99, fixed quote within 1 business day.

Get a free quote →

Signup coupons ​

Operator console → Coupons manages signup promo codes.

Trial days only, never a money discount

A coupon here grants extra trial days and nothing else. Money discounts — percent or amount off, duration, minimum amounts — are Stripe promotion codes, created in your own Stripe dashboard and entered by the customer at Checkout, not rows in this table.

Trial length is the one discount primitive that's entirely local, has no invoice consequence, and can't be contradicted by Stripe — which is what a launch promo usually means in practice anyway. This package deliberately never mirrors a Stripe promotion code locally: a local copy of a Stripe object drifts the moment either side changes.

Coupons list

Tying a coupon to a Stripe promotion code ​

A coupon's stripe_promotion_code field is how the two mechanisms connect: it doesn't carry any pricing logic itself, it's a reference you can set so a coupon and its matching Stripe promotion code stay associated in your own records. The discount math still happens entirely in Stripe.

Toggle whether customers can enter Stripe promotion codes at all with TENANCY_ALLOW_PROMOTION_CODES (default on). Signup coupons can be hidden entirely with TENANCY_COUPONS_ENABLED=false.

Fields ​

Coupons → Create coupon:

FieldPurpose
CodeUppercased on save; what the customer types at signup
DescriptionOperator-facing note
Trial daysExtra days added on top of the plan's own trial
Stripe promotion codeOptional reference tying this coupon to a Stripe promotion code
Plan scopeWhich plans the coupon applies to; empty selection means every plan
Max redemptionsOptional cap; leave blank for unlimited
RedemptionsRead-only counter of how many times it's been used
Starts at / expires atOptional active window
ActiveTurns the coupon off without deleting it

Coupon form: code, trial days, plan scope, redemption cap

How redemption works ​

A code adds its trial days on top of the plan's own trial. Checkout already carries the remaining trial into Stripe, so the first charge lands only when the extended trial ends.

Coupons are validated when the signup form is submitted — so a bad or expired code is corrected before the visitor commits to anything — but redeemed only when the confirmation link is clicked. An unconfirmed signup must not burn a redemption. If a coupon is fully claimed in the gap between form submission and email confirmation, the store still launches, just on the plan's ordinary trial: bouncing a customer at the moment they click their confirmation link, over a promotion someone else won by a moment, is worse than quietly under-delivering the bonus.