Skip to content

Packages

Packages are the core of what you sell to clients. A Package defines a specific product, complete with pricing, stock limitations, scaling options, and the Provisioning Plugin that will run when a client purchases it. In other platforms, these are usually referred to as Products or Services.

Every Package must be connected to one Catalog.

Creating a New Package

When you create or edit a Package, there are several key tabs you must configure: Summary, Pricing, Provisioning Plugin, and Scaling.

Summary Tab

FieldDescription
CatalogSelect the catalog to which this package belongs.
NameEnter the name of the product package.
SlugEnter a unique URL-friendly identifier for this package. It will be used in product URLs.
DescriptionProvide a brief description of the package. HTML element supported.
IconChoose an icon file to represent the package.
StockEnter the total available stock for this package. Use -1 for unlimited stock.
Per User LimitSet the maximum number of this package a single user can purchase. Use -1 for no limit.
Allow CancellationEnable to let customers request service cancellation for this package.
Allow QuantityEnable to let customers purchase multiple or single quantities of this package.
Prorata Billing DaySet a specific day of the month (1–28) to enable prorata billing for this package. Leave empty to disable prorata billing.
Charge Next MonthSet a specific day of the month (1–28) as the threshold. If a client orders on or after this day, their initial invoice will include the prorata amount plus the full cycle for the next month. Leave empty to only charge the prorata amount.
Auto ProvisioningEnable to automatically run provisioning and activate the service upon invoice payment. If disabled, admins must manually trigger provisioning.
StatusSet the status of the package to visible or hidden.

Pricing Tab

Billmora supports various pricing structures per package.

FieldDescription
NameEnter the name for this pricing option (e.g., "Monthly", "Annual").
TypeSelect the type of pricing for this package (free, onetime, recurring).
Time Interval & Billing PeriodChoose the billing interval and period (how often the customer will be billed) for this pricing option.
Currency CodeDisplays the currency used for this price. This value cannot be changed here.
PriceSet the price for this package in the selected currency.
Setup FeeEnter any one-time setup fee for this pricing option.
Enabled?Enable or disable this pricing option without deleting it.

WARNING

Important Relationship: Price Name Matching
If your Package has customizable options (Variants), the system requires the Name of the Variant Price to exactly match the Name of the Package Price. If you rename a Package Price, you must also rename the corresponding Variant Prices, otherwise clients will not be able to purchase those variants.

Provisioning Plugin Tab

This is where you connect the product to your server automation.

FieldDescription
Provisioning Plugin InstanceSelect the Provisioning Plugin instance to link with this package. Once selected, you'll be able to configure specific schema options required by the Provisioning Plugin.

Scaling Tab

If you want to allow clients to upgrade or downgrade their service, you configure that here.

FieldDescription
Scalable ToSelect the packages that this package can be scaled up or down to.

Custom Fields Tab

Custom Fields allow you to collect additional information from customers during checkout. These fields are directly tied to the package and will be attached to the service.

FieldDescription
LabelThe display name for the field shown to the user during checkout.
Internal NameThe internal variable name used for mapping. Leave empty to auto-generate from label. Must be lowercase alphanumeric with underscores (e.g., server_hostname).
TypeThe input type (Text, Password, Textarea, Email, Number, Dropdown).
Helper TextOptional text displayed below the field to guide the user.
Default ValueOptional default value to pre-fill the field.
Show on Order FormToggle whether this field is visible to customers during the checkout process. If disabled, the field can only be populated programmatically or by admins.
Show on InvoiceToggle whether this field and its value are displayed on the customer's invoice.
OptionsIf Type is Dropdown, define the options one per line. Separate the value and label with a pipe (|). If no pipe is used, the value is also used as the label.
ConditionOptionally configure conditional logic to show/hide this field based on the value of another package field or additional configuration.

Connecting Variants

If your Package has customizable options (e.g., clients can choose an operating system when ordering a VPS), you need to set up Variants. Learn more in the Variants guide.