Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt

Use this file to discover all available pages before exploring further.

Subscription Upgrades is available by request only. To enable it on your account, contact our support team via the in-app chat. The feature settings will not appear in your dashboard until it has been activated.

Which feature do you need?

There are three separate subscription features in Aftersell. Make sure you’re in the right guide:
FeatureWhat it doesMechanismGuide
Subscription upsellOffer a customer a brand new subscription product after checkoutAdds a new subscription line item to the orderSubscriptions in Post-Purchase Offers
Subscription upgradeModify a customer’s existing subscription after checkoutUpdates the existing subscription in place via provider API - no refund issuedThis guide
Replacement upsellSwap a purchased product for a different one (mostly subscription)Refunds the original item, charges for the replacementReplacement Upsells

What is Subscription Upgrades?

Subscription Upgrades lets you offer existing subscribers the ability to modify their active subscription right after checkout. You can change their delivery frequency, swap them to a different product, or both - using a single post-purchase offer. The feature connects natively with Recharge, Skio, and Loop to modify the subscription in real time via each platform’s API. Unlike the Replacement Upsells feature, no refund or new charge is issued for the subscription itself - the customer’s existing subscription is updated in place through Recharge, Skio, or Loop.
Currently not supported: Appstle and Smartrr are not compatible with Subscription Upgrades. They work with standard subscription upsells but do not have the APIs required for post-purchase subscription modification. Shopify native selling plans are also not supported.

How it works: the two-step process

Read this before setting up. The two-step mechanism is the most common source of confusion with this feature.
When a customer accepts a subscription upgrade offer, two separate things happen: Step 1 - Shopify changeset An “offer product” which is NOT a subscription is added to the customer’s order as a one-time line item. This is required by Shopify: the post-purchase API cannot add a subscription to an order that already contains one. The offer product is just a order-level record of the accepted upgrade. Step 2 - Provider API call Aftersell calls your subscription provider (Recharge, Skio, or Loop) to modify the customer’s actual subscription - changing the frequency, swapping the product, or both. These two steps are independent. The offer product in the order is NOT the subscription change. The subscription change happens in your provider’s system.

What your customer sees

The customer’s Shopify order confirmation will show the offer product as a line item. This is expected. The subscription modification is a separate event in your provider and will not appear on the Shopify order itself. To avoid customer confusion:
  • Name the offer product clearly, such as “Subscription Upgrade” or “Plan Change - [Your Brand]”
  • Set the price to $0 if the upgrade is free, or to the exact upgrade fee if charging
  • Optionally add a short description: “This item represents your subscription upgrade. Your recurring plan has been updated - no additional charges will occur.”

Prerequisites: API Configuration

Before Subscription Upgrades appear in your funnel editor, you need to connect your subscription platform via API. Select your provider below for setup instructions and supported features.

Recharge

Supported features: All upgrade types (frequency, replacement, both) · Prepaid and postpaid frequencies To generate your API token:
  1. Log in to your Recharge merchant portal.
  2. Navigate to Tools & Apps and click API Tokens.
  3. Click Create an API Token.
  4. Enter a name and contact email for the token.
  5. Set the following permissions to Read and Write: Orders, Products, Subscriptions, Plans.
  6. Click Save and copy the API key.
For more details, see Recharge’s API documentation.

Skio

Supported features: All upgrade types (frequency, replacement, both) · Prepaid and postpaid frequencies To generate your API token:
  1. In your Skio dashboard, go to API & Integrations > API.
  2. Enter a name for your new API key and click Generate API key.
  3. Copy the key immediately - it will only be shown once.
  4. Make sure to grant all necessary scopes: edit, delete, and create subscription.
For more details, see Skio’s API documentation.

Loop

Supported features: All upgrade types (frequency, replacement, both) · Postpaid frequencies only
Loop’s APIs can be unreliable and slow. Subscription upgrades via Loop may take up to 24 hours to process. Prepaid subscriptions are not supported.
Limitations to know before setup:
  • No prepaid support. Billing frequency is automatically synced to delivery frequency, and prepaid upgrade attempts will be rejected.
  • Selling plans must be pre-configured. Loop requires a matching selling plan to already exist in your Loop dashboard for the target frequency. Aftersell cannot create selling plans programmatically.
  • 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 require checking your Loop dashboard if something looks off.
To generate your API token:
  1. Open the Loop app and navigate to Settings in the bottom left corner.
  2. Under Admin, click API Tokens.
  3. Set the following permissions to Read and Write: Subscription contracts, Orders, Selling plans.
  4. Click Generate New Token.
  5. Provide a name, select the appropriate scopes, and click Generate Token.
  6. Click Show Token to view and copy your key. Treat it like a password and store it somewhere safe.
