Why merchants migrate their Shopify subscriptions
Most merchants don’t switch apps for fun. They switch because the cost is eating into margins, support takes days to respond, or the app doesn’t work cleanly with Shopify Checkout.
The most common reasons we hear:
- Transaction fees compounding at scale: Recharge Standard charges $99/month + 1.49% + $0.19 per order. On 2,000 orders a month at a $50 average order value, that’s over $1,600/month in fees alone.
- Shopify Checkout compatibility: Legacy apps that use their own checkout create friction, break Shop Pay, and don’t support Shopify’s native customer accounts.
- Missing features: Pause flows, cancel-save sequences, bundle subscriptions, and customer portal customization vary wildly between apps.
- Poor support: Slow ticket queues are a real risk when a billing failure hits 500 subscribers at once.
Quick pricing comparison
App | Starting price | Transaction fee | Key differentiator |
|---|---|---|---|
Recharge | $99/month (Standard) | 1.49% + $0.19/order | Mature ecosystem, high cost at scale |
Appstle | Free – $100/month | None (revenue-based tiers) | Low entry cost, revenue-capped plans |
Loop | $99/month (Starter) | ~1.0% + $0.19/order | Retention-focused features |
Easy Subscriptions | Free – $399/month | 0% | Shopify-native, flat pricing, no per-order fees |
Pricing as of June 2026. Always verify on each app’s Shopify App Store listing.
What gets migrated (and what doesn’t)
Before you start, know exactly what transfers. Surprises mid-migration cause downtime.
Data type | Migrated? | Notes |
|---|---|---|
Subscriber profiles | ✅ Yes | Name, email, address |
Active subscription contracts | ✅ Yes | Billing interval, next charge date, status |
Payment methods | ✅ Yes* | *Requires Shopify-native vaulted payment methods; legacy checkout tokens may need re-collection |
Billing dates / next charge date | ✅ Yes | Preserved exactly to avoid mid-cycle charges |
Order history | ⚠️ Partial | Historical orders stay in Shopify; subscription-level history may not import |
Discount codes on contracts | ⚠️ Partial | Fixed-amount discounts usually transfer; percentage discounts need manual recreation |
Custom flows / cancellation flows | ❌ No | Must be rebuilt in Easy Subscriptions after migration |
Selling plans / product config | ❌ No | Recreated in Easy Subscriptions during setup |
The most important thing to verify: payment method compatibility. If your current app uses Shopify’s native vaulted payment methods (most modern apps do), they transfer cleanly. If you’re on a legacy recharge checkout setup, some subscribers may need to re-enter payment details.
How to migrate Shopify subscriptions to Easy Subscriptions (step-by-step)
This is the process that works for stores moving from Recharge, Appstle, Loop, Bold, or Skio. Follow it in order.
Step 1: Install Easy Subscriptions and connect to Shopify Checkout.
Install Easy Subscriptions from the Shopify App Store. During onboarding, the app connects directly to Shopify Checkout using Shopify’s Subscriptions API, no custom checkout required.
Before you go further, recreate your subscription plans (billing intervals, discounts, and trial periods) inside Easy Subscriptions. Imported contracts need matching selling plans to bill correctly.
Don’t publish the new subscription widget on your storefront yet. Keep your current app live until the full migration is validated.
Step 2: Export your subscriber data from your current app
Every app exports differently:
- Recharge – Go to Analytics → Export or use the Recharge API. Export customers, subscriptions, and addresses as separate CSV files.
- Appstle – Use the built-in export under Subscriptions → Export. Download the full subscriber CSV.
- Loop – Contact Loop support for a data export; they provide a structured CSV on request.
- Bold – Export from Reports → Subscriptions in the Bold dashboard.
You need at minimum a customer email, subscription product, billing interval, next charge date, and shipping address. Payment method data is handled separately through Shopify’s vaulted payment system.
Step 3: Import subscriber contracts into Easy Subscriptions
Easy Subscriptions provides a migration import tool. Map your exported CSV columns to the required fields:
- Upload your subscriber CSV in the Easy Subscriptions migration panel.
- Map fields: customer email → customer, product SKU → variant, interval → billing frequency, next charge date → next billing date.
- Run a test import on 5–10 subscribers before importing the full list.
- Verify each test contract shows the correct product, interval, next charge date, and status (active).
If any contracts fail to import, the most common cause is a mismatched product SKU or a billing interval that doesn’t match an existing selling plan. Fix those before the full import.
Step 4: Test billing on a sample subscriber before going live
Don’t skip this step. Create a real test subscription using your own email address and a $0 or $1 product. Trigger a manual billing attempt inside Easy Subscriptions and confirm:
- The charge processes through Shopify Payments correctly.
- The order appears in Shopify admin with the right line items.
- The subscriber receives a confirmation email.
- The customer portal shows the correct next billing date.
If billing works end-to-end on the test subscriber, you’re ready to go live.
Step 5: Notify subscribers and go live
Subscribers don’t need to do anything, but a proactive email prevents confusion.
Send a short note 2–3 days before go-live:
“We’ve upgraded our subscription system. Your next order, billing date, and payment details are unchanged. You can manage your subscription at [customer portal].”
On go-live day:
- Import the remaining subscriber contracts into Easy Subscriptions.
- Pause or cancel the old app’s recurring billing (don’t uninstall yet – keep it for reference).
- Switch your storefront subscription widget to Easy Subscriptions.
- Monitor the first 48 hours of billing closely.
Once the first full billing cycle completes without issues, uninstall the old app.
How long does a Shopify subscription migration take?
Store size | Typical timeline | Main bottleneck |
|---|---|---|
< 500 subscribers | 4–8 hours | Data export formatting |
500–5,000 subscribers | 1–2 days | Import validation + billing test |
5,000+ subscribers | 2–5 days | Staged import, payment method reconciliation |
These are working-hours estimates, not calendar days. The actual subscriber-facing downtime is zero, subscribers keep billing on their existing schedule throughout.
Common migration mistakes to avoid
- Uninstalling the old app before validating billing. Keep the old app installed (but with billing paused) until at least one full billing cycle completes in Easy Subscriptions. You’ll need it for reference if anything looks wrong.
- Skipping the test import. Importing 3,000 contracts with a mismatched SKU column means 3,000 failed contracts. Always test 5–10 rows first.
- Ignoring mid-cycle subscribers. If a subscriber’s next charge date is tomorrow and you migrate today, that charge needs to fire in Easy Subscriptions, not the old app. Confirm billing cutover timing before going live.
- Not recreating selling plans first. Contracts imported without a matching selling plan will fail or bill incorrectly. Build your plans in Easy Subscriptions before importing any contracts.
- Forgetting discount codes. Percentage discounts on active contracts don’t always transfer via CSV. Audit your discount-carrying contracts separately and recreate them manually if needed.
- Double-billing subscribers. If the old app is still active and Easy Subscriptions also attempts to bill, a subscriber gets charged twice. Pause the old app’s billing the moment you go live on Easy Subscriptions.
Migrating from specific apps
Migrate from Recharge to Easy Subscriptions
Recharge is the most common migration source, and the most complex, because older Recharge stores may still be on the legacy Recharge Checkout rather than Shopify Checkout.
Check your recharge setup first:
- If you’re on Recharge + Shopify Checkout, payment methods are Shopify-native and transfer cleanly.
- If you’re on the legacy Recharge Checkout, payment tokens are stored in Recharge’s system. You’ll need to either use Recharge’s migration tool or prompt affected subscribers to re-enter payment details via the Easy Subscriptions customer portal.
Export from Recharge via Analytics → Export. You’ll get separate files for customers, subscriptions, and addresses, merge them into a single import sheet before uploading to Easy Subscriptions.
The switch from Recharge to Easy Subscriptions also removes the 1.49% + $0.19/order transaction fee on the Standard plan, which pays for itself quickly on any store doing meaningful subscription volume.
Migrate from Appstle to Easy Subscriptions.
Appstle uses Shopify’s native Subscriptions API, so payment methods transfer without friction. This makes it one of the cleaner migrations.
Export your subscriber list from Appstle → Subscriptions → Export. The CSV includes all the fields Easy Subscriptions needs: customer email, product variant, billing interval, and next charge date.
One thing to check: Appstle’s revenue-based pricing tiers. If you’re close to a revenue cap on Appstle (e.g., $15,000/month on the $30/month Biz plan), you’re likely already paying more than Easy Subscriptions’ flat-rate Scale plan at $99/month, with no revenue ceiling.
Migrate from Loop to Easy Subscriptions
Loop’s data export requires a support request, they don’t have a self-serve export button. Contact Loop support and ask for a full subscriber CSV. Expect 24–48 hours for delivery.
Loop’s retention features (cancellation flows and loyalty rewards) don’t export, they’re app-specific logic. You’ll rebuild cancel-save flows natively in Easy Subscriptions after migration.
Loop’s pricing starts at $99/month plus ~1.0% + $0.19 per order. For stores with 1,000+ monthly subscription orders, switching to Easy Subscriptions’ flat $99/month Scale plan (0% transaction fees) cuts per-order costs entirely.




















