1. Your customer CSV
A customer export from Shopify or another platform edited in a spreadsheet, or a sheet built from Shopify's customer import template. Customer data is personal data: this page never uploads it.
Choose a file or paste the text, then click Check file.
Result
Rows with findings
| Line | Customer | Findings |
|---|
Safe fixes
The rules, and what they leave out
- Identity. Every row needs an Email or a Phone. Emails must be valid addresses and unique; two rows that differ only in capitals are the same customer.
- Phone (and Default Address Phone) should be international E.164: a +, the country code and 7 to 15 digits in all, such as
+16175550101. This tool never adds a country code for you. - Excel damage. A Zip such as 2108 for a US address has lost its leading zero;
2108.0and1.2E+10mean Excel read the cell as a number. Format the column as Text before editing. - Codes. Country Code is the two-letter ISO code (US, CA, GB). Province Code is the short code (MA, ON), checked against the lists for the United States, Canada and Australia and for shape elsewhere.
- Marketing and tax columns. Accepts Email Marketing, Accepts SMS Marketing and Tax Exempt take yes or no (true and false are also read). Anything else, such as Y, 1 or subscribed, is flagged and left for you to decide.
- Tags are comma-separated; each is limited to 255 characters and a customer to 250 tags. Total Spent is a plain number and Total Orders a whole number.
- Safe fixes change only the delimiter, header capitals, stray spaces around an email, phone or zip, spaces and brackets inside an already valid phone number, capitals in yes and no, country and province codes, a trailing
.0on a zip, and currency symbols in Total Spent. It never edits a name, address, note, tag or consent value's meaning, never adds a leading zero or a country code, and never merges duplicates. - Not checked: that Shopify will accept the file today, whether an address really exists, whether an email is deliverable, store-specific limits, customer metafields and anything Shopify changes in its importer. Import two or three customers first.
Common questions
Why does my Shopify customer CSV import fail or skip rows?
The usual causes are a row with neither an email nor a phone number, an email that is not a valid address, the same email twice (capitals do not make it different), a phone number not in international +1234567890 form, country or province values that are names rather than codes, marketing columns holding something other than yes or no, an unquoted comma that shifts every later cell, and an Excel save that stripped leading zeros from zip codes or turned long phone numbers into scientific notation. This tool tests each of them and names the line.
Can I import marketing consent into Shopify from a CSV?
Shopify reads the Accepts Email Marketing and Accepts SMS Marketing columns, but the value must reflect a real opt-in you hold a record of, such as a signup form or a prior platform's subscription list. This tool only checks that the values are readable; it never creates or changes consent. Importing marketing consent for people who did not give it can breach laws such as TCPA, CAN-SPAM, GDPR and PECR. Ask a lawyer if unsure.
Why did my US zip codes lose their leading zero?
Excel treats a zip as a number and drops the leading zero, so 02108 becomes 2108. The tool flags 3- and 4-digit US zips. It does not add the zero back for you, because only your records know the real zip; re-enter it with the column formatted as Text.
What does Apply safe fixes change?
Only things with one reasonable reading: the delimiter, header capitals, stray spaces, punctuation inside an already valid phone number, yes and no capitals, country and province code capitals, a trailing .0 on a zip and currency symbols in Total Spent. Every change is listed with its line. It never edits names, addresses, notes, tags or what a consent value means.
Is it safe to put my customer list into a web page?
The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. You remain responsible for how you store and handle the downloaded file.
What does this not check?
Whether Shopify will accept the file today, whether addresses or emails are real, and store-specific settings. A clean result is not a promise of success: import a few customers first.