Promo codes need redemption limits (max_uses / single-use) #32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Surfaced while reviewing the free-ticket work (#31).
PromoCodeis currently just{ code, discount_percent, active }— no usage cap, no single-use. Every promo code is effectively unlimited-redemption.This becomes acute with 100%-off promos: #31 routes any final-charge-0 purchase (incl. a 100%-off promo on an otherwise-paid event) through the free-ticket path — no invoice, ticket issued already-paid. So a leaked 100%-off code = unlimited free comps on a paying event, minted through the no-friction free path. (Even a leaked 90%-off code is unlimited discounted sales today — the 100% case is just the most damaging.)
Shape
max_uses: int | None(and/orsingle_use: bool) toPromoCode.api_ticket_create.quantity=3consume 3 redemptions?) and with forfeit/release (#28) — does releasing a comped seat refund the redemption?Related