For more details, see Loop’s API documentation.

Setup in Aftersell

  1. In Aftersell, go to Settings > Subscription Upgrades.
  2. Select your subscription provider from the dropdown.
  3. Paste your API token and click Save.
If the token is missing or lacks the required permissions, the Subscription Upgrades offer type will not appear in the Post-Purchase funnel editor. Subscription Token

Creating a Subscription Upgrade Offer

Once your API token is configured, Subscription Upgrade will appear as its own offer type in the funnel editor.
  1. In your Aftersell dashboard, go to Post-Purchase Funnels.
  2. Open an existing funnel or create a new one.
  3. Click Add Upsell and select Subscription upgrade from the offer type dropdown.
Subupgrades This opens the Set up a subscription upgrade wizard, which walks you through three steps.

Subscription Upgrade Wizard

Step 1: Trigger Product

Select the subscription product the customer must have purchased for the upgrade offer to appear. This is what they are upgrading from.
  • Click Choose subscription product and select the product from your catalog.
  • The customer journey shown at the bottom of the modal walks through what the customer experiences: Buys subscription > Sees upgrade offer > One-click accept > Plan updates.
Subupgradestrigger

Step 2: Offer Product

Choose what the customer sees in the upsell offer. This is a placeholder product used to work around Shopify’s limitation on adding subscriptions to orders that already contain one.
This step is critical. The offer product is what appears on the customer’s Shopify order. Choose the name, image, and price carefully to avoid confusing your customers. See How it works above.
You can either create a new placeholder product or pick an existing one from your catalog. If you don’t already have a dedicated placeholder product, use the Create new tab. Enter a title, price, and image, and Aftersell creates an active product in your Shopify catalog on your behalf. The product is created as active so it can be sold through the post-purchase flow, but it is not published to your Online Store storefront.
  • Title - the name shown in the upgrade offer card (e.g., “Premium upgrade”)
  • Image - the image shown in the offer card; upload directly from the wizard
  • One-time upgrade price - the amount charged when the customer accepts the offer; this is a one-time charge and does not affect the ongoing subscription price

Pick existing

If you already have a suitable product in your catalog, use the Pick existing tab to select it. The trigger product is hidden from the picker to prevent invalid selections. Common approaches:
  • A dedicated “upgrade” product - a low-cost or $0 product that acts as the order-level record
  • The same product (if it supports both one-time and subscription purchase) - it will be added as a one-time line item while the subscription is modified separately
  • A complementary add-on - a sample or bonus product that pairs with the upgrade
The offer product must support one-time purchase. If your product is subscription-only, the offer will be skipped entirely. This is a Shopify platform limitation - Shopify does not allow adding a second subscription to an order that already contains one.
Subupgradesoffer

Step 3: Configure Upgrade

Choose the type of upgrade to offer and configure the frequency, plan, and optional discount. Frequency Upgrade Move the customer to a different delivery or billing interval - for example, upgrading a monthly subscriber to a prepaid plan.
  • Delivery Frequency is how often the product is shipped.
  • Billing Frequency is how often the customer is charged. This must be equal to or greater than the delivery frequency.
Example prepaid setup (charged every 6 months, delivered monthly):
  • Billing Frequency: Every 6 months
  • Delivery Frequency: Every 1 month
Recharge / Skio only: A selling plan picker dropdown will appear to select the exact selling plan from your provider. If the dropdown is empty, confirm that selling plans are configured in your provider dashboard. Recharge / Skio only: The Apply at end of current cycle checkbox delays the frequency change to the end of the customer’s current billing cycle instead of applying immediately.
Loop does not support prepaid frequencies. The billing frequency field is automatically synced to the delivery frequency for Loop stores.
Replacement Replace the subscribed item with a different product - for example, upgrading a single bottle to a bundle. The replacement applies to all future recurring orders, not just the next shipment.
Shopify bundle products are not supported. If you need to offer a quantity upgrade (e.g., 1 item to 3 items), set a fixed quantity of 3 on a standard product instead of using a Shopify bundle. Using a bundle product will result in a “product not found” error.
Both Change both the delivery frequency and the subscribed product in a single offer. Recharge / Skio only: The Apply at end of current cycle checkbox is available here as well. Subscription Upgrade Discount You can offer a discount as an incentive for accepting the upgrade.
  • Discount type: Choose between Percentage or Fixed Amount.
  • Discount value: Enter the amount. Percentage discounts have a maximum of 100%.
The discount is applied through your subscription platform when the upgrade is processed. Subupgradesconfigure

Funnel Triggers and Targeting

