Service Catalogue

Define what your MSP sells, what it charges, and which clients can buy it — with a cost floor the system will not let you price below.

The problem

Most MSPs price from a spreadsheet. The master list of services lives in one file, the sell prices in another, and what each client is actually entitled to lives in the head of whoever set up that account. Nobody can answer “what is our margin on backup across all clients?” without an afternoon of reconciliation, and a technician quoting from a stale tab can quietly sell something below cost.

What Solidlio does about it

Solidlio publishes a master service catalogue with a cost price. Your account layers its own sell price, SKU and naming over any service you adopt, and the platform refuses any price below cost on every write path. A separate per-client layer controls which of your clients can buy each service and at what price, so a negotiated rate for one client does not disturb your list price. Margin is computed on every row and totalled across the catalogue.


Capabilities

CapabilityWhat it does
Adopt platform servicesAdd any service from the master catalogue to your own, individually or in bulk, with your price.
Cost-floor enforcementRejects any sell price below the platform cost price, on both the catalogue manager and the service editor.
Live marginShows price-based margin per row as you type, and totals it across the catalogue.
Custom identityOverride the platform SKU, name and description with your own for anything a client sees.
Enable / disableWithdraw a service from sale without deleting it or its history.
Destructive-delete guardRefuses to delete a service that has client enrolments, a marketplace listing, or service orders.
Per-client entitlementGrant individual services or your entire catalogue to a client organization; re-runnable safely.
Per-client pricingOverride the list price for one client without changing what anyone else pays.
Suspend a grantPause a client’s access to one service, keeping the enrolment intact.
Skill requirementsRecord the technician skill levels required to deliver each service.

Built for MSPs and their clients

The catalogue is explicitly two-sided. A managed client is a separate account from the MSP that services it, and the boundary is enforced in the data layer, not just the UI.

Organization (client)MSP
Master catalogueNot visibleAdopts from it, sets its own price
Sell price and costSees only its own price; never sees your cost or marginSets both; cost floor enforced
EntitlementSees the services granted to itDecides which services each client may buy
Negotiated ratesSees its own rateSets a per-client override without moving the list price
Catalogue adminNoneFull, scoped to its own account

Cross-tenant access is denied on every route. A foreign account id returns the same 403 as a nonexistent one, so the API cannot be used to probe which accounts exist.


How it works

  1. Adopt — open Services → Catalogue → Add from platform, set a sell price against the visible cost price, and add one service or a selected batch.
  2. Price — margin recalculates live as you type. Anything below cost is rejected before it is written.
  3. Brand — optionally replace the SKU, name and description with your own; that is what your clients see.
  4. Grant — on Services → Clients, pick a client and grant individual services or the whole catalogue at once.
  5. Negotiate — set a per-client price override where a client has a different rate.
  6. Withdraw — disable a service to stop selling it, or remove it entirely; removal is blocked while anything depends on it.

Compliance and audit

Deletion is guarded rather than cascading. A service with client enrolments, a marketplace listing, or an associated service order cannot be hard-deleted, because doing so would either cascade into the listing and its subscriptions or null the foreign key on a sold order — severing the record of what was sold from the thing that was sold. The system offers a soft disable instead, preserving the history.

Every catalogue write is scoped to the calling account in the data layer, and the per-client grant layer resolves the target organization against the set of accounts the caller actually services.


Editions

The service catalogue carries no plan gate. Every capability above is available on every tier, including Free.

Price what you sell, once, and let the system refuse the mistakes.

See this working on a real account.

Book a walkthrough and we will run this capability against your own clients, devices and tickets.

Book a demo All features

A 30-minute walkthrough against your own workflow. No slides.