Plan & pricing — Premium plans
Premium tier on /premium: publish toggle, Regular and Reseller rows. Checkout grants role 3 + premiumUntil.
Plan & pricing — Premium plans
Draft the public upgrade page's Premium tier (role id 3).
Where to find it
Admin → Users → Plan & pricing → tab Premium (/admin/plan-pricing)
Stored on Role.plansJson (not a SiteSetting).
How it works
Set section description and Published on upgrade page (enablePaidPlans). Maintain Regular purchase and Reseller row sets (name, duration, price; optional badge/features/partners). Limits: ≤50 rows/list; price must parse ≥ 1 cent. Save with Save all changes (with Pro + Packages).
Money path (regular purchase)
Checkout kind role_plan uses Regular rows only. Grants: role 3, premiumUntil, entitlement tier premium (prior active entitlement revoked). Duration: days capped 3650; "inf" → 3650. Same-tier stacks from current premiumUntil; Premium ↔ Premium Pro does not stack. Does not grant traffic bytes. Coupons apply to public role_plan only (min charge after discount 50 cents).
Reseller rows are wholesale key packages (premium:{durationKey}), not the public catalog.
Feature bullets are marketing only - real limits come from Users & limits (UL2) for the Premium column.
Common problems
Coupons saved but plans did not
Coupons tab saves separately - still click Save all changes for plan rows.