Selling memberships
A membership is a Stripe-billed subscription that gives the member ongoing class access, either unlimited classes or a fixed allowance per billing period. Memberships bill on each venue's own Stripe Connect account.
Where: Classes → Class products → Memberships tab.
Plan rules
- Unlimited: the simplest model. Any class covered by the plan is free for the member.
- Allowance per period: N classes per billing period (weekly / monthly / yearly).
- Rollover: unused allowance carries into the next period.
- Rollover limit: cap the carry-over (otherwise it accumulates indefinitely).
- Member discount %: applies to paid classes that aren't already covered by allowance or unlimited (e.g. workshops outside the plan).
- Eligible class types: restrict the plan to specific class types, or leave empty for all classes.
- Allow recurring booking: must be enabled for guests on this plan to set up recurring auto-bookings.
Stripe Connect setup
Two ways to attach a Stripe price:
- Recurring price + interval (recommended): ResNeo creates a Stripe Product and a recurring Price on your connected account when you save the plan. Change the price or interval later and a new Price is generated; the old one is archived automatically.
- Paste an existing Stripe Price ID: useful if you already manage subscriptions externally.
Active plans must have a Stripe price attached so guests can subscribe.
How a guest subscribes
- From the public Classes tab they click Start membership on the plan.
- They're sent to Stripe-hosted Checkout (on your connected account) to enter card details.
- The webhook syncs the subscription to ResNeo and sends a Membership started welcome email.
Period boundaries and allowance reset
A nightly cron writes a period_reset ledger row each billing cycle. The remaining allowance carries over per the rollover rules. The member sees "X / Y classes used this period · Resets {date}" in Account → Memberships.
Cancelling
Members cancel from their account; the cancellation is scheduled for period end (they keep access until then). They get a Membership scheduled to end email immediately and a Membership ended email once the final period rolls over.
Discount + allowance precedence
When a guest books a class with a paid line and they hold a membership covering it, the engine evaluates in this order:
- Pay with class credits if the guest has a credit balance and ticked the box.
- Course coverage if the class is part of a course they're enrolled in.
- Membership unlimited: line is free.
- Membership allowance: line is free, allowance ledger debits.
- Member discount: the line is paid but reduced by the best discount on any membership covering the class type.
- Otherwise, full price.
Archiving
When you archive a membership product, ResNeo automatically archives the Stripe Product and Price on the connected account. Existing members keep their subscription until they cancel. The plan just stops being offered to new buyers.
Tips
- Make your most popular plan the default by listing it first under your venue's marketing.
- Set rollover_limit = allowance_per_period to allow members one missed week without them stockpiling free classes indefinitely.
- Use member_discount_percent on workshop-style class types you don't want fully covered.