Forums Feature Requests Thread

[New] Admin deep-dive (commerce/config): No coupon / promo code engine anywhere in commerce (Gate, Courses, Marketplace, Boosts)

Patrick Bass · Jun 6 · 11 · 1 Locked
[High Priority] [New Feature] [Deployed to Production]
🚀 OP Jun 6, 2026 8:34pm

Area: Admin deep-dive (commerce/config) (audit p15b) · Surface: /admin/gate, /admin/courses, /admin/marketplace/fees · Dimension: competitor-gap · Severity: major

Every monetization surface we ship lets an admin set a single flat price, but there is no way to issue a discount code, run a launch promo, or give an affiliate/influencer a tracked code. Skool, Teachable, Thinkific, LearnWorlds, Circle and Mighty Networks all ship coupon engines (percentage + fixed, expiry, usage caps, per-product or account-wide) as table-stakes for course/membership launches. Without coupons a tenant cannot run a Black-Friday sale, a cohort launch discount, or a win-back offer without manually editing the price for everyone. This is the single biggest revenue-tooling gap versus the LMS and membership competitors.

Evidence

grep -rln 'coupon|promo_code|discount_code' over platform/src/ returns ZERO hits. AdminGateController::createTier (AdminGateController.php:98-155) builds a Stripe product+price with name/interval/price/trial/setup_fee but no coupon. AdminCourseSalesController::store (AdminCourseSalesController.php:122-166) takes title/slug/price/currency only. GateTier.php has no coupon/discount columns (grep returned nothing).

Suggested fix. Add a `discount_codes` table (code, scope=gate_tier|course_offer|all, type=percent|fixed, value, max_redemptions, redeemed_count, starts_at, expires_at, stripe_coupon_id) with an /admin/discounts CRUD surface. At checkout, map to a Stripe Coupon/Promotion Code so the discount flows through the existing Stripe price objects rather than rewriting prices.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 12:51pm

Shipped and deployed to production. Commit 63b2de429a.

Coupon engine duplicate — resolved (same feature shipped as #406).

Closed as: deployed.


Patrick Bass
@mobieus

Log in or register to reply to this thread.