> ## Documentation Index
> Fetch the complete documentation index at: https://www.billingserv.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Package Options

> Add-ons and configurable extras customers can choose when ordering.

## What this page is for

The **Package Options** page is where you create reusable extras that can be attached to one or more packages.

Use this for things like extra storage, premium support, additional resources, or any other configurable choice you want customers to select during checkout.

Once created, these options can be linked from the **Package options** section inside each package.

## What you'll see

* **Package option list**\
  A table of the options you've created.
  * **Edit**: Update the option's names, type, or requirement setting.
  * **Delete**: Remove an option you no longer want to offer.
* **Add Package Option**\
  Creates a new option that can later be attached to packages.

For most teams, the usual flow is:

1. Create the option once in **Package Options**.
2. Attach it to one or more products in **Packages**.
3. Test the order form to confirm the option appears as expected.

## Adding a new package option

When you click **Add Package Option**, you'll set up the core fields below.

### Option details

* **Internal name**\
  Admin-facing name used to identify the option in your panel and API. Keep this clear and consistent (for example `extra_storage_100gb` or `priority_support`).

* **Display name**\
  Customer-facing label shown on the order form (for example "Extra Storage (100GB)").

* **Field type**\
  Controls how the option is presented on the order form (for example a selectable input type).\
  In the API, this maps to a numeric value (`field_type`, range `0-5`).

* **Required**\
  Controls whether customers must provide/select this option before checkout.
  * **Yes**: Customer must choose or fill this option.
  * **No**: Option is optional.

## Linking options to packages

Creating an option does not automatically show it on every product.

To make it available to customers:

1. Open the target package in **Packages**.
2. Go to the **Package options** section.
3. Select the option(s) you want available for that package.
4. Save and preview the order form.

This lets you reuse the same option across multiple products while keeping each package's checkout experience focused.

## Field types

The **Field type** controls the input customers see:

* **Dropdown select box**: Customers choose one value from a list configured under the option's values.
* **Text input**: Customers type a value such as a hostname or identifier.
* **Numeric input**: Customers enter a number. Use this for quantities or measurable resources.
* **Choices radio button**: Customers choose one visible option from a short list.
* **Checkbox**: Customers tick an option on or off.
* **Toggle**: Customers switch an option between disabled and enabled.

The **Required** toggle controls whether the customer must complete the field before ordering. Required does not create a default value, so make sure the option has usable values or instructions.

### Values

Open the option's values manager to add the choices customers can select. Each value can have a display name, cycle type, price, and setup fee. The cycle type ties the extra charge to a billing period, while the setup fee is charged once when the option is first ordered.

## Using the Package Options page day-to-day

* Reuse existing options across packages instead of creating duplicates.
* Keep **Internal name** stable so API and automation references remain clean.
* Use clear **Display name** wording so customers understand the choice immediately.
* Review and remove old options that are no longer attached to active packages.
