9 min read Subscriptions
Subscription Price Display in Shopify Checkout UI Extensions
A subscription checkout can show the wrong recurring price after a product swap. Here is how to trace that to the selling plan, not the checkout extension, before you build anything.
A Shopify checkout UI extension cannot rewrite the recurring price a subscriber sees at checkout. That number comes from the selling plan's pricing policy, so when it looks wrong after a product swap, the fix belongs on the plan, not inside the extension.
One seller running a candle subscription saw the Recurring Subtotal show the starter price forever, even after customers swapped to a cheaper refill variant, as described in a Shopify Community thread.
Where the recurring price actually comes from
Shopify organizes subscription products into selling plan groups. Each plan carries a pricing policy, and that policy has two shapes: fixed, one adjustment for the whole subscription, or recurring, a different adjustment once an initial period ends. Checkout reads straight from whichever policy sits on that line.
Checkout UI extensions sit next to that number, not inside it. Shopify documents them as blocks or static content placed before or after checkout sections. Price math is handled separately, by Shopify Functions, not by a UI extension.
If you haven't audited your checkout and account extensions since the last deadline, that's a good place to start before you add another one.
Two things people call a "product swap"
Separate these before you troubleshoot: a plan's built-in cycle change, like candle starter price then refill price with no customer action, and a buyer manually swapping to a different product mid-subscription. The forum case above is the first kind.
A manual swap is a different action: it changes the subscription contract line tied to that product, not the selling plan's pricing policy, so check that line separately.
The audit: find out which one is broken
- Pull the selling plan behind the product, from your subscription app's dashboard or the Admin GraphQL sellingPlanGroups query, and look at its pricing policies.
- Check whether it carries one policy or two. One policy only means both cycles will show and bill the same number, by design.
- If you expect two prices, check whether your subscription app lets you add a second, delayed pricing policy, most do, then add it there so cycle one bills the starter price and later cycles bill the swap price.
- Save the change, place a real test subscription order, and check its first upcoming charge inside your subscription app before you tell anyone the issue is fixed.
- If both policies are already correct and checkout still reads unclear, that's a wording problem, not a pricing one. Move to the next section instead of editing the plan again.
Why this is worth fixing before the next migration
A subscriber who sees one price at checkout and a different one on their statement often cancels or files a chargeback. It tends to surface right when stores migrate subscription apps.
If you're weighing whether a migration is worth it at all, our breakdown of subscription costs covers the fees most stores miss.
When the number is right but the wording isn't
Apps built on Shopify's native pricing model store a swap the same way Shopify does. Progus Subscriptions, for example, keeps each plan's pricing policies as adjustment-type and adjustment-value pairs, the same object checkout reads from, so the audit above works the same regardless of which app manages the subscription.
If the billed amount is already correct and you only want extra context before the swap happens, a developer can add a checkout UI extension near the order summary. It can read a stored future price from a metafield and render it as a note. That note won't change the Recurring Subtotal line, it only answers the question beside it.
Shopify limits checkout UI extensions on the information, shipping, and payment steps to stores on a Shopify Plus plan. The order summary section renders on each of those steps, so a note placed there needs Plus too. Without it, you can only place that note on the Thank you or Order status page.
Final Thoughts
Checkout UI extensions are a presentation layer, not a pricing engine. When a number looks wrong, check the selling plan's pricing policy first, and only build a custom extension once you've confirmed the billed amount itself is correct.
Subscription apps change through acquisitions, migrations, and providers retiring features, more often than most merchants expect. Re-test the pricing policy and the payment method configuration separately after any of those events, since one can break without the other.
FAQ
Can a checkout UI extension hide the wrong recurring price?
No. Checkout UI extensions add content next to core checkout features; they can't remove or overwrite that line. You can place a note beside it, but the native price stays visible.
Do I need a developer to fix a two-tier subscription price?
Usually not for the policy itself. Most subscription apps let you set a starter price and a renewal price from their own dashboard; custom code is only needed for an extra note inside checkout.
Does fixing checkout also fix the Thank you page?
No. The Thank you page uses a separate extension target from checkout, so check it on its own after you fix the pricing policy.
Is this a Shopify Plus-only fix?
Yes, for the checkout note: it needs Shopify Plus. The pricing policy itself can be fixed on any plan. Without Plus, the note can only appear on the Thank you or Order status page.
How do I confirm the fix actually billed correctly?
Place a real test subscription order after changing the pricing policy, then check its first upcoming charge inside your subscription app's dashboard before you close the ticket.
Sell subscriptions on Shopify. About Subscriptions ›