View Categories

Active Packages

Active Packages is the service-side view of your customer base: one row per live package, whatever order it came from. It is where you go to see what is running, what is stuck, and to change anything about an individual service. This article is for operators and staff.

Before you start #

Note: The list and the package detail screen require view_orders. Row actions and every form on the detail screen require edit_orders, and the destructive transitions require more than that — see Suspending, unsuspending and terminating a service.

Open it from Users & Roles → Active Packages in the admin sidebar, or at /admin/packages.

What is in the list #

The table shows root packages only — parent items, never addons — belonging to an order whose status is active, paid, processing or pending_cancellation. Packages on a completed or cancelled order are not listed. Addons appear inside the expandable row of their parent instead.

The Active Packages table with status filter pills, a search box, a group filter and one row per package
The pills carry live counts and filter the table without reloading the page.

Status pills #

Each pill is a blend of the two item state columns, so a pill is not the same as a single database value:

Pill Matches
All Every root package on a live order.
Active Not suspended, pending cancellation, cancelling or cancelled, and either provisioned or an item with no provisioning state at all whose package status is active.
Suspended Package status suspended.
Pending Provisioning status pending, queued or processing.
Failed Provisioning status failed.
Cancelling Package status pending_cancellation or cancelling.

Columns and row actions #

Column What it shows
# The package’s internal ID. Sortable.
Client Initials avatar, name and email, linking to the client record. Shows Deleted User if the account is gone.
Package Product name (linking to the package screen) with its product group beneath, or Uncategorized.
Cycle / Price The package’s own unit_price with the order’s billing cycle beneath. Sortable on price.
Status The combined badge described in The order lifecycle. Sortable on provisioning status.
Integration The type of the integration configured on the product — the first one on the product, whether or not it is marked active — or Manual when none is bound.
Next due The order’s due date.

The chevron on the left expands a row to reveal Configured Variables — the values captured when the package was ordered — and Active Addons with each addon’s name, price and provisioning status.

The cog button opens the package. The dropdown beside it offers:

  • Manage service — the package screen.
  • View client — the customer’s admin record.
  • Force provision — only shown when provisioning is pending, queued or failed, and only to staff with edit_orders.
  • Recalculate resources — pushes the package’s current resource limits back to the remote panel. Only shown with edit_orders.

The package screen #

The sidebar shows the product, its group, a link to the client, and the two state columns as separate Status and Provisioning badges plus the creation date. The work is done in four tabs.

The package screen General Options tab with a Service Status dropdown and Save Changes and Force Provision buttons
General Options is where the service state is changed; Force Provision only appears when provisioning is pending, failed or queued.

General Options #

One Service Status dropdown with six choices. Each writes a specific combination of the two columns:

Choice What it writes
Active Package status active, provisioning provisioned.
Pending Package status active, provisioning pending — this is how you hand a package back to the provisioning scanner.
Failed Package status active, provisioning failed.
Suspended Package status suspended only. This does not call the remote panel.
Pending Cancellation Package status pending_cancellation, stamps the request time, sets expires_at to the order’s due date and records the reason Admin updated status.
Cancelled Package status cancelled only. This does not tear down the remote service.

When provisioning has failed, the stored error is printed here in a red panel above the buttons. Force Provision resets the package to pending, clears the stored error and dispatches a provisioning job immediately.

Warning: Suspended and Cancelled on this dropdown change the local record only. To actually switch a service off or destroy it on the remote panel, use the suspend and terminate actions described in Suspending, unsuspending and terminating a service.

Package Addons #

Two things live on this tab. Service Variables edits the package’s own configured values. Product Addons lists every addon available for this product with a tick box, a price field and any addon-specific fields; Save Configuration writes all of it at once.

Below the table, Attach New Addon adds an addon to the package immediately, at a price of £0.00 and with provisioning set to pending. Set its real price in the table and press Save Configuration afterwards, or the customer gets it free.

Recalculate Resources queues a job that recomputes the package’s resource grant from the parent plus all of its addons and pushes it to the panel. It is supported for Pterodactyl, GameCP, Enhance and eNom; for a Custom API integration it fires a resource_change event to your endpoint instead. Other integration types are a no-op.

Warning: Unticking an addon and saving does not just detach it — it marks the addon cancelling and dispatches a termination job against the remote service. That is why removal requires cancel_orders, while adding and re-pricing addons only needs edit_orders.

Billing #

The package Billing tab with billing cycle, next billing date, a price override and the original product price
The price override is the package’s own price; the original product price is shown beside it for reference only.
Field What it does
Billing Cycle The cycle the package renews on, or One Time / Free. Must be an existing billing cycle.
Next Billing Date The date the next renewal invoice is anchored to. Optional.
Current Package Price (Override) Required, numeric, zero or more. This is the price actually billed, independent of the catalogue.
Original Product Price Read-only reference: the catalogue price for the order’s cycle, or the product’s base price.

The cycle and date belong to the order, not the package, so changing either has a knock-on effect:

  • If this is the only root package on its order, the order itself is updated in place.
  • If other packages share the order, RackHelm looks for another live order of the same customer already on that cycle and date and moves this package (and its addons) into it — creating one if none exists. This keeps each order on a single cycle and date so renewals stay correct.

Invoices #

The invoices raised against this package’s order, for quick reference while you work.

Deleting a package #

There is no delete button on the package screen. Deletion lives on the client’s own packages tab, under All Users → the client → Packages, and requires delete_orders. The confirmation offers an optional Also terminate the live remote service tick box, which additionally requires cancel_orders. Deleting soft-deletes the package and its addons, voids or reduces any outstanding invoice covering them, and soft-deletes the order once it has no items left.

Troubleshooting #

Symptom Cause and fix
The table fails to load as soon as you type in the search box The search clause filters on a users.name column, which does not exist in RackHelm’s schema (clients are stored as first_name and last_name). Narrow the list with the status pills and the group filter instead, or find the client under All Users and open their packages tab.
A package you know exists is not in the list Only root packages on an active, paid, processing or pending_cancellation order are listed. Check the order’s status on All Orders.
An addon is missing from the list Addons are never rows of their own here. Expand the parent package with the chevron.
Attaching an addon did not charge anything Attach New Addon deliberately creates the line at £0.00. Set the price in the addons table and press Save Configuration.
“This package already has this addon active.” The package already carries that addon in a non-cancelled state. Edit the existing one instead.
Force Provision is not offered It only appears when provisioning is pending, failed or queued. Set Service Status to Pending first, save, and the button appears.
Changing the billing date moved the package to a different order number That is intended when other packages share the original order — see the Billing tab notes above.