How to create Configurable Options. Configurable Options request additional information from clients when ordering packages. |
Table of Contents |
---|
Configurable Options consist of additional fields that request information from clients when ordering packages. These fields can have a price associated with them and add to the base price set for the package. Configurable Options can be of the following types:
Configurable Option values are passed into modules during service provisioning, so modules expecting these fields can use the information to alter the way they provision the service.
Configurable Option Group Overview
Configurable Options Overview
To create a configurable option group, visit [Packages] > [Options] and click the "Create Group" button.
The following form will be displayed:
Options are assigned to Option Groups, and Option Groups are assigned to Packages. That association can be made here, or it can be made when creating or editing Packages. |
To create a configurable option, visit [Packages] > [Options] and click the "Create Option" button.
The following form will be displayed:
There are several sections, Basic, Options, and Group Membership.
The Basic section requires the following fields:
The options that are displayed vary depending on the "Type" selected above.
When creating an option of the type check-box, the following will be displayed:
Enter the pricing for this option for every term and currency that this option should exist for.
If a client chooses a package term that does not exist for this option, this option will not appear. For example, if a 3 month term is selected for the package, and there is no 3 month term in the same currency for this option, it will be unavailable. |
When creating an option of the type radio, the following will be displayed:
Enter the pricing for this option for every term and currency that this option should exist for.
If a client chooses a package term that does not exist for this option, this option will not appear. For example, if a 3 month term is selected for the package, and there is no 3 month term in the same currency for this option, it will be unavailable. |
The drop down type looks identical to the radio type:
Enter the pricing for this option for every term and currency that this option should exist for.
If a client chooses a package term that does not exist for this option, this option will not appear. For example, if a 3 month term is selected for the package, and there is no 3 month term in the same currency for this option, it will be unavailable. |
When creating an option of the type quantity, the following is displayed:
A good example of a quantity field is server memory. A minimum amount of 512 (representing RAM), a max of 4096, and a step of 256 means the user could select 512MB, 768MB, 1024MB, up to 4096. |
Enter the pricing for this option for every term and currency that this option should exist for. The price is per-unit. So, if the user selects a quantity of 100 for example, it will be multiplied by the price defined here.
If a client chooses a package term that does not exist for this option, this option will not appear. For example, if a 3 month term is selected for the package, and there is no 3 month term in the same currency for this option, it will be unavailable. |
When creating an option of the type text, the following will be displayed:
Enter the pricing for this option for every term and currency that this option should exist for.
If a client chooses a package term that does not exist for this option, this option will not appear. For example, if a 3 month term is selected for the package, and there is no 3 month term in the same currency for this option, it will be unavailable. |
When creating an option of the type textarea, the following will be displayed:
Enter the pricing for this option for every term and currency that this option should exist for.
If a client chooses a package term that does not exist for this option, this option will not appear. For example, if a 3 month term is selected for the package, and there is no 3 month term in the same currency for this option, it will be unavailable. |
When creating an option of the type password, the following will be displayed:
Enter the pricing for this option for every term and currency that this option should exist for.
If a client chooses a package term that does not exist for this option, this option will not appear. For example, if a 3 month term is selected for the package, and there is no 3 month term in the same currency for this option, it will be unavailable. |
Configurable Options must be assigned to one or more Configurable Option Groups in order to be usable. Assigning configurable options to packages is a matter of assigning a configurable option group to a package, which can be done in either of two ways:
That's it! When clients order packages, the options contained in all configurable option groups that are assigned to the package will be available.
Configurable Options can be sorted within their groups by clicking to expand the group and using drag and drop to order them.
On this screen, hovering over the options under the group will display a sort icon in the left most column. To sort, click and hold on the option you wish to move, and drag it up or down in the list, releasing it where you wish to place it.
Configurable options can be used in welcome emails and are numerically indexed within the services.options array. As an example, the value for the first configurable option would be available by using the following tag:
{services.options.0.value} |
If you want to show all options, it's better to use a for loop. This will show the field label and the value, e.g.
License Key: 123-my-license-key
Notes: Here are some notes.
...
{% for option in service.options %} {option.option_label}: {option.value} {% endfor %} |
To determine what index your config option has, you can use the {% debug %} tag in your welcome email and observe the data. Do not leave the tag in your welcome email, it may contain sensitive data that should not be emailed to clients. Below is an example of the array using a config option label of "License Key", with a name of "license-key", and a value of "new-key-123-abcdefg-license". Indexes start at 0, so the first will have an index of 0, the second an index of 1, and so on.
[service] => stdClass Object ( [id] => 3 .... [options] => Array ( [0] => stdClass Object ( [id] => 2 [service_id] => 3 [option_pricing_id] => 1 [qty] => 1 [value] => new-key-123-abcdefg-license [encrypted] => 0 [option_value] => [option_value_name] => [option_id] => 1 [option_label] => License Key [option_name] => license-key [option_type] => textarea [option_addable] => 0 [option_editable] => 0 [option_pricing_term] => 1 [option_pricing_period] => month [option_pricing_price] => 0.0000 [option_pricing_price_renews] => 0.0000 [option_pricing_setup_fee] => 0.0000 [option_pricing_currency] => USD ) ) |