Accessing the Store
The store is available at /store and requires no login to browse. It is also reachable via a View All Plans button on the portal home page. Products are grouped into sections defined by the product group configuration in the admin panel.
Product Catalog
Products are displayed as cards organised by product group. Each card shows:
- Product name and short description
- Starting price (cheapest available billing cycle by default)
- A billing cycle selector (monthly, quarterly, semi-annually, annually, etc.)
- A Get Started or Order Now button
Prices are displayed in the visiting client's preferred currency. For guests (not logged in), the store uses the system default currency set at Admin → Settings → Currencies.
[!TIP] To change which billing cycle is shown by default on a product card, set the "Default cycle" on the product edit page. If unset, Commerce picks the cheapest available cycle.
Product Groups
Product groups act as sections on the store page. Each group has a name, description, and display order. Groups with no active products are hidden automatically.
Order Form
Clicking a product card opens the order form for that product at /store/order/{product}.
Order Form Fields
| Section | Details |
|---|---|
| Billing cycle | Dropdown showing all cycles with their prices |
| Configurable options | Any options defined for the product (e.g. RAM, storage, control panel) |
| Domain name field | Present only for domain-type products |
| Promo code | Text input with AJAX real-time validation |
| Order total | Itemised breakdown that updates live |
Configurable Options
If the product has configurable options defined, they appear below the billing cycle selector. Each option has its own pricing that is added to the base product price. The order total updates in real time as options are selected.
Promo Code Validation
The promo code field validates the entered code via an AJAX request as soon as the client leaves the field (on blur). The result is shown inline:
- Valid code: the discount amount is shown in the order total and a green confirmation message appears.
- Invalid or expired code: a red error message is shown and no discount is applied.
Order Total Breakdown
The order total section shows:
- Base product price (for the selected billing cycle)
- Setup fee (if applicable, one-time charge on first invoice only)
- Configurable option costs
- Promo code discount (negative amount)
- Tax (based on client country and tax rules)
- Total due today
Placing the Order
Completing an order requires a client login. If the visitor is not logged in when they click Place Order, they are redirected to /client/login with the order preserved in the session. After logging in, they are returned to the order review step automatically.
[!IMPORTANT] Guest carts are session-based and will be lost if the browser session expires before the client logs in. Encourage clients to sign in before starting a long configuration.
After confirming the order:
- An invoice is generated and the client is redirected to pay it.
- On payment, provisioning begins (for automated products).
- A welcome email is sent once the service is active.
See Ordering Products for the complete step-by-step flow.
Admin: Managing the Store
| Task | Location |
|---|---|
| Create product groups | Admin → Products → Groups |
| Create products | Admin → Products → New Product |
| Set billing cycles and prices | Product edit → Pricing tab |
| Define configurable options | Product edit → Options tab |
| Create promo codes | Admin → Billing → Promo Codes |
| Set default currency | Admin → Settings → Currencies |