Products
Products represent the billable services or resources of your organization. Each product can have multiple prices and supports a one-level hierarchy (root product with children/add-ons).
Product Fieldsβ
| Field | Description |
|---|---|
| Name | Display name (1-255 characters) |
| Slug | URL-friendly unique identifier |
| Description | Details about the product |
| Type | Determines the usage model (see table below) |
| Visibility | public or private |
| Unit label | Name of the unit (e.g., "users", "GB") |
| Increment | Minimum quantity step (e.g., 10 = quantities 10, 20, 30...) |
| Required | Whether it is required to subscribe |
| Website URL | Link to documentation/product page |
Product Typesβ
| Type | Description | Recurrence |
|---|---|---|
base | Standard recurring product | Recurring |
addon_quantity | Add-on with per-quantity pricing | Recurring |
addon_fixed | Add-on with fixed pricing | Recurring |
metered | Usage-based billing | Recurring (in arrears) |
one_time_fixed | Fixed one-time fee | One-time |
one_time_quantity | Per-unit one-time fee | One-time |
Product Hierarchyβ
Products support one level of hierarchy:
Root Product (parentProductId = null)
βββ Child product 1 (add-on)
βββ Child product 2 (setup fee)
βββ Child product 3 (optional module)
Hierarchy Rulesβ
- Nesting more than 1 level is not possible (children cannot have children)
- Child products inherit the organization/company from the parent
- Only root products can be added to plans
- Child products appear as add-ons/options of the parent product
Status and Lifecycleβ
draft β active β archived
β β β
DELETE PUBLISH RESTORE
| Status | Description |
|---|---|
| draft | Under development, not visible to plans |
| active | Available for plans and subscriptions |
| archived | Deactivated; cannot be used in new subscriptions |
Rulesβ
- Archive: Not possible if used by active, trialing, or past_due subscriptions. Automatically deactivates all prices
- Restore: Returns to
activestatus - Publish: Moves from
drafttoactive
Bulk Operationsβ
- Bulk archive: Archives multiple products
- Bulk delete: Removes products not used in subscriptions
- Move to group: Moves products to a product group
- Change visibility: Changes the visibility of multiple products
- Change company: Moves products to another company
Reorderingβ
Products have a display_order field to control the display order in the dashboard and portal. Reordering is possible via drag-and-drop or API.
Screenshotsβ
Product listβ
The /dashboard/products screen lists the catalog with name, type (recurring, one-time, metered), base price, status and visibility in the portal. It supports drag-and-drop reordering and bulk actions.

Product detailβ
The /dashboard/products/[id] page brings together the linked prices (with currency and cycle), fiscal service items, plans that include the product, usage events and audit.
