B2B hosting where every customer sees their own price.
A wholesale store is a shop where the price tag depends on who is looking. That single difference undoes most of what makes ordinary ecommerce hosting fast.
One catalogue, many price lists.
Everything here follows from prices and visibility being account-specific rather than global.
Nobody sees another account's pricing
Cached product and category pages are keyed by pricing tier, so a customer on standard terms is never handed the page rendered for somebody on negotiated rates.
Bulk order forms that actually submit
A trade customer orders two hundred lines at once, which posts a form far larger than a retail checkout. Request limits are raised so the order lands rather than being truncated.
Account-specific catalogues
Restricted products and per-account visibility rules are checked on every listing query. Those lookups come from memory rather than from a join on every product row.
Price list imports that finish
Wholesale pricing arrives as spreadsheets covering thousands of products. Import runs get their own limits so a full price update completes overnight.
Roll back a bad price update
An import that applies the wrong tier to the wrong accounts is a commercial problem, not a technical one. Daily backups make it reversible.
Retail assumptions that do not hold.
Almost every performance technique for ecommerce assumes the catalogue looks the same to everybody. On a wholesale store none of it does.
- Cached pages separated by pricing tier
- Order forms sized for hundreds of lines
- Visibility rules resolved from cache
- Price imports run to completion
Fast, without showing the wrong number.
The risk on a B2B store is not a slow page. It is a cached page that quotes one customer the price agreed with another.
What we change for B2B stores
The whole page depends on who is asking, which is the assumption ordinary store tuning is built on not being true.
| Setting | What we do | Why |
|---|---|---|
| Cache key | Includes the customer's pricing tier | Quoting one account the rate negotiated with another is a commercial problem that a shared cache entry creates instantly. |
| Request limits | Raised for bulk order submissions | A trade order of hundreds of lines posts a body many times larger than a retail checkout, and the default silently truncates it. |
| Visibility rules | Resolved from the object cache | Per-account product restrictions are evaluated on every listing query, which is a join against every row without caching. |
| Price imports | Batch limits separate from web requests | A wholesale price list covers thousands of products, and a partial import leaves some accounts quoting last quarter's rates. |
| Tax and shipping rules | Cached per account group | B2B tax handling varies by account and region, and recalculating it per request is work repeated for no benefit. |
Simple, transparent pricing.
Every plan includes free migration, daily backups, SSL and 24/7 support.
- 1 WordPress site
- 10 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Support tickets
- 5 WordPress sites
- 50 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Priority support tickets
- 20 WordPress sites
- 200 GB NVMe disk
- Free SSL
- Daily backups
- One-click deployment
- Dedicated support
Questions, answered.
Can a customer ever see the wrong price?
Which wholesale plugins work?
Why do my large orders fail to submit?
Can I import price lists from a spreadsheet?
Quote every account correctly.
Move the trade store across - migration is free, price lists included.