Browse the docs

Choose what packs and memberships cover

Say what each pack or membership pays for and how much: unlimited, a number of bookings a week or month, or a balance of visits, minutes or dollars. Members can also book early.

A pack or membership covers everything you offer unless you narrow it: to particular offerings, to one option of an offering, to kinds like classes or workshops, or to offerings with a tag. “Unlimited yoga” can cover classes but not workshops. A “5 × 60-minute massage” pack can cover the 60-minute option and not the 90. A membership that covers nothing on its own can still give its members a price or early booking on what they buy.

In the editor, turn off “Covers everything you offer” and tick what it covers. Ticking an offering covers all its options, including ones you add later. Open an offering to tick only some options. The line below says what it covers, like “Covers 60-minute massage only.” Anything the assistant set that the editor doesn’t list stays as it was when you save.

Memberships are unlimited or allow a number of bookings a week or month. Weeks start on Monday and months on the 1st, or count from the day each member joined. A booking counts in the week or month its session is in. Packs hold a balance: visits (one per person per session), minutes (a 300-minute pack uses 60 for a 60-minute session), or dollars.

Give it a short name like gold or ten-class. Offerings use it to give members a discount, early booking or a members-only admission, and you can use the name before the membership exists.

When customers book, we use what costs them least: an unlimited membership first, then the credit that runs out soonest. They can pick another pack or pay instead. A series uses one visit per session. If a pack doesn’t have enough left, we say how much it has and offer another pack.

Cancelling in time gives the visit, minutes or booking back. If you call a session off, everyone gets back exactly what that session used.

Changing what a pack or membership covers reaches people who buy it from then on. Anyone who already has it keeps what they bought.

To sell several packs as one, like 3 massages and 2 facials for $450, make a bundle of the packs under Products. Each customer who buys it gets every pack, each covering only what it covers on its own. Buying two of a pack gives two packs.

For agents

grants.saveBenefit (tier 2) takes productId (an access product), key (lowercase, used as membership:<key>, pack:<key> or pass:<key>), covers (all, or any of kinds, tags, offeringIds, productIds), allowance ({ type: "unlimited" }, { type: "per_period", uses, period: "week" | "month", anchor: "calendar" | "cycle" } for memberships, or { type: "balance", unit: "visits" | "minutes" | "cents" } for packs, whose credits are the balance) earlyDays and perks ({ guestPasses: { count, period } }). covers selectors add up: anything any one of them matches is covered, so to cover one option send its product in productIds alone, and to cover every option send the offering in offeringIds. grants.coverChoices lists each offering on sale with its options (productId, name, minutes, shortest first). grants.benefits lists them with ref, words, and a pack’s credits and validDays. A package is a commerce bundle of packs (commerce.createProduct, type: bundle): selling it issues one grant per pack, each with its own credits, benefit and expiry. At a freeze, offerings.coveredBookings lists the bookings a membership pays for between two dates. At booking, offerings.coverage lists what can pay for a place and the default; pass its grantId to offerings.enroll, or "none" to pay instead.