Product Swap
Replace products in subscriptions based on rules you define.
Available on Large Business plans and above. Product Swap replaces products in subscriptions based on rules you define, so a subscription keeps renewing when its product is unavailable.
Rule types
| Type | When it triggers | Use case |
|---|---|---|
Out-of-stock swap (oos_swap) | When the source variant's Shopify inventory drops to or below a configurable threshold (default: 0) | Switch to an alternative product when stock runs low |
Seasonal rotation (seasonal_rotation) | During a defined date range | Swap to seasonal variants on a schedule, such as holiday flavors |
Discontinuation (discontinuation) | When manually triggered | Move every subscriber off a discontinued product to a replacement |
How swaps work
- PricePilot checks each active swap rule against your current inventory and schedule.
- For each matching rule, it identifies all subscriptions that contain the source variant.
- The source variant is replaced with the target variant in each subscription via the Recharge API.
- If Klaviyo notifications are enabled for the rule, customers are notified of the swap.
Fallback targets
For out-of-stock rules, you can configure a chain of fallback variants in case the primary target is also unavailable. PricePilot checks each fallback in order and uses the first one with enough stock. If no target has inventory above the threshold, the swap is skipped.
You can add, remove, and reorder fallback variants from the rule form.
Price strategies
Each rule has a price strategy that sets the subscription price after the swap:
| Strategy | Behavior |
|---|---|
| Use target price (default) | The subscription price changes to the target variant's Shopify price |
| Keep source price | The subscription price stays the same, which suits a similar product at a different price |
| Custom adjustment | The target variant's Shopify price plus a custom delta (use negative values for discounts) |
Auto-revert
Out-of-stock rules can revert automatically when the original variant is back in stock. When enabled:
- PricePilot checks for revert candidates every 4 hours.
- A swap is considered for revert only after at least 4 hours have passed since it was applied.
- The source variant's inventory must be above the rule's threshold before a revert occurs.
- Reverted swaps are logged as a separate execution linked to the original.
Execution safeguards
Two optional settings control the pace and volume of swaps:
- Max executions per cycle: caps the number of subscriptions a single rule can swap per run. Use it for a gradual rollout.
- Cooldown hours: a quiet period after a rule fires before it can run again, so one rule cannot swap repeatedly in quick succession.
Dry-run mode
Before applying swaps, preview them with a dry run. It shows:
- Which subscriptions would be affected
- The source and target variants
- The number of customers impacted
- A per-rule breakdown of matched subscriptions
A dry run makes no changes. Preview all rules at once or a single rule from the Rules tab.
Priority and deduplication
- Rules are evaluated by priority (lower number = higher priority).
- Each subscription can only be swapped once per rule evaluation cycle.
- If a subscription matches multiple rules, only the highest-priority rule applies.
Variant labels
When you create a swap rule, PricePilot stores the product and variant names alongside the variant IDs and shows them in the rules list and execution history.
Customer notifications
When Klaviyo is connected, PricePilot can send an event for each swap:
- PP Product Swap: sent when a subscription is swapped to a new variant.
- PP Product Swap Revert: sent when an auto-revert restores the original variant.
Each event includes the source variant, target variant, swap reason, price before and after, and shop identifier. Use them in Klaviyo to trigger an email flow that tells the customer about the change.
Statistics
The Product Swap dashboard shows:
- Active rules: the number of enabled swap rules
- Executions (24h / 7d): how many swaps ran recently
- Failures (7d): failed swap attempts. Check the Executions tab if this is not zero
- Last execution: when the most recent swap run happened
Execution history
Every swap is logged with a status:
- Pending: swap identified but not yet processed
- Applied: swapped in Recharge
- Failed: the swap failed; the error is stored
- Reverted: the swap was reversed by auto-revert or a later rule
- Dry run: the result of a dry-run preview
For reverted executions, the history links the original swap and the revert. View it from the Executions tab in the Product Swap section.
Swap rules are evaluated every 4 hours.