Which feature do you need?
Aftersell has three post-purchase features that work with subscriptions. They sound similar but behave very differently. Use this decision flow before setting anything up.- If the order already contains a subscription, use Subscription Upgrade. Instead of trying to add a new subscription (which Shopify blocks), it modifies the customer’s existing subscription directly in Recharge, Skio, or Loop. A small non-subscription placeholder product is added to the Shopify order to satisfy Shopify’s rules, while the real upgrade happens in your subscription platform.
- If the order does not yet contain a subscription, you have two options:
- Subscription Upsell, to add a new subscription to the order alongside what the customer bought. The original item stays in the order as is. After accepting, the customer has both their original one-time purchase and a recurring subscription.
- Replacement Upsell, to swap the one-time product for another. The replacement can be a subscription version of the same product, a different product entirely, or a different variant or quantity of the same product.
- Yes, use Subscription Upgrade. This is the feature this guide covers. Subscription Upgrade modifies the customer’s existing subscription in Recharge, Skio, or Loop, right after they complete checkout. You can change the delivery or billing frequency, swap to a different subscription product, or both at the same time. The customer’s existing subscription is updated in place. No new subscription is created, and no refund or new charge is issued for the subscription itself. A small placeholder line item (the “offer product”) is added to the Shopify order as a record of the accepted upgrade.
- No, go to Q2.
- Yes, use Subscription Upsell. Subscription Upsell adds a new subscription line item to the order using Shopify’s Subscription API. The one-time product they already bought stays in the order, and a recurring subscription is added alongside it. The first recurring charge for the new subscription happens on the next cycle in your subscription platform.
- No, go to Q3.
- Yes, use Replacement Upsell. Replacement Upsell removes the original one-time product from the order and adds the replacement in its place. Shopify refunds the original line item and charges for the replacement. The replacement can be a subscription version of the same product (for example, the customer bought a one-time bottle and you want them on a monthly subscription instead), or a completely different product, one-time or subscription.
At a glance
| If you want to | Use this feature | What the customer sees on their order |
|---|---|---|
| Modify a subscription they already have (change delivery or billing frequency, swap to a different subscription product, or both) | Subscription Upgrade | A small placeholder line item (the “offer product”). The subscription itself changes in Recharge, Skio, or Loop. |
| Add a new subscription on top of a one-time purchase | Subscription Upsell | A new subscription line item, alongside what they already bought. |
| Replace a one-time product with a subscription or a different product | Replacement Upsell | A refund line for the original product, and a new charge for the replacement product. |
How Subscription Upgrades work
Here is the customer’s experience end-to-end, and what happens behind the scenes. The customer journey is four short steps:- Buys subscription. The customer completes checkout on a product that has a subscription selling plan.
- Sees upgrade offer. On the post-purchase page, they see the Subscription Upgrade offer you configured.
- One-click accept. They accept without re-entering payment or shipping details.
- Plan updates. Their existing subscription is modified in Recharge, Skio, or Loop. A small placeholder line item (the “offer product”) is added to the Shopify order as a record of the acceptance.
- In Shopify, the offer product is added to the order as a placeholder line item. It is required because Shopify’s post-purchase API cannot add a second subscription to an order that already contains one.
- In Recharge, Skio, or Loop, the customer’s existing subscription is updated. No new subscription is created, and no refund is issued for the original subscription.
What the customer sees
The Subscription Upgrade flow touches two systems, and the customer sees different things in each. Understanding this prevents support tickets about “double charges” or “missing items”.On the Shopify order
When the customer accepts an upgrade, Aftersell does not remove the original subscription line item from their order. Removing it would require a refund, which causes more customer confusion (“I got double charged, what’s going on?”) than it solves. Instead, the order ends up with:- The original subscription line item, as the customer purchased it.
- The offer product, as a separate placeholder line item that represents the upgrade.
- Upgrade to Quarterly
- Quarterly plan upgrade
- Switch to monthly delivery
In the subscription provider portal
In Recharge, Skio, or Loop’s customer portal, the customer sees their updated subscription. What they see depends on theUpgrade the subscription immediately setting:
- When off (recommended), the customer sees their existing subscription with a note that it will change at the next billing cycle. After that cycle ends, only the new subscription is visible going forward.
- When on, the customer sees only the new subscription, since the original was deleted at acceptance.
Compatible subscription platforms
Subscription Upgrades is currently only compatible with Recharge, Skio, and Loop. If you use a subscription app other than these three, you cannot use Subscription Upgrades at this time. That means you cannot offer an upsell that modifies a customer’s existing subscription, whether that is changing the delivery or billing frequency, swapping to a different subscription product, or both. You can, however, still use other post-purchase offer types:- Subscription Upsell, to add a new subscription line item to a one-time order.
- Replacement Upsell, to swap a one-time product in the order for another product. This covers one-time to one-time (including the same product in a different quantity or variant) and one-time to subscription (the customer’s order becomes a subscription order instead of a one-time order). Replacement Upsell cannot operate on a subscription line item in the order. If the original purchase was a subscription, use Subscription Upgrade instead.
Creating a Subscription Upgrade offer
To set up a Subscription Upgrade, you will use the post-purchase funnel editor. The setup wizard walks you through four steps: connecting your subscription provider, picking the trigger product, configuring the upgrade itself, and choosing the offer product the customer sees on their order. To open the wizard:- In your Aftersell dashboard, go to Post-Purchase Upsells.
- Click Add Funnel.
- Select the Subscription Upgrade template.
Step 1: Connect provider
Add your API key.
Pick your provider
From the Subscription provider dropdown, select Recharge, Skio, or Loop. The API token field and its helper text update to match the provider you picked.Generate your API token
If you do not already have a token, generate one in your subscription platform. Recharge Supported features: all upgrade types (frequency, replacement, both), prepaid and postpaid frequencies.- Log in to your Recharge merchant portal.
- Navigate to Tools & Apps → API Tokens.
- Click Create an API Token.
- Enter a name and contact email.
- Set the following permissions to Read and Write: Orders, Products, Subscriptions, Plans.
- Click Save and copy the API key.
- In your Skio dashboard, go to API & Integrations → API.
- Enter a name for your new API key and click Generate API key.
- Copy the key immediately. It will only be shown once.
- Grant all necessary scopes: edit, delete, and create subscription.
- Billing frequency must equal delivery frequency. Loop does not support prepaid subscriptions through this integration, the billing frequency field is disabled and automatically synced to the delivery frequency. This is the biggest constraint to be aware of, especially if your store relies on prepaid plans.
- Selling plans must be pre-configured. Loop requires a matching selling plan to already exist in your Loop dashboard for the target frequency.
- Multi-line subscriptions are handled in two steps: the target product line is split into a new subscription with the desired frequency, then removed from the original. This involves multiple API calls and may surface temporary in-progress lines in your Loop dashboard during the sync window.
- Open the Loop app and navigate to Settings in the bottom left.
- Under Admin, click API Tokens.
- Set the following permissions to Read and Write: Subscription contracts, Orders, Selling plans.
- Click Generate New Token.
- Provide a name, select the appropriate scopes, and click Generate Token.
- Click Show Token to view and copy your key. Treat it like a password and store it somewhere safe.
Paste, test, and save
Back in the Step 1 panel:- Paste your API token into the API token field.
- Click Test API key. Aftersell validates the token against your provider.
- Once the test passes, click Continue to move to Step 2.
Step 2: Trigger product
Their current plan. Select the trigger product. Pick the subscription customers will be upgrading from.- Click Choose subscription product.
- Only products with active subscription plans appear in the picker.
- Select the product (and a variant if it has variants).
- Click Select product.

