Configurable Options
Let customers customize a package at checkout, such as RAM, location or software version, and charge for the extras.
Configurable options are extra fields the customer fills in when they order a package. They can do two things:
- Change what gets provisioned. An option can override one of the package's server settings, for example letting the customer choose the amount of memory or the game version.
- Change the price. Each choice or unit can add a daily cost, which is turned into the right amount for whatever billing cycle the customer chose.
Create an option
Open the package, go to the Config Options tab and click Create.
| Field | Description |
|---|---|
| Field | Which setting this option controls. The list contains every server setting the package's server extension marks as configurable, plus Custom. |
| Custom Key | If you chose Custom, a key of your own. The value is stored on the order and is available to extensions and staff, but isn't used for provisioning unless an extension reads it. |
| Type | How the field is shown (see below). |
| Onetime Day Equivalent | For one-time packages, how many days of the option's daily price to charge. Default: 365. |
After creating the option, edit it to fill in its details:
| Field | Description |
|---|---|
| Label & Description | What the customer sees. |
| Default Value | The value used if the customer doesn't choose one. |
| Rules | Laravel validation rules, for example required or required|integer|min:1. |
Option types
| Type | Customer sees | Pricing |
|---|---|---|
| Select | A dropdown | Each choice has its own daily price. |
| Radio | Selectable cards, each with a title, description and optional icon | Each choice has its own daily price. |
| Range | A slider | Daily price per unit above the free value. |
| Number | A number field | Daily price per unit above the free value. |
| Text, Textarea, Email, Password | A text field | Free. Use these to collect information, such as a hostname or a server name. |
Select and radio
Add one row per choice, with an Option Value (what's stored and sent to the server), an Option Name (what the customer sees) and a Daily Price. For radio options you can also add a description and an icon URL.
Example: a "Location" option with the choices eu (Amsterdam, free) and us (New York, €0.05 per day).
Range and number
Set the Minimum, Maximum and Step values, a Free Value, and a Daily Price Per Unit. Only the units above the free value are charged.
Example: "Memory (GB)" from 2 to 16, free value 2, €0.02 per GB per day. A customer who picks 6 GB pays for 4 GB: 4 × €0.02 × 30 = €2.40 extra on a monthly order.
How option prices work
Option prices are entered per day so that one setting works for every billing cycle:
option cost for the cycle = daily price × days in the cycle (× billable units for range/number)| Customer's cycle | €0.05 per day option costs |
|---|---|
| Monthly (30 days) | €1.50 |
| Quarterly (90 days) | €4.50 |
| Annually (365 days) | €18.25 |
| One time (Onetime Day Equivalent 365) | €18.25 |
The customer sees a full price breakdown on the package page and in the cart before checkout. Every chosen value is validated on the server: values outside the allowed choices or the min/max range are rejected.
After the order is placed
Selected options are saved on the order as separate price lines. Staff can see them on the order's Prices tab. They renew together with the order, and server extensions read them when they provision the service.