Home > Help center > Management Panel Manual > Catalog - Options

Catalog - Options

The Options page includes all existing Options sorted out in a list with details, including a mention of the products they are attached to.

The Options are product-related settings that require additional information, when the product is purchased. This means specific data that is relevant to the product itself, helps identify it among items of the same type, and gives the purchaser the opportunity to personalize it. Options basically define the characteristics of a product, and more precisely - define a customer's specific "copy" of that product.

The idea behind this is that each user can purchase e.g. a domain or a hosting plan, but for each of them that product would be unique. Other users would be able to purchase the same product, but since their PII and customization preferences (when available) are uniquely their own, their "copy" of the product becomes one of a kind, as well. Options help define that uniqueness, as well as the desired characteristics of the product.

preview of product options

Options could be mandatory for completion, such as the domain name when purchasing a domain. This means that a customer cannot purchase a domain without entering a domain name, as this is a vital part of the product, otherwise it will not work properly. Other options are optional: they are suggested to the customer to complete, but they can choose not to do that, e.g. it's optional to add additional personal information, besides the names, phone and email address of the purchaser.

Additionally, some options may require a payment. This means that in order for the customer to use them, he may have to pay for them.

Options list sections

The list with Options has the following sections:

ColumnDefinition
ID- The unique ID of the product Option.
Option name- The title of the Option.
Key- Sets a name for the option for the system to recognize.
Namespace- The specific module/3rd party app/integration connected to the option. If there isn't any specific integration for this option or as a whole available int he system, then the module is selected as Legacy.
Type- Choose the type of the Option - Value-based, Choice-based, and Group-based. The types are defined further on in this article.
Provider- Choose which would be providing the option - the system, the user, or the interface. The providers are defined further on in this article.
Strategy- This defines the "strategy" of the option in case it is changed, i.e. what action the system would take when a product's option has been modified. The different strategies are defined further on in this article.
Tools- A section with the available admin actions for this product option row.

Filter table

The page has its own dedicated Filtering setting. It is set to display product options per the module selected for them. Naturally, this is expected to work in case the system has integrated any 3rd party modules. In case there aren't any and integration is not part of this Billia version, the only module that would appear would be Legacy. The image below displays an example list of 3rd party integrations.

filters

Available Admin actions

Control buttonDefinitionDetail
-searchSearch- Search the Options list via keyword.
-filterFilter- Filter the Options list by 3rd party integration/module.
edit2Edit- Edit the specific Product Option.
-deleteDelete- Delete the specific Product Option.
add-new1Add new- Create a new Product Option.

Create a new Product Option

Creating a new Product Option enables the Admin to be precise and specific during the setup. The settings involve the place where the option would appear, its characteristics, layout, etc. After making a choice on all settings, these generate a Product Option that plays a very particular role in a very specific way, which enables the user to provide important information to its fullest and partially decide how that product they are purchasing would behave for them.

creating a new product option

In order for the purpose, function, and setup of a Product Option to be perfectly clear, the creation of an option itself would be separated in three parts.

Product Option Information

This part of the creation of a Product Option is more descriptive.

SettingDefinition
Option name- Set the name of the Option. It is best to be a hint towards what the Option is about.
Option name I18N- Set the Product Option name through internationalization. Choose the language to use from the listed above.
Option key- Set the name of the product for the system to recognize. System key is set in the backend of the system.
Namespace- Choose the module of the Option. This is a 3rd party integration, e.g. CPanel. In the absence of such, the default module is Legacy, which means that there is no process automation associated with the Option.
Instruction- Set a description for the Option, it is visible to users.
Instruction I18N- Set the Product Option description through internationalization. Choose the language to use from the listed above.
turn-on-or-off- Show or Hide the Advanced options. This reveals a JSON field to type in а more specific configuration for that option, in case it is needed. Please see the example below.

Example: This example of a custom JSON configuration for the option states that the option is set in such a way, that it will take the option text data, which is a domain name, and create an email address with it.

{
“suffix”: [“@”, “@option_key[domain]“],
“preffix”: “”,
“validation”: {
  “max”: “@option_key[limit]“,
  “min”: 0,
  “validator”: “email_local”
}
}

