Shopify Subscriptions
On Shopify’s free native app and outgrowing it.
- Keep paying $0 on RefillKit Free
- Cards already saved with Shopify
- Gain the full recovery ladder
Changing subscription apps fails when it is a leap of faith, so we removed the leap. Every RefillKit migration runs the same reversible sequence, and it comes with a guarantee we put in writing:
The Switch Guarantee. Nothing bills until you activate. Roll back in one click before that. Free white-glove migration on every plan. If your migration doesn’t complete cleanly, you owe nothing.
Where are you coming from?
Each app exports differently, and payment methods carry over differently. These four guides tell you exactly what to expect from yours before you touch anything.
On Shopify’s free native app and outgrowing it.
Moving off percentage-of-revenue pricing.
Leaving Bold Subscriptions behind.
Weighing a feature-rich toolbox against a focused one.
The mechanics
Four steps, and at every point before activation you can stop, fix, or undo. Your old app keeps billing normally until the moment you cut over, so nobody is billed twice and nobody is dropped.
Upload your export. Every row is checked, dates, products, variants, customers, duplicates, and you get the full report before anything is created.
See exactly which contracts would be created, with products, prices, frequencies, and each customer’s preserved next billing date. Nothing touches your store.
Contracts are built in a paused state, paced to stay inside Shopify’s API limits. Paused contracts cannot charge anyone.
Happy with what you see? Activate and wind down the old app. Not happy? One click removes everything the migration created.
Most stores complete the move in an afternoon. White-glove help is free on every plan: email us your store and we run it with you.
Sample migration report
This is an anonymized validation report from a real-shaped Recharge export. Yours will list your rows, your products, and your dates, and you read it before a single contract exists. Flagged rows can be fixed and re-uploaded, or excluded so the rest migrate.
| Check | Count | What it means |
|---|---|---|
| Rows parsed | 214 | Every line in the CSV was read and column-mapped by the Recharge preset. |
| Valid, ready to migrate | 209 | These rows would become paused contracts in the next step. |
| Unknown variants | 3 | The variant in the row does not exist in this store’s Shopify catalog. |
| Bad dates | 2 | The next-charge date could not be parsed, or is in the past. |
| Row | Customer | Finding | Suggested fix |
|---|---|---|---|
| 41 | c***@gmail.com | Unknown variant “Lavender / 250g” on product “Hand Soap Refill” | Map to an existing variant, or create it in Shopify and re-upload |
| 78 | m***@yahoo.com | Next charge date reads “31/06/2026”, not a real calendar date | Correct the date in the CSV; the row is otherwise valid |
| 112 | s***@outlook.com | Unknown variant SKU “RFL-0450-XL” | Check for a renamed SKU in Shopify, then remap |
| 167 | j***@icloud.com | Next charge date is in the past (2026-05-02) | Set the next occurrence of the customer’s cycle before executing |
| 203 | a***@gmail.com | Unknown variant “Unscented / Trial Size”, product discontinued | Exclude the row, or swap the line to the replacement variant |
Payment methods are reported too: the report counts how many rows can carry a payment method over silently and how many customers would get a Shopify-hosted card-update email, so the outreach volume is never a surprise. Raw card data is never in the file and never imported.
The free preflight tool reads your Recharge or Bold CSV and shows you this same style of report, entirely in your browser. The file never leaves your browser.