Selling Plans & Products
Your portal can be a storefront. Sell a monthly retainer as a plan, a one-off setup fee as a product, put them on a page anyone can visit, and take payment through Stripe — from clients who are logged in, or from the public with no account at all.
The Model
Everything you sell is an item. An item is one of two kinds, set by its Purchase Type:
| Kind | Purchase Type | Billing |
|---|---|---|
| Plan | Recurring Subscription | Monthly, quarterly, or yearly |
| Product | One-Time Purchase | A single charge |
The words plan and product are just the friendly names for those two purchase types. A page can show either or both — plans appear in plan blocks, products in product blocks.
Connecting Stripe
Payment runs entirely through Stripe, so that connection comes first: Settings → Stripe. Paste your publishable key and secret key, set your currency, and add the webhook to your Stripe dashboard using the URL shown on that settings page — the webhook is how ClientCove learns a payment succeeded.
Stripe has test and live keys. Test keys let you rehearse the whole flow with Stripe's test cards before real money is involved; switch to live keys when you're ready to sell.
The webhook matters more than it looks. It's what confirms a payment and finalizes the order — including for a buyer who closes the tab before the page finishes. Skipping it means purchases that never complete.
Building an Item
Items are built in the Items Manager. Each item carries:
- Purchase Type — subscription or one-time (above).
- Price — the one-time amount, or the Subscription Price and Billing Interval for a plan.
- Subscription Features — the bullet list shown on a plan card.
- Available for Purchase — the on/off switch for whether the item can be bought at all.
- Show on public services page — whether logged-out visitors can see and buy it (see Public vs. Logged-In Buying).
- Access Scope and Grants Access To — what the purchase unlocks (see below).
- Item Image — the picture on its card.
- Onboarding Intake and Onboarding Email Template — optional; see Onboarding the Buyer.
Who Gets Access
Two fields decide what a purchase actually delivers:
- Access Scope — Individual Buyer Only grants the purchase to just the person who bought it; All Users in Buyer's Client Organization extends it to everyone under that buyer's client. Use the organization scope for a plan a whole company is meant to share.
- Grants Access To — the specific things the purchase unlocks.
Scope is the difference between selling a seat and selling a company-wide subscription.
Putting Items on a Page
Public-facing pages are built from blocks, the same way the login page is designed — you assemble a page from a hero, plans and products blocks, a comparison table, testimonials, rich text, and dividers. Each plans or products block pulls in the items you choose (or every eligible item automatically).
These pages live at their own address (the /p/ path by default), so /p/plans/ is a page you built to show your plans. You can build as many as you like — a pricing page, a single-plan landing page, a page per audience.
Public vs. Logged-In Buying
The same item can be sold two ways:
- To logged-in clients — they browse your pages inside the portal and buy with their account already known.
- To the public — a logged-out visitor sees the item, buys it, and gets an account created as part of the purchase.
Public buying has two requirements, and missing either is the usual reason "people can see the plans but can't buy them":
- The item's Show on public services page must be on. It's off by default — a fail-safe so nothing sells publicly until you say so.
- A page must carry the Guest Checkout template. Create a page (Pages → new), pick Guest Checkout from its Template dropdown, publish. Without it, a plan's buy button sends visitors to the login screen instead of a checkout.
If a public plan button lands visitors on the login page, check those two things first — almost always it's a missing Guest Checkout page, or Show on public services page left off on the item.
Subscriptions After the Sale
A plan is a living subscription, not a one-time event. Subscribers can cancel (at period end or immediately), reactivate a cancelled-but-not-yet-expired subscription, and upgrade to a different plan. Cancellation and payment-failure emails keep both sides informed, and a Stripe customer-portal session lets a subscriber manage their own billing details.
What Happens on a Purchase
When a payment succeeds:
- Stripe confirms it (via the webhook, or the return to the page — whichever lands first; they're deduplicated so a purchase is never processed twice).
- The buyer's account is resolved or created, and the order is recorded.
- Access is granted per the item's scope.
- Any follow-ups fire — onboarding, and the An order is completed (purchase) automation trigger.
Because the order and access are finalized before any follow-up runs, nothing in the after-sale steps can undo the sale itself.
Onboarding the Buyer
Selling to a new customer and then leaving them at a login screen wastes the moment they're most engaged. Connect an item to an intake form and the purchase registers the client, sets up their account, and starts a custom onboarding — automatically. That's its own feature: see Post-Purchase Onboarding.