A plan offer is the configuration record that makes a product or variant subscribable. It defines which billing frequencies are available to customers, what discount (if any) applies to each frequency, and additional rules like trial periods and minimum commitment cycles. Without an active plan offer, a product cannot be added to a subscription checkout.
Product scope vs. variant scope
You can configure a plan offer at the product level or at an individual variant level. When both exist for the same product, the variant-level offer always wins — it fully replaces the product-level configuration for that variant. No fields are merged between the two records.
| Scope | When it applies |
|---|
product | Applies to the product as a whole when no variant-level offer is active for the selected variant |
variant | Applies only to one specific variant and takes precedence over any product-level offer |
If a variant-level offer is disabled or does not exist for a variant, Reorder falls back to the product-level offer. If neither is active, the product is not subscribable.
Allowed frequencies
Each plan offer defines one or more allowed billing frequencies. A frequency is a combination of an interval and a positive integer value:
| Interval | Example values | Example meaning |
|---|
week | 1, 2, 4 | Every week, every 2 weeks, every 4 weeks |
month | 1, 2, 3 | Every month, every 2 months, every quarter |
year | 1 | Every year |
Each frequency must use a unique interval:value combination within the same offer. Duplicates are rejected.
Per-frequency discounts
You can attach a discount to each frequency in the offer. Customers who choose a longer or preferred cadence can receive a better price.
| Field | Description |
|---|
interval | The frequency interval the discount applies to |
frequency_value | The frequency value the discount applies to |
type | percentage or fixed |
value | The discount amount — a percentage between 0 and 100 for percentage, or a positive fixed amount for fixed |
Discounts are optional and can be defined for any subset of the allowed frequencies. A discount can only be attached to a frequency that is already present in allowed_frequencies.
Offer rules
Each plan offer can include a rules object with three settings:
Minimum cycles
minimum_cycles sets a minimum number of billing cycles before a customer can cancel. For example, setting minimum_cycles: 3 means a subscriber must complete at least three paid renewals before the subscription can be cancelled through a standard cancellation flow.
Trial settings
| Field | Description |
|---|
trial_enabled | Whether a free trial period applies to new subscribers |
trial_days | The number of trial days (required when trial_enabled is true, otherwise null) |
When a trial is active, the subscription is marked as a trial and trial_ends_at is set. Billing starts after the trial period ends.
Stacking policy
The stacking policy controls how the subscription discount interacts with other discounts in your store:
| Policy | Behavior |
|---|
allowed | The subscription discount stacks with other active discounts |
disallow_all | No other discounts apply alongside the subscription discount |
disallow_subscription_discounts | Other subscription-specific discounts are blocked, but non-subscription discounts may still apply |
Enabled and disabled states
Every plan offer has an is_enabled flag. Only enabled offers are considered during effective config resolution. Disabling an offer removes it from the subscribable configuration for new subscriptions without deleting the record — you can re-enable it at any time from the Admin.
Disabling an offer does not affect subscriptions that are already active. It only prevents new subscriptions from using that offer configuration.
Effective config resolution
When Reorder resolves the subscription configuration for a product and variant — for example, during a plan change or a PDP offer lookup — it follows this order:
- Look for an active variant-scoped offer for the requested variant.
- If none exists, look for an active product-scoped offer for the product.
- If neither exists, the product is not subscribable.
The winning record provides all configuration fields. Reorder does not merge frequencies, discounts, or rules across the product-level and variant-level records.
You can verify the resolved configuration from the offer detail page in the Admin, which shows the effective config summary alongside the source record.