MapMyCSV
Unlock full CSV · $29 once

Stripe checkout · 7-day refund · No account · Files stay in this browser

Store import guide

Import customers into Shopify from a CSV

Shopify's customer import reads its own column names, like Email and Default Address Zip. Rename the export's columns to those, check the yes/no and address-code columns, then import.

A customer list from an old store, a newsletter tool or a spreadsheet rarely uses Shopify's headers. It says first_name, postcode and marketing_opt_in. Shopify's customer CSV says First Name, Default Address Zip and Accepts Email Marketing. This guide lists the rules Shopify publishes for that file, then walks one synthetic export through the mapping.

What Shopify asks of a customer CSV

From Shopify's Help Center (sources at the end of this section):

On marketing consent, Shopify says to set each consent column from that contact's history for that channel. Enter no for anyone who unsubscribed, never opted in, marked your emails as spam, or whose address bounced.

Shopify sources, read November 1, 2026: Importing and exporting customer lists · Solving customer CSV file errors

Pick the target headers

Shopify's customer CSV template uses these columns: First Name, Last Name, Email, Accepts Email Marketing, Default Address Company, Default Address Address1, Default Address Address2, Default Address City, Default Address Province Code, Default Address Country Code, Default Address Zip, Default Address Phone, Phone, Accepts SMS Marketing, Accepts WhatsApp Marketing, Total Spent, Total Orders, Note, Tax Exempt, Tags.

Only list targets your export can fill, and always include Email. MapMyCSV won't build the full CSV until every target column has a source, so a target with no matching data blocks the download. Skip Total Spent and Total Orders too, since Shopify doesn't import them.

Worked example: an old store's customer export

Two synthetic files you can run in the free preview. Not customer data.

  1. Open the free preview. Drop customers-export-sample.csv on Input A.
  2. Open shopify-customers-headers.csv and paste its one line into Input B.
  3. Read the column mapping before you read the rows.
Shopify headerSource pickedShown asWhat to do
First Namefirst_name100% matchKeep
Last Namelast_name100% matchKeep
Emailemail100% matchKeep
Accepts Email Marketingmarketing_opt_in20% matchKeep. The values are already yes or no
Default Address Companycompany91% matchKeep. One row is blank
Default Address Address1address_153% matchKeep
Default Address Citycity53% matchKeep
Default Address Province Codenoneno matchChoose state. The values are two-letter codes
Default Address Country Codecountry45% matchKeep. The values are two-letter codes
Default Address Zipnoneno matchChoose postcode
Phonephone100% matchKeep. One row is blank
Tagstags100% matchKeep. One row is blank

The percentage scores the header labels, not the values. marketing_opt_in shares only one word with Accepts Email Marketing, so it scores low even though it's the right column. Check the values before you trust a low score or a high one. state and postcode share no words with Shopify's names, so you pick them from the dropdown and they show as manual. total_spent has no target, so it's left out of the mapped file.

With the two picks made, the five mapped rows are:

First Name,Last Name,Email,Accepts Email Marketing,Default Address Company,Default Address Address1,Default Address City,Default Address Province Code,Default Address Country Code,Default Address Zip,Phone,Tags
Maya,Ortiz,maya.ortiz@example.com,yes,Harbor Freightworks,1200 S Lamar Blvd,Austin,TX,US,78704,+15125550142,"wholesale,vip"
Dev,Raman,dev.raman@example.org,no,"Raman, Patel & Co",45 Elm St,Boston,MA,US,02134,+16175550199,retail
Jo,Lindqvist,jo@example.net,yes,,88 Harbord St,Toronto,ON,CA,M5S 1G6,,retail
Sam,Okafor,sam.okafor@example.com,no,Bright Path Tutoring,9 Pine Rd,Portland,ME,US,04101,+12075550123,
Priya,Shah,priya.shah@example.com,yes,Northwind Dental,310 Congress Ave,Austin,TX,US,78701,+15125550110,vip

The preview says "2 rows need attention before you import". Every target column is checked for blanks, so read each flag against Shopify's rules:

Things the preview doesn't flag:

What MapMyCSV doesn't do here

Before importing a full list, import the first few rows and open those customers in Shopify. Check the name, address and consent landed in the right fields, then import the rest. The general CSV column mapping guide has a longer review sequence.

Questions

Which column does a Shopify customer CSV need?

Email. Shopify says the Email column is required and must be present, but the value can be blank. If the column is missing, the import gives an error. Headers aren't case sensitive.

Can I import order history or total spent with my customers?

No. Shopify doesn't import the Total Spent and Total Orders columns, and order information can't be imported with a customer CSV.

What goes in the Accepts Email Marketing column?

Only yes or no. The same applies to Accepts SMS Marketing, Accepts WhatsApp Marketing and Tax Exempt. Shopify says to enter no for contacts who unsubscribed, never opted in, marked your emails as spam, or whose address bounced.

What happens to duplicate emails in a Shopify customer import?

Shopify skips customers with duplicate email addresses or phone numbers, doesn't tag them, and imports only the last profile with that email or phone. Remove or fix duplicates before you import.