Memberships
Sell recurring or lifetime plans with built-in perks — a baseline discount on all services plus per-item benefits on the services and products you choose.
A membership turns a one-off client into a regular. Each plan bundles perks — a baseline discount across your services, plus specific benefits on the services and products you choose — behind a recurring or one-time price. Members get better prices; you get predictable, repeat revenue.
Memberships live in two places: you design plans in Settings, and you sell them from the Catalog.
Design a plan
Open Memberships in Settings and hit Add plan.
Name it and set the price
Give the plan a Plan name, a Billing cycle (monthly, quarterly, annual, or Lifetime), and a Price in each currency you operate in. A plan sold at a SAR or EGP branch records in that branch's currency, not your default — set the price per currency once and the sale picks the right one.
Layer the perks
Under Perks, start with the Baseline discount on ALL services (optional) — one percentage that comes off every service the member books. Then fine-tune each item individually under Service-specific benefits and Product-specific benefits (optional): every row picks one benefit — none, a % off, a number of free visits per cycle, or ∞ unlimited (free on every booking, no counter). A per-item benefit always wins over the baseline.
Scope and publish
Optionally limit the plan to certain branches under Branch scope, then Create plan. A live preview shows the plan exactly as a client sees it while you build.
The baseline is services-only
That blanket discount applies to services, not the whole basket. Retail products are never touched by it — a product only gets a deal if you give its own row a % off, free-per-cycle, or unlimited benefit. Leave a product's row on none and it rings up at full price, even for members.
Sell and track memberships
Open Memberships under Catalog — the roster of every membership sold, showing the Customer on each Plan, who sold it (Sold by), and when it Renews. To put a client on a plan, hit Assign membership, pick the customer, and choose the plan.
Assigning always collects the first payment in the same step — enter the amount (it prefills to the plan price, editable for a discount) and a method, and pick a Price currency via the Selling branch if you run multiple currencies. Giving one away? Flip Complimentary (no charge) and confirm — that records a $0 comp instead. The membership and its payment are saved together, so a member is never active-but-unpaid.
Once a client is a member, their perks apply on their own: the baseline discount and any per-item pricing kick in at checkout, and free-visit allowances count down each cycle as they're redeemed through the booking flow. Each cycle's counter resets on renewal.
Renew, refund, or end a membership
Memberships don't auto-charge a card yet, so you record renewals by hand: from the customer's membership card, hit Record payment (or Record renewal once the current cycle is already paid) when they pay for the next period.
To stop or refund a member, open the end flow (End now / refund) and pick one of four outcomes before you End membership:
- Keep active until period end — no money back; perks stay live through the cycle they paid for, then it expires on its own.
- Full refund — returns the last cycle's payment and ends the membership now.
- Prorate — refunds only the unused slice of the current cycle and ends it now.
- Custom refund amount — refund an amount you type (up to the net collected) and end now.
Any refund is written to the ledger as a negative row, so your P&L nets it out automatically. Changed your mind on a cancel? Resume membership un-cancels a plan that's winding down and keeps it running. To undo a mistyped payment entirely, void it from the Transactions Hub — that writes a paired reversal so the numbers stay honest.
Renewals are recorded by hand — for now
Today you record each renewal when the client pays; memberships don't auto-charge a card yet. Everything else — the perks, the discounts, the free-visit counters — is fully automatic.