Shopify migrate customers between stores: export in A, match on email in B. Foreign IDs are ignored. Plan a locale and tax-exempt pass after.
2026-10-02

Migrate Shopify customers between stores — then fix locale and tax exempt

Shop A is closing. Shop B needs the same emails, tags, and wholesale flags. Shopify migrate customers between stores is not a clone button. It is a CSV out of A, an import into B that matches on email, and a planned cleanup for Customer Locale and tax exemption. Passwords do not move. Order history does not move. A’s Customer IDs do not exist in B.

We already covered export and import as separate jobs. This is the chain: A → file → B → the two listing USP fields. The app is OO - Bulk Customer Data Editor.

Shopify will not copy an account graph

Importing and exporting customer lists accepts a UTF-8 CSV up to 15 MB. You cannot migrate passwords. Total Spent and Total Orders do not import. Native overwrite on the same email or phone replaces existing data, including import tags.

What that file often drops — or leaves blank — is what this listing calls out: Customer Locale and tax-exemption status. A tag is not a locale. `Wholesale` is not the tax-exempt flag. After the move, notifications go out in the wrong language and the reseller sees tax at checkout.

Customer ID is per shop. Treat A’s ID as the update key in B and you update nobody — or you create duplicates when email is missing.

Three migrations that stop too early

Native export, native import, done. Names and emails land. Locale empty or store-default. Tax exempt off. Consent unknown.

Keep the Customer ID column “so updates work.” Same-store re-import: yes — the export docs say keep the ID for updates *in this shop*. Store-to-store: the ID is foreign. Matching falls back to email.

Blank columns to wipe old values. In this app, empty CSV cells stay unchanged on updates. Useful for a second pass that only fills Locale. Fatal if you thought blank meant clear.

None of those give you accounts in B *and* a grid pass for locale and tax exempt.

The listing’s “migrate between stores” is this sequence

OO - Bulk Customer Data Editor is Free. Listing: spreadsheet editor; bulk-edit Locale and tax exemption; import/export of fields Shopify leaves out; migrate customer data between stores; filters, views, segments. Excel and Google Sheets via CSV. Still 0 reviews — do not invent a rating. Launched 15 September 2026. UI in English.

The copy: *Easily migrate customer data between stores with full control over which fields to include.* That is export/import, not a live sync.

Import customers from CSV matching:

  1. Customer ID exists in this store → update.

  2. Else look up Email.

  3. Still missing → create (email or phone required).

A Shopify CSV from another shop is allowed: foreign IDs are ignored when they do not exist here; matching falls back to email. Useful. Dangerous if two people share an address across A and B — you update the wrong record.

Formats: this app’s export and Shopify’s standard customer CSV (First Name, Email, Accepts Email Marketing, Default Address, …). Yes/no marketing values map to subscribed/unsubscribed. Subscribed still needs a valid opt-in (FAQ). Do not mass-subscribe a migrated list.

In B: Customers → Import → Preview → confirm. Large files run in batches. Keep the tab open. Failed rows: Import results, read the error, retry the rest. Total spent, order count, and created date stay read-only — those numbers belong to B.

Then the cleanup the topic exists for. Edit customers in the spreadsheet: Locale is a Shopify locale dropdown (`en`, `nl`, …), not free text. Tax exempt is a yes/no-style field. Filters cover the full list (columns, filters, sorting).

Bulk apply: Select all matching up to 50,000. Field Locale or tax exempt. Apply. Nothing hits Shopify until Save. Large saves: keep the tab open.

The cleanup articles already exist: language wrong after import and tax exempt after customer import. Put them in the migration plan, not in the week after the first wrong-language mail.

Worked move: 1,800 fashion accounts, US shop to UK shop

Export in A with the columns you need. UTF-8 BOM if someone opens Excel. Do not promise passwords.

Import in B. Preview: 1,760 created on email, 40 matched to existing staff test accounts. Tab stays open. Names and tags arrive. Locale empty or `en`. Tax exempt off on every `Wholesale` tag.

Second pass — not a second full overwrite:

  1. Filter Locale is empty. Bulk apply `en` (or `en-GB` if that is the shop locale). Save.

  2. Filter tag `Wholesale` and tax exempt is no. Bulk apply exempt. Save.

  3. Consent: subscribed only where opt-in is real. Leave unknown otherwise.

Spot-check ten profiles and one wholesale checkout. Failed rows: Shopify’s error, retry the rest (FAQ). Save a shop-wide view “Post-migration locale empty” for the next move.

Run it before you close A

  1. Install OO - Bulk Customer Data Editor on both shops. Free.

  2. In A: Export. Pick columns. UTF-8 BOM for Excel.

  3. In B: Import, preview, confirm. Tab open. Expect email matching, not A’s IDs.

  4. Filter empty/wrong locale. Bulk apply. Save.

  5. Filter wholesale without tax exempt. Bulk apply. Save.

  6. Spot-check. Save the view.

Staff need `read_customers` and `write_customers`. Open from *Start editing* or Customers → More actions → Edit in bulk.

Close

Shopify migrate customers between stores is not a live copy and not a password transfer. It is export in A, import in B on email, then a scheduled bulk pass for locale and tax exempt. Native Admin overwrites on email. This editor lets you fix the two fields the standard editor does not make easy in bulk — after the file has landed.

Run that chain in OO - Bulk Customer Data Editor before you turn A off, not after the first customer gets the wrong language.

online origins logo full

Custom webshops, websites, and applications combined with smart online marketing to help your business grow online!

linkedin online origins iconinstagram online origins icon

Reviews

5/5

Check on Google

Mail: info@onlineorigins.nl

Tel: 073 234 0612

KVK: 89825624

BTW: NL865123639B01

Bruistensingel 500,
5232 AH 's-Hertogenbosch
Cookies

© 2026 Online Origins