Shopify doesn't have native subscription billing built in. To sell recurring products or memberships, you need either a subscription app or a separate payment processor like Stripe. Which one you choose — and how you configure it — affects every part of the customer experience, from checkout through to cancellation.
The two architectures: app-based vs Stripe
Most Shopify subscription businesses use one of two approaches:
Subscription app (Recharge, Skio, Bold). An app integrates with Shopify to add subscription selling plans to your products. The customer subscribes through your Shopify checkout, the app handles recurring billing, and you manage subscribers through the app's dashboard. The customer gets a portal (usually hosted by the app) to manage their subscription.
Stripe as the subscription engine. Shopify handles the marketing site and product pages. Clicking "Subscribe" sends the customer to Stripe Checkout, where the subscription is created. Stripe handles billing, the customer portal, and trial management. Shopify isn't involved in the ongoing billing at all.
The Stripe approach is cleaner for purely digital products, software, or app subscriptions — anything where the "product" isn't a physical item shipped from Shopify. The app approach is right for physical subscription boxes, replenishment subscriptions, or any product where inventory management, fulfilment, and billing need to be coordinated.
Choosing a subscription app
If you're selling physical subscriptions through Shopify, the main options are:
Recharge. The most established subscription app for Shopify. Works well for straightforward subscriptions — fixed frequency, standard pricing, basic customer portal. Gets complicated when you try to implement free trials (as covered in the Recharge free trial post) or non-standard billing logic. Pricing starts from around $99/month plus transaction fees.
Skio. Built specifically for DTC subscription brands. Cleaner architecture than Recharge, better native free trial support, group subscriptions, and a more modern customer portal. Generally considered the better option for new subscription programmes. Similar pricing.
Bold Subscriptions. Integrates deeply with Shopify's checkout via Shopify's native subscription API. Good for brands that want subscriptions to feel native to Shopify rather than bolted on. Slightly less feature-rich than Recharge or Skio.
Native Shopify Subscriptions API. Shopify has a Selling Plans API that allows apps to create true native subscriptions. The above apps all use this to varying degrees. There isn't a "Shopify native subscriptions" product you can turn on — you need one of the apps.
Free trials on Shopify subscriptions
Free trials are where subscription setups most commonly go wrong. The options:
Via Stripe (cleanest). Set trial_period_days on the Stripe subscription price. The trial is native to the real subscription — the customer's portal shows the correct product from day one, the next charge date is accurate, and there's no placeholder product involved. If you're building a subscription-first business where physical delivery isn't part of the model, Stripe is strongly recommended.
Via Recharge (complicated). Recharge doesn't have a clean native free trial on all account tiers. The common workaround involves a placeholder $0 product that gets swapped to the real subscription after the trial period via an Automate flow. This creates confusing customer portal displays (wrong product name, wrong dates) and has multiple points of failure. Before building on Recharge for free trials, confirm with their support whether your account tier supports native trial periods on selling plans.
Via Skio (better). Skio has cleaner trial support built in. Worth evaluating if free trials are central to your acquisition model.
The customer portal
Your subscriber's ability to manage their own subscription — skip a delivery, swap a product, update payment details, cancel — has a direct impact on churn. A good portal reduces cancellations because customers can pause instead of cancelling. A bad portal increases support tickets and frustration.
When evaluating subscription apps, test the customer portal as a subscriber before committing. Specifically:
- Can customers easily skip a delivery without cancelling?
- Can they swap products in their subscription?
- Can they update their payment method without calling support?
- Is the cancellation flow clear? (It should be — trying to hide it increases chargebacks)
- Does it look like your brand or like a generic app?
What to set up before you launch subscriptions
- Decide on the architecture: app-based or Stripe
- If app-based: choose the app and confirm it supports your specific requirements (free trials, frequency options, skip/pause)
- Set up the customer portal and test it as a subscriber
- Configure your dunning sequence (what happens when a payment fails — emails, retries, cancellation timing)
- Test a full cycle: subscribe, receive the first charge, view portal, skip a delivery, cancel, confirm the cancellation flow
- If you're integrating with an app delivery platform (Trainerize, Kajabi, etc.) via Zapier or webhooks, test the full onboarding and offboarding flow before launch
Subscription businesses live and die by churn. Every piece of friction in the customer portal — anything that makes managing a subscription harder than cancelling it — is a churn driver. Getting the architecture right before launch is significantly cheaper than fixing it after you have paying subscribers.