Skip to main content
This page holds the mechanics and platform rules behind Subscription Upsell: how the subscription is added, how plans and discounts resolve, what the customer sees, fulfillment, the Shopify platform limitations, and the full troubleshooting catalog. For how to build one, see Subscriptions in post-purchase offers.

How the subscription is added

Subscription Upsell uses Shopify’s native add_subscription post-purchase changeset. Aftersell does not call your subscription app’s API directly for this flow: the subscription is created by Shopify and your subscription app picks it up via its own Shopify integration. This is why Subscription Upsell works with any subscription app that uses Shopify’s native Subscription API. The first cycle of the subscription is fulfilled from the original Shopify order as a normal line item. Subsequent renewals are managed by your subscription provider, the same as any subscription created during regular checkout.

Compatible subscription platforms

Subscription Upsell is fully provider-agnostic on the Aftersell side. Aftersell adds the subscription via Shopify’s native add_subscription changeset, and Shopify routes the enrollment to whichever subscription app you have installed on the Shopify Subscription API. Any subscription app that uses Shopify’s native Subscription API works without additional setup, including Recharge, Skio, Loop, Stay.ai, Appstle, Smartrr, Bold Subscriptions (when running on Shopify’s native subscriptions API), and Shopify’s native selling plans. Selling plans you create in your subscription app are pulled into Aftersell automatically. (Subscription Upgrade compatibility is different and provider-specific; see Subscription Upgrades.)

How selling plans resolve

Allowed subscription plans

The Allowed subscription plans setting is an allowlist, applied per variant. For the variant a customer selects, they see only the allowed plans available for that variant:
  • If exactly one allowed plan applies, its name is shown as static text and there is no choice to make.
  • If several apply, the customer picks between them in a Purchase options dropdown.
  • If none apply, that variant falls back to showing all of its own plans.
That per-variant scoping means a single allowlist can correctly handle a product whose variants carry different selling plans. If none of the allowed plans are available for a variant (because a plan was removed or disabled in Shopify), the offer falls back to showing all available plans for that variant, so customers can still complete the purchase. The allowed-plans setting is also cleared automatically if you change the product’s purchase option to one-time purchase only, which prevents configuration errors when subscription options are removed.

Which selling plan is shown by default

When no plans are selected in Allowed subscription plans, the offer preselects the first selling plan configured on the product in Shopify. If that variant has more than one plan available, customers can change it in the Purchase options dropdown. To control which plan customers see:
  • Restrict the plans (recommended). Use the Allowed subscription plans multi-select. Allow exactly one and customers see only that plan, with no dropdown.
  • Reorder selling plans in Shopify. The order of selling plans on the product determines which one is shown first.
  • Remove unused selling plans from the product. If you have multiple frequencies and only want one to surface, keep only the relevant selling plan attached to the product.
The most important factor for retention is matching the cadence to actual product usage. A 30-day shampoo subscription where the bottle lasts 60 days will get cancelled; a 60-day subscription where the bottle lasts 30 days will get skipped. Look at your one-time reorder data to find the natural cadence per product.

How subscription discounts are shown

A discount on a Subscription Upsell offer applies to the first billing cycle only; future recurring orders are charged at the regular subscription price. The post-purchase offer shows two distinct prices:
  • The Accept Offer button and the line-item subtotal reflect the first-cycle price, including any first-cycle discount.
  • The Recurring subtotal field shows what the customer will be charged on subsequent renewals at the regular subscription price.
This reads cleanly for typical first-cycle discounts (10 to 25 percent off the first delivery). It can read confusingly with an extreme first-cycle discount such as 100% off, because the recurring price (not the $0 first-cycle price) is the more visible number. If you intend a free first delivery, be explicit in the offer copy (“First box free, then $59.99 every 30 days”). Discounts can be a percentage (for example 15% off) or a fixed amount (for example $5 off). The discount rides on Shopify’s add_subscription changeset rather than being applied through your subscription app, and it only affects the subscription created by this offer.
The discount only reaches the subscription if you tick Apply discount to subscriptions. Without it, the add_subscription changeset carries no discount and the subscription bills at full price; the offer’s discount then applies to the one-time line only.

What the customer sees

When a customer accepts a Subscription Upsell, three things happen across two systems. On the Shopify order. The order confirmation includes both the original one-time line item and the new subscription line item (billed at the discounted first-cycle price). The customer pays for both lines on the original order, and the first subscription fulfillment ships from this order as a normal line item. In their email confirmations. Shopify sends the standard order confirmation with both line items. Your subscription provider typically sends its own subscription welcome email explaining the recurring schedule. Configure that welcome email to send within minutes of acceptance, with the customer’s name and product, the cadence, the next charge date, and a direct link to the customer portal. In the subscription provider portal. The customer manages the new subscription in your provider’s portal, where they can typically pause or skip a delivery, change the cadence, swap products, or cancel. The portal is owned by your provider, not Aftersell; make sure it is accessible from your store’s account area or the welcome email, or customers will reach support to cancel.

Subscription fulfillment

  • First cycle. The first subscription order is part of the original Shopify order, so it flows through whatever fulfillment process you use for one-time orders (3PL, in-house, dropship). The subscription line ships alongside the original one-time purchase.
  • Subsequent renewals. Future cycles are created by your subscription provider on the renewal cadence. Each renewal becomes a new Shopify order, fulfilled the same way as any other order.
If your 3PL integrates directly with your subscription provider, renewals usually flow through automatically. If your 3PL syncs only from Shopify orders, no extra setup is needed because each renewal creates a Shopify order.

Shopify platform limitations

A few Shopify platform rules apply to subscription-related post-purchase offers regardless of which Aftersell feature you use.

One subscription per order