Step 3: Subscription upgrade
Frequency & pricing. Configure the subscription upgrade. Choose what happens when a customer accepts the upgrade.
Subscription upgrade type
Pick one of three options from the dropdown:- Change delivery or billing frequency. Keep the same product, change how often the customer is billed or shipped to.
- Replace with a different subscription product. Keep the same frequency, swap to a different product.
- Change frequency and replace product. Do both at once.
If you picked “Change delivery or billing frequency”
Choose how to define the new frequency:- Use an existing selling plan. Pick from a dropdown of plans already configured in Recharge, Skio, or Loop. The plan defines the delivery and billing intervals.
- Set the frequency manually. Enter delivery and billing frequencies yourself.
- Delivery frequency, how often the product ships.
- Billing frequency, how often the customer is charged.
If you picked “Replace with a different subscription product”
Replacement subscription product. Pick the subscription product the customer will be upgraded to. Only products with active selling plans are shown.- Click Choose replacement product.
- Select the product (and a variant if applicable).
- Click Select product.
- When off (default), the existing subscription quantity is preserved on renewal.
- When on, enter the quantity that will apply to renewals of the replacement subscription.
If you picked “Change frequency and replace product”
Both sets of fields appear: the frequency configuration from the first option, and the replacement product picker from the second. Fill in both, or the offer will not work.Upgrade the subscription immediately
This checkbox is universal across all upgrade types. It is off by default, and we recommend keeping it off in most cases. When off (recommended) The upgrade takes effect at the end of the customer’s current billing cycle. Their existing subscription is preserved, they receive the rest of the current cycle as normal, and the new plan takes over at the next billing date. The offer product price stays at\$0. The customer is not charged anything extra on this Shopify order, because the actual change is applied by Recharge, Skio, or Loop on the next cycle.
This is the simpler and lower-risk option:
- Less complexity. The original subscription stays in place and just transitions to the new plan at the end of the cycle.
- No price-difference math.
- No customer confusion about being charged twice.
- The customer gets the value of the current cycle they already paid for.
Upgrade the subscription immediately turned on.
What you set in the wizard:
- One-time upgrade price: \$50. This should reflect the price difference between the original subscription and the new one, factoring in any discounts. In this example, \$50 is the difference between the quarterly price (\$100) and what the customer already paid for the monthly (\$50).
- First-order discount (optional): leave at 0, or set a percentage or dollar amount to incentivize acceptance. This only affects the upgrade purchase on this Shopify order, not future renewals.
- Shopify charges them an additional \$50 on this order (less, if you applied a first-order discount).
- Aftersell deletes the original monthly subscription in Recharge, Skio, or Loop.
- Aftersell creates a new quarterly subscription that starts now.
- The customer keeps the \$50 they originally paid for the monthly (no refund) and is now on the quarterly cycle going forward.
- The original monthly subscription line item, at \$50.
- The offer product, named clearly (for example, Upgrade to Quarterly), at \$50.
- Order total: \$100 on this Shopify order, matching the value of a quarterly subscription.
Recurring discount
Optional incentive applied to every future renewal of the upgraded subscription.- Recurring subscription discount. Enter the amount.
- Discount type. Percentage or fixed amount.
Step 4: Offer product
A visual placeholder. Select the offer product. This is a visual placeholder only, not a real product the customer buys.Option A: Create new
Aftersell creates an unpublished placeholder product in your Shopify catalog on your behalf.- Product image. Upload the image shown in the offer card.
- Product title. The name shown in the offer card, for example Premium upgrade.
- One-time upgrade price. When
Upgrade the subscription immediatelyis off (the default), this field is locked at0because the subscription provider will charge at the end of the current billing cycle, and the placeholder product appears on the Shopify order at \$0.00. WhenUpgrade the subscription immediatelyis on, the field becomes editable so you can set it to the price difference between the original and the upgraded subscription, see Upgrade the subscription immediately in Step 3 for the worked example.
- The image, title, and price you set appear in the offer.
- On accept, the displayed price is charged and Recharge, Skio, or Loop applies the upgrade.
- Shopify will not allow a subscription product as a post-purchase upsell after a subscription order, so the product here must be a non-subscription SKU.
Option B: Pick existing
Pick a product you have already created in Shopify. The trigger product is auto-hidden from the picker since it’s a subscription product.- Click Choose offer product.
- The picker shows only products without active subscription plans.
- Select the product and click Select product.