Why do I need product-specific triggers?

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. Enable these two triggers together for most subscription upgrade funnels:
TriggerSetting
Product triggerSet to the same product as your eligible (target) subscription product
Subscription triggerSet to Include - only fires when the order contains at least one subscription line item
All enabled triggers use AND logic - every condition must be met for the funnel to show.
If Show to all customers is enabled, it overrides all other triggers and the funnel will fire for every checkout. This is not recommended for subscription upgrade funnels.

What happens if the funnel fires for a customer without the eligible product?

The offer will still appear on the post-purchase page. If the customer accepts:
  • The Shopify changeset will succeed and the offer product will be added to the order.
  • The subscription upgrade call to your provider will fail because no matching subscription can be found. The error is logged, but the customer still sees a success state.
The result: the offer product is added to the order as a one-time purchase, but no subscription is modified. This is why product-specific triggers matter.

Important Notes

  • Subscriptions only. This feature only triggers if the customer purchased the subscription version of the eligible product. It will not trigger for one-time purchases.
  • Frequency on replacements. When replacing a product, the new item inherits the original subscription’s frequency. Selecting a different frequency is not supported unless using the Both upgrade type.
  • Multi-product upsells. Subscription upgrade settings must be configured individually for each product in a multi-product upsell.
  • One subscription per post-purchase flow. Only one subscription offer can be accepted per post-purchase page. If your funnel has multiple steps that include subscription products, only the first accepted offer will go through. The funnel editor will show a warning if it detects this conflict.
  • Shopify selling plans are not supported. This feature only works with Recharge, Skio, and Loop.

Troubleshooting

Two possible causes:
  1. Feature not enabled on your account. Contact support via the in-app chat to have Subscription Upgrades activated. It requires manual enablement by the Aftersell team.
  2. API token not saved. Go to Settings > Subscription Upgrades, make sure you have selected a provider (not “None”), entered a valid token, and clicked Save. Refresh the funnel editor after saving.
The Subscription Upgrades section in Settings - including the Loop API key field - is only visible after the feature has been manually enabled on your account by the support team. Contact support to request access.
This is expected behavior. The product your customer sees is the offer product - the placeholder item added to the Shopify order as a record of the accepted upgrade.This is required because Shopify’s post-purchase API cannot add a subscription to an order that already contains one.To reduce customer confusion:
  • Rename the offer product to something clear, such as “Subscription Upgrade” or “Plan Change”
  • Set the price to $0 if no extra charge is intended
  • Add a description to the product in Shopify Admin explaining what it represents
To update the offer product name or price, go to Shopify Admin > Products, find the product (it will be hidden from your storefront), and edit it directly.
The Shopify changeset and the provider API call are two independent steps. If the offer product was added but the subscription was not changed, check the following:
  • Your provider API token is still valid and has the correct permissions (Read and Write on Orders, Products, Subscriptions)
  • The eligible product in the funnel matches what the customer actually subscribed to
  • For Loop: The target selling plan exists in your Loop dashboard for the configured frequency. Aftersell cannot create selling plans programmatically.
  • For Loop (multi-line subscriptions): The split operation involves multiple API calls and may take up to 24 hours. Check your Loop dashboard for any duplicate or in-progress subscription lines.
Aftersell retries failed provider calls up to 3 times (at 1 hour and 24 hours after the initial failure). If all retries fail, the offer product remains on the order but no subscription change occurs.
This is expected two-step behavior. The product added to the order is the offer product (the Shopify changeset). The subscription modification is a separate API call to your provider.If the subscription was not modified, check the following:
  • Your provider API token is valid and has the correct permissions.
  • The eligible product in the funnel matches what the customer actually subscribed to.
  • For Loop: the target selling plan exists in your Loop dashboard.
If the provider call failed, the Shopify changeset still succeeds - the offer product stays on the order but the subscription is not changed.
  • 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 offer product is subscription-only and cannot be sold as a one-time purchase. Shopify does not allow adding a second subscription to an order that already has one, so the offer was skipped. Either update the product in Shopify to allow one-time purchases, or use a different offer product. See the Offer Product section above for guidance.
Shopify bundle products are not supported. If you selected a Shopify bundle product as your upsell offer, it will trigger this error even if the bundle is active in your catalog.Use a standard (non-bundle) product instead. To offer a quantity upgrade (e.g., 1 unit to 3 units), select a standard product and set the quantity to a fixed quantity of 3 in the product settings.
This is expected. Loop does not support prepaid subscriptions through this integration. The billing frequency field is disabled and automatically synced to the delivery frequency.
The selling plan picker is only available for Recharge and Skio users on frequency or both upgrade types.If the dropdown is empty:
  • Confirm that selling plans are configured in your Recharge or Skio dashboard
  • Make sure your API token has read access to Plans (Recharge) or the appropriate scopes (Skio)
  • Save your API token again and refresh the page