Area: Monetization (audit p10) · Surface: /admin/gate, /admin/courses, checkout flows · Dimension: competitor-gap · Severity: major
Teachable/Thinkific/LearnWorlds and every community platform let creators run launch coupons, time-boxed discounts, and per-cohort promo codes — the core lever for launches, Black Friday, and partner deals. mobieusGate tier creation and the tenant course checkout have no coupon concept, and even where Stripe promotion codes are technically allowed (Mobieus-owned products) there is no place for an operator to mint or track them. A tenant can't run a 'LAUNCH50' discount on their own course or membership.
Evidence
MobieusStripe.php:110 sets `'allow_promotion_codes' => 'true'` on Mobieus-owned checkouts (boost/verify/credits), but there is no admin UI to create/manage those codes, and the tenant-owned course checkout (StripeCheckout::buildSessionPayload via CourseCatalogController.php:149-160 and startCheckout:213-224) never sets allow_promotion_codes at all. grep for coupon|promo_code|promotion_code|discount across src/Controllers/, GateStripeClient.php returns nothing except that single MobieusStripe flag.
Suggested fix. Add a coupon manager (percent/fixed, expiry, max redemptions, applies-to scope) backed by Stripe coupons/promotion codes; set allow_promotion_codes on the course checkout payload; surface redemption counts in the gate/course dashboards.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus