Overview
Every product (except domain type) has a pricing matrix — a table of billing cycles × currencies. Each cell holds a price and a setup fee, both stored as BIGINT cents internally and entered in human-readable decimal format in the UI (e.g. 9.99).
Accessing the Pricing Matrix
- Go to Admin → Products → [product].
- Open the Pricing tab.
The matrix is displayed as a grid: rows are billing cycles, columns are currencies.
Supported Billing Cycles
| Cycle | Key | Approx. period |
|---|---|---|
| Monthly | monthly |
1 month |
| Quarterly | quarterly |
3 months |
| Semi-Annual | semi_annual |
6 months |
| Annual | annual |
12 months |
| Biennial | biennial |
24 months |
| One-Time | one_time |
No renewal |
Enabling and Disabling Cycles
- Leave a cell blank to disable that cycle for this product. Clients will not see that cycle as an option when ordering.
- Enter a value to enable the cycle. The row is upserted on save.
- Saving is idempotent: saving a blank cell deletes the row if it exists; saving a value upserts it.
[!TIP] You do not need to offer every cycle. Most shared hosting products only need Monthly and Annual. One-Time is useful for lifetime deals or one-off setup services.
Entering Prices
Enter prices as a decimal number in your currency's standard format:
9.99→ stored as999cents100.00→ stored as10000cents0or0.00→ free (valid, stores as0)
Do not enter currency symbols or thousand separators. The UI formats the display automatically.
Setup Fee
Each cycle cell has a separate Setup Fee field alongside the price. The setup fee is:
- Charged once on the first invoice only.
- Not charged on renewals.
- Shown as a separate line item on the invoice.
Set to 0 (or leave blank) to suppress the setup fee. See Setup Fees for more detail.
Multi-Currency
If you have multiple currencies configured, each currency appears as a separate column. You can set different prices per currency independently — there is no automatic conversion. See Multi-Currency Pricing.
Best Value Highlight
When a product has multiple billing cycles, Commerce automatically calculates the per-month equivalent of each cycle and highlights the cheapest one as "Best value" on the order form.