Everyone

Public Order Form & Cart

How the client-facing store and order form work, from product browsing to checkout.

Last updated 1776211200

Client Journey

  1. Client visits /store.
  2. Browses product groups and product cards.
  3. Clicks a product → product detail / order page.
  4. Selects a billing cycle.
  5. Configures any configurable options.
  6. Enters a promo code (optional).
  7. Clicks Order → order review page.
  8. Accepts terms and submits → invoice generated → redirected to payment page.

The Store Page (/store)

  • Products are grouped by product group.
  • Only active products in visible groups are shown.
  • Prices display in the client's preferred currency (default currency if not logged in).
  • The cheapest per-month billing cycle is highlighted as "Best value".

Billing Cycle Selection

The order page lists all enabled billing cycles for the selected product with their prices. The client selects one cycle before proceeding.

[!TIP] Offering Annual alongside Monthly with a clear per-month saving nudges clients toward longer commitments and lower churn.


Configurable Options

If the product has option groups linked, they are shown below the cycle selector. Each option type renders appropriately:

Type Rendered as
dropdown <select> dropdown
radio Radio button group
checkbox Checkbox with inline price
quantity Number input with per-unit price label

Prices update in real time as the client changes selections.


Promo Code Field

The promo code field is on the order form below the options section. Behaviour:

  • Validated via AJAX on blur (when client leaves the field).
  • Valid code: discount shown in the order summary immediately, code locked in.
  • Invalid code: inline error message (expired / not found / not applicable to this product).
  • Only one promo code per order.

Domain Products

For domain type products, the order form additionally shows:

  1. Domain field — client enters the domain name they want to register.
  2. Availability check — checked against the registrar API.
  3. WHOIS registrant contact form — name, organisation, address, email, phone.
  4. Registration period selector — pulled from the TLD configuration.

Cart Behaviour

The cart is session-based. If the client leaves and comes back, the cart persists for the duration of the browser session. There is no saved/persistent cart across sessions.

[!WARNING] If a client's session expires mid-order, they will need to start the order again. The order is only committed when they submit the final form.


Order Review Page

Before submitting, the client sees a full breakdown:

Starter Hosting Plan — Annual
  Base price                  $99.99
  Disk Space: 50 GB           +$48.00
  Setup fee                   +$0.00
  Promo SAVE20 (20% off)      -$29.60
  ─────────────────────────────────
  Total                       $118.39

Tax is applied if configured. A Terms & Conditions checkbox must be ticked before submitting.


After Submission

On form submission:

  1. Order record created (pending).
  2. Invoice generated and linked to the order.
  3. Client redirected to the invoice payment page.

See Order Lifecycle for what happens after payment.


Related Articles