Additional triggers and refinements
The wizard automatically adds the trigger product in Step 2. This section is for any additional triggers you want to layer on top of it.Why product-specific triggers matter
Without a product trigger, your funnel may show to customers who do not have the eligible subscription product in their order. This results in wasted impressions and a subscription modification that silently fails: the offer product gets added to the order, but no subscription is changed in Recharge, Skio, or Loop.Recommended trigger setup
| Trigger | Setting |
|---|---|
| Product trigger | Set to the same product as your eligible (target) subscription product. |
| Subscription trigger | Set to Include, fires only when the order contains at least one subscription line. |
Testing and verifying an upgrade
Because the offer product and the subscription change happen against different systems, you need to check both to confirm an upgrade worked.Place a test order
Check Shopify
- Recharge. Customers → find the customer → Subscriptions. The active subscription should reflect the new frequency, product, or discount immediately.
- Skio. Subscriptions → find the customer’s subscription. The line item, interval, and selling plan should reflect the change.
- Loop. Subscriptions → find the customer’s subscription. Wait up to 24 hours. Loop’s APIs sync asynchronously and the change may not appear immediately, even on a successful upgrade.
- Your store URL.
- The Shopify order ID.
- The customer’s email.
- The approximate time the upgrade was accepted.
- Which provider you are using.
Important notes
- One subscription change per post-purchase flow. Only one subscription offer can be accepted per post-purchase page. If your funnel has multiple subscription-related steps, only the first accepted offer goes through. The funnel editor warns when it detects this conflict.
- Subscriptions only. This feature only fires when the customer’s order contains the subscription version of the eligible product. It will not fire for one-time purchases of the same product.
- Frequency on replacements. When using Replace with a different subscription product, the new item inherits the original subscription’s frequency unless you also pick Change frequency and replace product.
- Multi-product upsells. Subscription upgrade settings are configured per product. If you are offering multiple products in one upsell, configure each individually.
- Recurring discount applies to every future renewal. Unlike a one-time discount, this stays in effect on every renewal of the upgraded subscription.
- Prepaid conversion with partial credit is not supported. If a customer already paid for part of a prepaid cycle, Aftersell cannot pro-rate the remaining shipments. Replacement upgrades charge the full new subscription and refund the original.
Fulfillment and 3PL mapping
The offer product on the Shopify order is a placeholder, not a real product to ship. Your fulfillment provider (3PL) needs to know what to actually send the customer when an upgrade is accepted. Aftersell does not handle the fulfillment side of subscription upgrades. You need to sync with your 3PL provider to confirm the right mapping is in place on their end. In most cases this means:- Mapping the offer product (the placeholder) to the upgraded product the customer should receive.
- Confirming the upgrade flows through correctly when the subscription is updated in Recharge, Skio, or Loop.
Upgrade the subscription immediately setting is one factor that may affect this:
- When off (recommended), the existing subscription is preserved and only the next billing cycle is updated. Most direct integrations pick this up correctly.
- When on, the original subscription is deleted and a new one is created. Integrations that rely on stable subscription IDs may miss the new subscription.
Place a test order
Check Shopify
Check Recharge, Skio, or Loop
Place a test order
Check Shopify
Troubleshooting
Place a test order
Check Shopify
Place a test order
Check Shopify
- Feature not enabled on your account. Subscription Upgrades is a Beta feature that requires manual enablement by Aftersell support. Contact support via the in-app chat to request access.
- API token not saved. Open the wizard, go to Step 1: Connect provider, confirm you have selected a provider, pasted a valid token, clicked Test API key, and continued. If the test fails, your token is missing permissions or has been revoked.
- Confirm selling plans are configured in your provider dashboard.
- Make sure your API token has read access to Plans (Recharge) or the appropriate scopes (Skio, Loop).
- Go back to Step 1: Connect provider, re-test your API key, and continue.
- Check that Show to all customers is not enabled. This overrides all other triggers.
- Add a Product trigger matching your eligible subscription product.
- Add a Subscription trigger set to Include.
- Check funnel priority. A higher-priority funnel with broader triggers may be firing first.
- Feature not enabled on your account. Subscription Upgrades is a Beta feature that requires manual enablement by Aftersell support. Contact support via the in-app chat to request access.
- API token not saved. Open the wizard, go to Step 1: Connect provider, confirm you have selected a provider, pasted a valid token, clicked Test API key, and continued. If the test fails, your token is missing permissions or has been revoked.
- Your provider API token is expired or lacks the required permissions (Read and Write on Orders, Products, Subscriptions, Plans).
- The eligible product in the funnel does not match what the customer actually subscribed to.
- For Loop, the target selling plan does not exist in your Loop dashboard for the configured frequency.
- For Loop, the upgrade is still in flight. Wait the full 24 hour sync window before assuming failure.
- Confirm selling plans are configured in your provider dashboard.
- Make sure your API token has read access to Plans (Recharge) or the appropriate scopes (Skio, Loop).
- Go back to Step 1: Connect provider, re-test your API key, and continue.
- Check that Show to all customers is not enabled. This overrides all other triggers.
- Add a Product trigger matching your eligible subscription product.
- Add a Subscription trigger set to Include.
- Check funnel priority. A higher-priority funnel with broader triggers may be firing first.
The Subscription Upgrade template does not appear when I click Add Funnel
The Subscription Upgrade template does not appear when I click Add Funnel
- Feature not enabled on your account. Subscription Upgrades is a Beta feature that requires manual enablement by Aftersell support. Contact support via the in-app chat to request access.
- API token not saved. Open the wizard, go to Step 1: Connect provider, confirm you have selected a provider, pasted a valid token, clicked Test API key, and continued. If the test fails, your token is missing permissions or has been revoked.
I cannot find the Subscription Upgrades template
I cannot find the Subscription Upgrades template
My customer sees an unexpected product in their order
My customer sees an unexpected product in their order
The upgrade was accepted but the subscription was not modified
The upgrade was accepted but the subscription was not modified
- Your provider API token is expired or lacks the required permissions (Read and Write on Orders, Products, Subscriptions, Plans).
- The eligible product in the funnel does not match what the customer actually subscribed to.
- For Loop, the target selling plan does not exist in your Loop dashboard for the configured frequency.
- For Loop, the upgrade is still in flight. Wait the full 24 hour sync window before assuming failure.
The selling plan dropdown is empty
The selling plan dropdown is empty
- Confirm selling plans are configured in your provider dashboard.
- Make sure your API token has read access to Plans (Recharge) or the appropriate scopes (Skio, Loop).
- Go back to Step 1: Connect provider, re-test your API key, and continue.
I am using Loop and cannot change the billing frequency
I am using Loop and cannot change the billing frequency
The order browser shows 'Cannot upsell a subscription to an order that already contains one'
The order browser shows 'Cannot upsell a subscription to an order that already contains one'
My upgrade offer is showing to customers who are not subscribers
My upgrade offer is showing to customers who are not subscribers
- Check that Show to all customers is not enabled. This overrides all other triggers.
- Add a Product trigger matching your eligible subscription product.
- Add a Subscription trigger set to Include.
- Check funnel priority. A higher-priority funnel with broader triggers may be firing first.