Tom Sailors Contact
Case study · Subscription migration

The Shopify subscription migration that kept the tier prices

Published 2026-05-26

A B2B supplement brand moved from a legacy subscription provider to native Shopify Subscriptions. Customers with grandfathered tier prices kept them. No duplicate charges. No missed renewals.

Before
Legacy provider
During
Custom Remix layer
After
Native Shopify Subscriptions
CUSTOMER 4082 · tier price $42.50/mo (grandfathered 2022) — preserved through cutover via HMAC-signed guest cart
A small custom layer sits between the legacy data and Shopify. Old tier discounts survive into checkout.

Why a template migration falls short

Bold, Recharge, and the native Shopify importer cover the standard case. Same frequency, same price, same SKUs — they move it over.

The standard case is rare for a brand that's been on a legacy provider for years. Customers have grandfathered tier prices. Some run on multi-frequency contracts. Payment tokens have to map cleanly into Shopify's vault. The legacy CSV export is dirty — it always is.

A template migration flattens those edge cases. A custom migration preserves them.

What gets built

Migrations this fits

Grandfathered tier pricing
A legacy provider sold annual pricing locks. The new system has to honor them at checkout, not at fulfillment.
Multi-frequency contracts
Every 6 weeks, every 3rd order, quarterly billed monthly — patterns that templates flatten into a single cadence.
Annual prepay
Customer paid 12 months up front. The new system honors the remaining balance and resumes billing only when the prepay runs out.
B2B dealer accounts
Wholesale tiers tied to company-level customer records. Cutover preserves the company-to-customer mapping.

The receipts

B2B supplement brand, in production
268
commits in the custom Remix app over the migration window.
1,000
customers per bulk import run, idempotent on retry.
HMAC
signed guest-cart pricing so legacy tier discounts survive checkout.
0
duplicate charges at cutover weekend.
0
missed renewals in the first month after cutover.

What an engagement looks like

A typical migration is 4 to 8 weeks. The first two weeks are reconciliation — making sure the legacy customer file lines up with what Shopify will accept. The cutover happens on a single afternoon, with a fallback path open for 48 hours.

The native Shopify Subscriptions API is the destination on every job. The legacy provider goes away. Nothing left for the merchant to maintain after handoff except their own catalog.

Subscription migration for a Shopify store?

Email Tom with the current provider, roughly how many active subscribers, and whether grandfathered pricing is in the picture.

Email Tom →