What Is a Product?
A product is anything a client can order through your store. Every product belongs to a product group, has a type that controls provisioning behaviour, and carries a status that determines visibility.
Products are priced independently per billing cycle and per currency in a pricing matrix. They can have configurable options so clients can customise their order at checkout.
Product Groups
Products are organised into groups (e.g. Shared Hosting, VPS, Domains). The group appears as a section heading in the public store. See Product Groups for how to create and order them.
Product Types
| Type | Provisioning | Notes |
|---|---|---|
hosting |
Automatic via provisioning module | Requires a server group and package name |
domain |
Handled by domain registrar module | Pricing comes from TLD table, not the pricing matrix |
other |
Manual — admin marks active | No provisioning module; useful for one-off services |
See Product Types for a full breakdown of how each type affects the order flow.
Product Statuses
| Status | Public store | Direct link | New orders |
|---|---|---|---|
active |
Visible | Yes | Allowed |
hidden |
Not visible | Yes | Allowed |
retired |
Not visible | No | Blocked |
- Active products appear in the store and can be ordered by anyone.
- Hidden products are invisible in the store but orderable via their direct URL — useful for custom or one-off offers sent to specific clients.
- Retired products can no longer be ordered. Existing services on retired products are unaffected and continue to renew normally.
[!TIP] Use
hiddenwhen you want to offer a product to a specific client without listing it publicly. Share the direct product URL with them.
[!IMPORTANT] Do not retire a product while clients still have active services on it. Change the status to
hiddenfirst until all services have been migrated or cancelled.
Pricing
Prices are stored as BIGINT cents in the database and displayed in human-readable format in the admin UI. Each product has a pricing matrix covering all supported billing cycles and currencies. See Pricing Matrix & Billing Cycles.
Configurable Options
Optional add-ons (disk space, backups, RAM) can be attached to a product via option groups. Options are presented to the client on the order form and stored on the order item as JSON. See Configurable Options Overview.
Where Products Appear
- Public store —
/store— lists active products grouped by product group. - Admin order creation — Admin → Clients → [client] → New Order — all active and hidden products are selectable.
- Direct product URL —
/store/product/{slug}— works for active and hidden products.