Note: This specific JSON syntax depends on the Option Value. It is custom and individual. The example given is for the CSV Option Value, which is described further on in this article.

Option Type

This section displays the available Option Types. These set the behavior of the option in regards to its completion and visualization, i e. whether the user will complete that option by typing a simple text in a single field, make a choice between values from a drop-down menu, or set preferences on a group of choices.

There are three Option Types:

Option TypeDefinitionDetail
value-based-typesValue-based- This type defines the option as a simple string. Options of this type are cost-free and the most simple.
choice-based-typesChoice-based- This type defines the option as a choice for the user. They can then select the best one for them. These options may have their own price.
group-based-typesGroup-based- This type defines the option as being a group of two or more options, usually both value-based and choice-based ones.

Value-based type

This type is the most simple Option type. It means that most of the time it requires a text in order to be completed and valid. Therefor, it doesn't require anything additional as a setup.

Example: A Value-based option is considered to be, e.g. the name of a domain. It requires only a value, in this case like most - a text, without the need of more complex setups.

Choice-based type

This type sets the option to be a choice of multiple selections. Then the user can choose the most preferred one.

When an Option is choice-based, these choices need to be actually set. This is done from the respective control buttons. There are two ways to add Choices for the option: add one by one, or add many at once:

Add ChoiceDefinitionDetail
Alternative textAdd Choice- This button is to add one choice at a time.
Alternative textGenerate Choices- This button assists in adding a range of choices, multiple at once.
Alternative textImport Choices- This button allows for choices to be imported from a local file.
Add Choice

Adding a choice this way (one by one) is done by completing all fields in the pop-up:

complete fields to add a choice

Add choice fieldDetail
Name- Set the name for the Choice.
Name I18N- Set the Choice name through internationalization. Choose the language to use from the listed above.
Value- Set the value in question for the choice. Options are closely connected to Modules, where each one works with a specific unit of measurement - GB, MB, etc. Hence the value for the choice would be set as a number only, and the measuring unit will depend on the Module for that Option.
Unit price- As mentioned, Product Options of the Choice-based type can have a price. If the specific choice the Admin is creating requires one, it needs to be set here.
Install price- Some Options may require installation. When they do, this would cost a certain amount, so it is set here.
turn-on-or-off Enabled- Scroll to enable the choice, otherwise it is not active, i.e. it is disabled.
turn-on-or-off Default- Scroll to set this specific choice to be default one for the choice preview.
Generate Choices

In cases where it is required for the Admin to add multiple choices, this may take too long and can be too tedious of a job. So the best way to do it is to set ranges for the choices by using the button Generate Choices. It works in a way where the start value is set, the step it advances with, its price, and how many choices need to be created.

complete the fields to generate choices

Generate choices fieldDetail
Name prefix- The Name-specified fields are for the visualization of the choice for the user. Set the prefix name of the choice, only if needed. Example - if you are setting a choice range for HDDs, the name could be "HDD 200 GB", where in this case "HDD" is the prefix.
Name start- Set the actual name of the choice range, this is the part that the system will automatically recalculate to create the multiple choices. In the example "HDD 200 GB", the part "200" is the name, and after all settings here have been completed, the system will know to build up this number by a certain step.
Name suffix- Set the suffix of the choice range, in the example "HDD 200 GB" the "GB" is the suffix part.
Value prefix- The Value-specified fields are specifically for the backend of the system. Usually the have the same title as the Name fields. This field requires the prefix of the choice.
Value start- This field requires the actual name of the choice range.
Value suffix- This field requires the suffix of the choice range.
Unit price start- This field is for the price of the initial choice, i.e. this would set the price for the first/lowest/smallest choice from the range. After all other settings are completed, the system will build up on this price according to every other generated choice.
Unit price increase- How much each price will be increased with. Example - with a Unit Price of $10 and Unit price increase of $5, the choices generated would have the following pricing: $10, $15, $20, $25, $30, etc.
Install price start- In case the option requires an Installation of some kind, it may also have a cost. Its initial price is set here, i.e. the install price for the first/lowest/smallest choice from the range.
Install price increase- How much each install price would be increased with.
Count- How many choices this range will have. The number specified here will be taken into account by the system to generate that many options.
Step- The step is the value which the choice gets increased with. In this example.
turn-on-or-off Enable- Enable this choice generating, otherwise the choices of this option will be unusable.