Shopify does not allow a post-purchase upsell to add a subscription to an order that already contains a subscription. This restriction is set by Shopify and applies to all post-purchase apps. Connecting a subscription provider removes this constraint for Subscription Upsell. When Recharge, Skio, or Loop is connected, Aftersell creates the new subscription in your provider rather than asking Shopify to add it, so subscription offers reach customers whose order already contains a subscription. See upselling existing subscribers. If no provider is connected, Aftersell handles the “subscription already in cart” case automatically:
  • Subscription-only products in an offer are dropped from the funnel for that customer.
  • Dual-mode products (one-time and subscription) are auto-downgraded to one-time-only, so the offer still shows but without the subscription option.
Either way, you can leave a Subscription Upsell offer in your funnel without worrying it will fire incorrectly on subscription-already-present orders. To modify the subscription the customer already has, rather than adding a second one, use Subscription Upgrade.

Subscription-only products

If a product in your offer is configured to sell only as a subscription, and no provider is connected, the offer is skipped whenever the customer’s order already contains a subscription product. What the funnel editor shows depends on your setup:
  • A provider is connected. No banner; the limitation does not apply.
  • No provider is connected. An Unlock more reach banner with a Connect a provider action, explaining that customers whose order already contains a subscription do not see this offer’s subscription option.
  • The funnel already excludes subscription orders. No banner, since the offer never reaches those customers.
Where the older Subscription limitations warning banner appears, it lists the affected products and suggests setting the Subscription trigger to do not include a subscription.

Multiple subscription offers in the same funnel

If more than one offer in your funnel contains a subscription product, only the first accepted subscription is added to the order; subsequent subscription offers are skipped. The funnel editor warns you when this conflict is detected, listing the other offers that also contain subscription products. To avoid skipped offers, limit your funnel to one subscription offer, or use the Subscription trigger to exclude orders that already contain a subscription.

Troubleshooting

For subscription controls to appear, the product you selected must have at least one active selling plan in Shopify. Check that your subscription app has created selling plans for this product, and that they are active and assigned to the product.
The offer preselects the first selling plan configured on the product in Shopify, and customers can change it in the Purchase options dropdown when more than one plan applies to their variant. To control which plan they see, restrict the offer with the Allowed subscription plans multi-select, reorder selling plans on the product in Shopify so the desired one is first, or remove unused selling plans from the product entirely. Allowing exactly one plan removes the dropdown.
Yes, when more than one plan applies to the variant they select, the offer shows a Purchase options dropdown. To prevent that, use Allowed subscription plans to allow a single plan; the cadence then renders as static text. Customers can still change cadence afterwards in your subscription provider’s portal.
Use the One-time purchase only mode in the offer’s purchase-option setting. Aftersell has three modes for subscription-enabled products: One-time purchase only, Subscription only, and One-time purchase and subscription. Selecting One-time purchase only hides the subscription option entirely, even when the product has active selling plans.
This is one of the most disruptive failure modes because the customer was charged but the subscription was never created in your provider. The most common root cause, by a wide margin, is a selling plan that was deactivated between the offer rendering and the customer accepting. Shopify accepts the changeset because it has a valid selling plan ID at render time, but if the plan is deactivated before the customer accepts, no subscription is enrolled downstream and no error is surfaced.Other common causes:
  • Subscription app webhook is failing. Any subscription app that picks up new subscriptions from Shopify relies on Shopify webhooks. Check webhook delivery health in your subscription app’s logs.
  • Selling plan was unlinked from the product but still has an active ID. Shopify accepts the changeset and the line item lands, but the subscription provider has no record to act on.
Important: there is no automatic retry on the native add_subscription path; Shopify owns the enrollment there, so Aftersell has nothing to replay. (The separate provider path, used when the order already contains a subscription, is covered by the subscription-upgrade retry workflow.) If this happens:
  1. Confirm the selling plan is still active in Shopify and assigned to the product.
  2. Check your subscription app’s order import / webhook logs for the affected order.
  3. If the subscription is truly missing, your subscription app’s support team can usually manually enroll the customer from the order ID.
If multiple customers are affected, contact Aftersell support with the order IDs and your subscription provider, but expect the fix to happen on the subscription provider side, not in Aftersell.
This usually surfaces when the first-cycle discount is extreme (for example 100% off the first cycle). The Accept button reflects the first-cycle price, but if that price reads identically to the recurring price, it can look like the discount is not applied. Confirm in the offer preview that the discount is configured correctly, and rely on the offer copy (“First box free, then $X every Y days”) to make the terms unambiguous.
Discounts apply to the first billing cycle only by default. If a customer asks why their second or third order does not have the discount, that is expected. Recurring orders charge at the regular subscription price, which the customer saw as the Recurring subtotal in the offer.
If you have Recharge, Skio, or Loop connected, this is expected and the offer works: Aftersell creates the new subscription in your provider. See upselling existing subscribers.If no provider is connected, Shopify blocks adding a second subscription and the offer silently skips at runtime. Either connect a provider, or stop the offer from showing to those customers by setting the Subscription trigger to do not include a subscription.
Shopify allows only one subscription per order. If you have multiple subscription offers in the same funnel, the first accepted one wins and the rest are skipped. Either limit your funnel to one subscription offer, or use the Subscription trigger to exclude orders that already have a subscription.
The new subscription is managed in your subscription provider’s customer portal, not directly in Shopify. Make sure the portal is linked from your store’s account area, and confirm your provider’s welcome email is configured to send immediately after acceptance.
The first cycle was paid for as part of the Shopify order, so refunds work the same as any other line item. Cancellation of future cycles happens in your subscription provider, not in Aftersell. Refunding the line in Shopify does not automatically cancel the subscription; you have to cancel it in the provider portal as well.