MSP Store
A branded storefront your clients buy from, priced by rules you set once, with every order landing in your approval queue and invoicing itself on delivery.
The problem
A client emails asking for fifteen laptops. Someone looks up cost in the distributor portal, applies whatever markup they remember, types a quote, and waits. The client replies asking for the same thing in a different configuration. Two weeks later nobody can say what margin the deal carried, and the invoice was raised by hand from a packing slip.
Meanwhile the client has no way to see what you sell, no way to see the price they have negotiated, and no record of what they have already bought from you.
What Solidlio does about it
Your store is your slice of a shared distributor catalogue plus the products and services you author yourself. A pricing profile turns cost into a sell price — a base multiplier, per-category and per-brand markup, a minimum-margin floor and a rounding rule — and per-client rules layer negotiated contract prices, volume breaks and discounts on top of that. One engine computes every line price, so the product page, the cart and the placed order all charge the same number.
Clients browse and order in their own portal. Every order arrives PENDING_APPROVAL, you approve or reject it, advance it through PROCESSING → SHIPPED → DELIVERED with carrier and tracking, and delivery is what triggers the invoice — automatically, once, on your net terms.
Capabilities
| Capability | What it does |
|---|---|
| Markup profiles | Turn distributor cost into a sell price with a base multiplier plus per-category and per-brand overrides. |
| Minimum-margin floors | Raise any price a markup would leave below the gross margin you set for that category or brand. |
| Price rounding | Finish every computed price at .99, .95, the nearest dollar, the nearest cent, or not at all. |
| Per-client pricing | Contract prices, percentage discounts and volume breaks scoped to one client organization. |
| Best-price resolution | Two client discounts never compound — the single best applicable rule wins, deterministically. |
| Catalogue curation | Set any catalogue product to visible, hidden or approval-required for your store. |
| Vendor control | Allow or block distributors for your store, with an optional per-vendor markup. |
| Custom items | Author your own products and services with SKU, price, images and attached documents. |
| Bundles | Sell a group of items at a fixed price that expands server-side into its priced components. |
| Client storefront | Faceted browse, product detail, cart and checkout in the client’s own portal, at that client’s price. |
| Order approval | Every client order lands in your queue; approve or reject with a reason before anything is committed. |
| Fulfilment tracking | Forward-only PROCESSING → SHIPPED → DELIVERED with carrier and tracking, and timestamps stamped once. |
| Automatic invoicing | Delivered net-terms orders raise their invoice on a scheduled run, idempotently — never twice. |
| Client spend analytics | Monthly spend, order counts and top products, for the client’s own organization only. |
| AI order triage | Summarise and assess an incoming order on demand, stored on the record. |
Built for MSPs and their clients
Your account holds many client organizations. Account-level scoping alone is not isolation for a buyer, so the store enforces two separate rules — one on what a buyer can see, one on what a buyer can reach.
| Organization (the client) | MSP | |
|---|---|---|
| Cost and margin | Cost price, margin and vendor markup are stripped from every catalogue, item and order payload. | Visible on every catalogue and pricing screen. |
| Markup policy | Not visible. | Owns it; applies account-wide, overridable per category, brand, vendor. |
| Negotiated pricing | Sees its own price, not the rule that produced it. | Sets contract, discount and volume rules per client organization. |
| Catalogue | Sees only what the MSP has made visible. | Sets per-product visibility; blocks whole distributors. |
| Orders | Sees only its own organization’s orders. Fails closed without one. | Sees every order in the account; approves, rejects and fulfils. |
| Spend | Its own spend history and top products. | Account-wide store statistics and booked revenue. |
| Invoicing | Receives one invoice per delivered order on agreed terms. | Terms set per order; invoicing runs itself. |
How it works
- Set the markup once — a base multiplier on cost, category and brand overrides, minimum-margin floors, and a rounding rule. Add a currency buffer if you buy in a currency you do not sell in.
- Curate what you sell — block the distributors you do not use, hide the products you do not want quoted, and add your own items for anything the catalogue does not carry.
- Price the client — a contract price, a percentage off, or a volume break, scoped to that one organization.
- The client shops — faceted browse in their own portal, at their own price, with cost and margin never leaving your side of the boundary.
- The order arrives for approval — server-priced from item ids and quantities only; a price in the request is rejected outright.
- You fulfil it — approve, then advance through processing, shipped and delivered, recording carrier and tracking as you go.
- It invoices itself — the delivered order is picked up on the next invoicing run and billed on its net terms, exactly once.
Numbers that are enforced, not suggested
- Prices are never accepted from the client. The checkout schema is strict: item ids and quantities only.
- Stale exchange rates stop a sale rather than mispricing it. A rate older than the freshness bound makes the line unavailable; checkout refuses the order.
- Unresolvable tax is held, never guessed. The order is flagged with a
[TAX HOLD]note and jurisdiction-specific guidance instead of shipping at $0 tax. - Fulfilment is forward-only. Delivered and cancelled are terminal;
shippedAtanddeliveredAtare stamped once, on first crossing. - A client with no organization context is refused, not defaulted.
Editions
The store carries one plan gate: control over which distributors you may block. The storefront, pricing profiles, custom items, bundles, orders, fulfilment and invoicing are available on every tier.
| Capability | Free | Starter | Growth | Scale | Enterprise |
|---|---|---|---|---|---|
| Client storefront, cart and checkout | ● | ● | ● | ● | ● |
| Markup profiles, margin floors, rounding | ● | ● | ● | ● | ● |
| Per-client contract, discount and volume rules | ● | ● | ● | ● | ● |
| Custom items and bundles | ● | ● | ● | ● | ● |
| Order approval, fulfilment and invoicing | ● | ● | ● | ● | ● |
| Block third-party distributors | — | ● | ● | ● | ● |
| Block the platform catalogue | — | — | ● | ● | ● |
A refused block returns the tier required, so the upgrade can be offered in place rather than as a dead end.
Sell your clients what you already buy for them, at the margin you meant to charge.