Let's take the example for storage capacity by a specific HDD manufacturer from above in detail:

example of completed fields for choice generating

By the example of the screenshot above, the system will generate the following choice range:

  • HDD 200 GB being the initial or smallest choice;

  • It costs $50 (the currency depends on the module and settings of the Billia Management panel);

  • The system will generate in total five choices;

  • Each next choice will have 50 GB more capacity and will cost $25 more than the previous one;

  • There is no install price needed, hence it is 0.

  • Finally, all the choices that will be generated are: HDD 200 GB with price $50, HDD 250 GB with price $75, HDD 300 GB with price $100, HDD 350 GB with price $125 and HDD 400 GB with price $150.

Import Choices

This way already configured Product Option choices, saved as a JSON local file, can be imported directly to the system and the Product Option at hand.

import choices

Example - The following data are Product Option choices configured in the JSON format. Using this format, bulk Product Option choices can be quickly imported.

Note: The specific choices that would be included in the JSON file can be generated from any convenient for the Administrator location/engine, as long as the format is correct.

[
  {
    "value": 1,
    "name": "БЪЛГАРИЯ",
    "_language": {
      "translations": {
        "name": {
          "en-US": "BULGARIA"
        }
      }
    },
    "sort_weight": 246
  },
  {
    "value": 2,
    "name": "АВСТРАЛИЯ",
    "_language": {
      "translations": {
        "name": {
          "en-US": "AUSTRALIA"
        }
      }
    },
    "sort_weight": 245
  },
  {
    "value": 3,
    "name": "АВСТРИЯ",
    "_language": {
      "translations": {
        "name": {
          "en-US": "AUSTRIA"
        }
      }
    },
    "sort_weight": 244
  },
  {
    "value": 4,
    "name": "АЗЪРБАЙДЖАН",
    "_language": {
      "translations": {
        "name": {
          "en-US": "AZERBAIJAN"
        }
      }
    },
    "sort_weight": 243
  },
  {
    "value": 5,
    "name": "АЛБАНИЯ",
    "_language": {
      "translations": {
        "name": {
          "en-US": "ALBANIA"
        }
      }
    },
    "sort_weight": 242
  },
  {
    "value": 6,
    "name": "АЛЖИР",
    "_language": {
      "translations": {
        "name": {
          "en-US": "ALGERIA"
        }
      }
    },
    "sort_weight": 241
  },
  {
    "value": 7,
    "name": "АНГИЯ",
    "_language": {
      "translations": {
        "name": {
          "en-US": "ANGUILLA"
        }
      }
    },
    "sort_weight": 240
  },
  {
    "value": 8,
    "name": "АНГОЛА",
    "_language": {
      "translations": {
        "name": {
          "en-US": "ANGOLA"
        }
      }
    },
    "sort_weight": 239
  },
  {
    "value": 9,
    "name": "АНДОРА",
    "_language": {
      "translations": {
        "name": {
          "en-US": "ANDORRA"
        }
      }
    },
    "sort_weight": 238
  },
  {
    "value": 10,
    "name": "АНТИГУА И БАРБУДА",
    "_language": {
      "translations": {
        "name": {
          "en-US": "ANTIGUA AND BARBUDA"
        }
      }
    },
    "sort_weight": 237
  }
]
Choices List Preview

After the choices have been generated, no matter through which of the two ways, their preview is displayed in a list.

preview of the list with choices

ColumnDefinition
ID- Displays the unique ID of the choice.
Name- Displays the name of the choice, i.e. the essence of that choice, visible to the customer.
Value- Displays the value of the choice, i.e. the system-related name of the choice.
Unit price- The price of that choice, how much it costs.
Install price- How much the installation cost (if available).
Enabled- Displays whether the choice is enabled or disabled.
Default- Displays whether the choice is set as the default one of the list.

The available actions for the preview list of choices are:

Control buttonDefinitionDetail
sort-listSort- Change the order of the choices in the list.
turn-on-or-offEnable/Disable- Enable or disable that choice.
selected deselectedSelect/Deselect- If selected, that choice becomes the default one for the list, i.e. the first one that appears for the user to choose.
edit2Edit- Edit the choice.
-deleteDelete- Delete the choice.

Group-based type

This type sets two or more already existing Options in one group, which by itself plays the role of a separate option. Most of the time, choice-based options are included into group-based options.

create-group-option

Example - When the product offered to the customer needs to have particular storage capacity, this is a group-based option, as the customer could then choose if they want a HDD or SSD drive. At the same time, each of the HDD and SSD options has choices of specific capacities with respective prices.

Search for an Option

The first in order to create a Group-based Option is to find already created options to add. For the purpose, please use the Search option, which will preview matching results in a drop-down menu.

search-for-option

Options list

All chosen Options appear in the list below. It consists of:

ColumnDefinition
ID- Displays the unique ID of that Option.
Option name- Displays the name of the Option.
Key- Displays the system key for the Option.
Namespace- Displays the module/3rd party integration chosen for that Option.
Instruction- Displays the description of the Option.

The available Admin actions include:

Control buttonDefinitionDetail
-searchSearch- Search for Options to add to the group.
sort-listSort- Change the order of the Options in the list.
expand2Expand- Expand the Option to view its details, such as unit price, name, etc.
edit2Edit- Edit that option. When this Edit setting is chosen from here, the page will transfer over to that specific Option to be edited. This action will not happen in the group-based option itself.
-deleteDelete- Delete that Option. This will delete it only from the group-based option's list.

Settings

After the initial information for the option and setting its type, the next step is deciding provider and visibility settings.

settings for options

Provider

The Provider basically sets Who provides the information for the Option.

preview of providers

There are three Provider types:

ProviderDefinition
User- Defines that the user will be providing the information for the Option. This means that the user will be filling in the details. E.g. - if the Option is to type a contact email address, the user is the only one who can give that information.
System- Defines that the system automatically will provide the information. E.g. - server, IP, password (automatically generated), etc.
Interface- Defines that the information is provided through the software UI. Due to its complexity, more information on this specific Provider can be found below.

Interface Provider

This is a more specific type of a Provider. It is usually used for those options that take part in group-based options.

In such cases, the group itself can have a different Provider, but the options attached to it must have the Interface provider. This is done due to the visualization of that Option.

Example 1 - If an option, which is part of a group-based option, has a different Provider than Interface, this will cause the system to visualize it for the product twice - once as part of the group, and once on its own. This is not the desired way for group-based options to work.

Example 2 - If an option, which is part of a group-based option, has Provider Interface, this will tell the system, that it has to visualize it for the product only as a part of the group-based option it is attached to. Basically - the UI of the software will visualize that option in the group and will give the opportunity to be completed with the information necessary.

Visibility

This section of the Options setup sets the platforms/software/location of where an option would appear. The Billia Billing system enables the purchase of products through the main eCommerce page, the customer's account, etc., so the Options of products can show up at multiple locations.

preview of the visibility

The visibility locations themselves are set in a different subcategory of the Catalog, called Visibility Manager. For more information on that, please click here.

The available Admin actions include:

Control buttonDefinitionDetail
checkbox-filledSelect- Select this location for the Option to be visible there.
checkboxDeselect- Leave this box deselected to make sure the option will not be visible on that location.

More Settings

The last settings for the Options setup include the visualization style, additional actions, and the validator of the Option.

Value

The Value sets the style of the option visualization. This means how it would show up: as a single field, as a slider option, as a choice yes/no, etc.

preview of values for options

Note: Please note that the Values are custom logic added to the Billia engine. Therefor, other such could be set to work. This would depend on the business's area of work, the clientele base, and the specifics of the catalog products.

There are multiple layout possibilities, please see the list below:

ValueDefinition
Text- Sets a simple field to type in plain text.
Slider- Sets the option to have a slider to enable or disable it.
Radio- Sets the option to have a radio button, i.e. a check circle, much like the checkbox.
Password- Sets a field which has its symbols hidden, in order for a user to be able to securely type in a password. Has also the ability to show the symbols.
On/Off- Sets the option to have an enabling value - to be turned on or off.
Money- Sets a money-related field, which is usually used for fund deposits. It is the only type of value that can set a value-based option to cost anything. It sets a field that accepts money amount. The data set on that field is expected to be an amount.
Min-Max- Sets the option to have a minimum to maximum layout, which can be set as a level by the user.
Drop-down- Sets the option to include a drop-down menu, usually used for choice-based product, as this is the most used and convenient way to display all choices.
CSV- This value provides the user with the opportunity to custom select how many additional fields for a range of the same data they want while purchasing a product. It is created with the purpose of making sure the correct data is set and is well visualized.
Checkbox- Sets the option to have a checkbox, another enabling value.
Option strategy

This setting sets the action that the system will take when a change has been made to the option.

Example 1 - If a customer decides to change the available storage space for their Cloud. This involves the option for storage capacity. No matter of its type, when modified e.g. from 100GB to 200GB, the system needs to take action in regards to the option change.

Example 2 - If a customer decides to modify their domain to not have privacy anymore. So they go to the domain settings and switch off the Privacy setting. For the Billia software this is a Product Option.

strategy for options

The difference between the examples provided above is the fact that the first option has a price, and the second doesn't. So there is a big difference to how the system will proceed when an option has been modified.

There are a few possibilities for strategies:

StrategyDefinition
Auto- This strategy means that if an option gets modified, the system will do an automated evaluation on what type of action to make. This is the most used strategy type.
Direct- This strategy means that if an option gets modified, the system will save that information directly into the database.
Order- This strategy is connected to options that have a price and means that if one such gets modified, the system will then automatically place the order for it.
Order_approved- This strategy is too connected to options that have a price and means that if one such gets modified, the system will then automatically approve the order for it.
Cart- This strategy will put the changed item in the cart, in preparation for that new purchase to be completed.
Save only- This strategy will save all changes made in the system. It is used with more specific products and their modifications.
Validator

This setting is frontend-related and validates the option in the browser, i.e. sets how an input check will be performed on the option. The Validator confirms that the certain option is actually consistent with its details. Example: if an IP-related option really demands an IP string.

validator options

Note: Please note that the Validator is a custom logic added to the Billia engine. Therefor, other validating options may be set to work.

There are a few validators:

ValidatorDefinition
Default- This is the default Validator.
Domain- Performs a check that the option requiring a domain, will be completed with a text which is a valid domain name.
Email- Performs a check that the option requiring an email address, will be completed with a text which is a valid email address.
Email_local- This performs a check on the first half of the email address, the part till the @ symbol. It makes sure that the structure there is correct, without spaces or unrecognized symbols.
URL- Performs a check that the option requiring an address, will be completed with a text which is a valid URL.
IPv4- Performs a check that the option requiring an IPv4, will be completed with a valid such IP.
IPv6- Performs a check that the option requiring an IPv6, will be completed with a valid such IP.
Post Configuration

This setting specifies whether customers would be able to modify Product Options after their selected product has been already purchased.

post configuration setup

Post ConfigurationDefinition
Enabled- Specifies that customers will be able to edit this particular Product Option in their already purchased product.
Disabled- Specifies that customers will not be able to edit this particular Product Option in their already purchased product.
only_management- Specifies that only Administrators will be able to edit this particular Product Option in the customer's already purchased product.
Additional Admin Actions
ActionDefinition
Required- If this box is checked, it would mean that the option is obligatory for completion and the product cannot be purchased without providing valid information for it.
Product Identifier- Specify if this option will be the product identifier for a product, i.e. if this option as a feature will be the one to specify the particular product so that it is distinguished from others of the same type.

Option Products

After a Product Option has been created and attached to various products, these will appear beneath the settings for that option in its edit mode.

related-products-to-option

Clicking on the product name or the pen icon will transfer over to that product's edit page. For more information on that please click here.

Saving

Please find below the saving options while creating or editing a Product Option:

Control buttonDefinitionDetail
save-as-newSave as new- Save as a copy of the Product Option.
save-changes2Save- Save changes made.