Everyone

Store (Product Catalog & Order Form)

How the public store presents products, pricing, and order forms to clients.

Last updated 1776211200
  • Order Form
  • Order Total Breakdown
  • Placing the Order
  • Admin: Managing the Store
  • Related Articles
  • 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:

    1. Base product price (for the selected billing cycle)
    2. Setup fee (if applicable, one-time charge on first invoice only)
    3. Configurable option costs
    4. Promo code discount (negative amount)
    5. Tax (based on client country and tax rules)
    6. 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:

    1. An invoice is generated and the client is redirected to pay it.
    2. On payment, provisioning begins (for automated products).
    3. 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

    Related Articles