Guides

How to migrate WooCommerce Subscriptions to Shopify

By Glen Gallarde · Last updated 28 October 2026

Short answer

You can move WooCommerce Subscriptions to Shopify without subscribers re-entering their cards, as long as their saved cards sit with Stripe, PayPal, Braintree or Authorize.net. You install a Shopify subscription app, keep your old gateway connected as a second gateway so existing subscribers keep billing through it, import each subscription with its saved payment method and next billing date, then switch WooCommerce renewals off. Subscribers paying any other way will need to add their card again.

Subscriptions are the part of a WooCommerce store that makes most owners nervous about moving. Products and orders are just data. A subscription is a promise to charge someone next month, and if the move breaks that promise, you lose recurring revenue quietly, one failed renewal at a time.

The good news is that Shopify has a proper way to take subscriptions over, and the main subscription apps will do most of it for you. The rest of this guide is about the decisions and checks that keep renewals going.

Step 1: Check where your subscribers' cards are saved

WooCommerce never stores card numbers. Your payment gateway does, and WooCommerce keeps a reference to each saved card (a token). Whether subscribers have to do anything depends entirely on which gateway holds those tokens.

Gateway in WooCommerceCan saved payments move to Shopify?Notes
StripeYes, cardsShopify imports Stripe card payment methods. Each subscription needs its Stripe customer ID and payment method ID.
PayPalYes, with reference transactionsMoves as a PayPal billing agreement (IDs start with B-). Your PayPal account must be approved for reference transactions.
BraintreeCards and Apple Pay onlyPayPal and Google Pay saved through Braintree don't carry over.
Authorize.netYesNeeds the customer profile ID and payment profile ID.
Anything elseNoSubscribers get a link to add a new card. Plan an email for them.

To check, open WooCommerce, then Subscriptions, and look at the payment method column. If most subscribers are on Stripe, the move can be invisible to them. Shopify's developer documentation lists the exact gateways and fields if you want the detail.

One rule matters: keep your old gateway account open and connected. If you use Shopify Payments, you add Stripe, PayPal, Braintree or Authorize.net as a second gateway. Existing subscribers keep renewing through it, and new subscribers pay through Shopify Payments. Close the old Stripe or PayPal account and every imported subscription fails at its next renewal.

Step 2: Choose a subscription app

Shopify doesn't run subscriptions on its own. An app does, and the app is what imports your existing subscribers.

  • Shopify Subscriptions is Shopify's own app and is free. It covers weekly, monthly and yearly plans with a discount, and lets customers skip, pause or cancel. It suits simple "subscribe and save" stores.
  • Loop, Recharge, Appstle and similar apps add things like build-a-box, prepaid plans, smarter failed-payment retries and cancellation flows. Several, including Loop and Recurpay, offer free migration help from WooCommerce and handle the payment token import for you.

Pick the app before you build anything else, because it decides how your subscription products are set up. If you use WooCommerce features like synced renewal dates, sign-up fees or free trials, check that the app supports each one before you commit.

Step 3: Move everything else first

Subscriptions go last. Before you import them, the Shopify store needs:

  • Products imported with the same variants subscribers are on today, so each subscription maps to a real Shopify variant.
  • Customers imported with the same email addresses, so each subscription attaches to the right person.
  • Selling plans set up in your subscription app (for example "every 4 weeks, 10% off") to match what subscribers signed up for.
  • Shipping rates and tax set up, because every renewal is a real order that needs both.

The rest of the move follows the normal order in the migration checklist.

Step 4: Import the subscriptions

For each active subscription you'll export from WooCommerce: the customer's email, the product and variant, quantity, price, billing frequency, the next payment date, the shipping address, and the gateway IDs from Step 1. The subscription app then creates a matching subscription in Shopify, attached to the customer and their saved payment method.

  • Import as paused first. Most apps can create subscriptions paused, so nothing bills while you check.
  • Keep each next billing date. A subscriber due on the 14th should still be billed on the 14th, not on launch day.
  • Keep each price. Subscribers on older, lower prices should stay on them unless you've told them otherwise.
  • Check the counts. Active subscriptions in WooCommerce should equal active subscriptions in the app.
  • Spot-check ten subscribers by hand: product, price, frequency, next date and address.

Step 5: Switch over without double charges

This is the step where things go wrong if it's rushed. The goal is that for every subscriber, exactly one system bills them.

  1. Pick a cutover time just after a day with few renewals due.
  2. Turn off automatic renewals in WooCommerce, or cancel the WooCommerce subscriptions without notifying customers, so WooCommerce stops charging.
  3. Import any subscriptions that started or changed since your export.
  4. Activate the subscriptions in the Shopify app.
  5. Watch the first renewals closely, ideally starting with a test subscription on your own card.

Never have both sides active at the same time. A double charge costs you a refund, a support email and often the subscriber.

Step 6: Tell subscribers what changes

If the move went well, subscribers mostly notice a new-looking account page. Still, send one short email:

  • Their subscription continues on the same schedule and price.
  • They manage it from the new account page, and they'll set a new password the first time (passwords can't move from WordPress to Shopify).
  • Anyone whose card couldn't move gets a separate email with a link to add a new one, sent before their next renewal.

Step 7: Watch the first full billing cycle

  • Check failed payments daily for the first cycle. A cluster of failures from one gateway usually means a setup problem, not expired cards.
  • Compare monthly recurring revenue with your last WooCommerce month.
  • Keep WooCommerce running (renewals off) until a full cycle has billed cleanly on Shopify, so you can look up anything that doesn't match.

Questions

Will my subscribers have to re-enter their card details?

Not if their cards are saved with Stripe, Braintree (cards and Apple Pay), Authorize.net, or PayPal with reference transactions, and you keep that gateway connected to Shopify. Subscribers on other payment methods need to add a card once.

Can I use Shopify Payments for my existing subscribers?

Not straight away. Existing subscribers keep billing through the gateway that holds their saved card, connected as a second gateway. New subscribers can pay through Shopify Payments.

Is the Shopify Subscriptions app enough?

For simple recurring orders with a discount, often yes, and it's free. Stores with prepaid plans, build-a-box, sign-up fees or complex retry rules usually need a paid app like Loop, Recharge or Appstle.

Do subscription renewal dates stay the same?

They should. Each subscription is imported with its next billing date, so subscribers are charged on the day they expect. Check this on a sample before you activate anything.

Does a subscription store cost more to migrate?

Usually a little, because of the gateway checks, the import and the careful cutover. I quote it as a fixed price after a free audit. The cost guide shows typical ranges.