Looking to export and import customer accounts from Magento to WooCommerce?
The customers you have built up in Magento are some of the most valuable assets in your store, and moving them to WooCommerce without losing addresses, custom attributes, or login access is the part of the migration that deserves the most attention. The good news is that Magento exports customer data as a clean CSV file that you can import into WooCommerce with the right plugin.
In this guide, we'll walk you through the Magento customer export process and the WooCommerce customer import process. We'll also cover some advanced cases that come up during the migration.
📑 Table of Contents
Magento to WooCommerce Customer Workflow
Magento stores customer data in an EAV (Entity-Attribute-Value) model that is more flexible than WooCommerce's user meta structure but uses a different column layout. The Magento export produces a CSV with service columns (those that start with an underscore) and attribute columns, and the import side needs to map those columns to WooCommerce's account fields, billing and shipping addresses, and custom user meta.
WP All Import handles the whole workflow through the drag-and-drop interface covered in the How to Export and Import WooCommerce Customers guide. The same import process that handles a 100-customer migration also handles a 100,000-customer platform move, and every specialized scenario (custom attributes, multiple addresses, group-to-role mapping) becomes a configuration choice rather than a rebuild.
Part 1: Exporting Customers from Magento
Magento's native export tool handles the export side without any third-party plugin. It gives you a clean CSV file that drops into the var/export/ folder on the server (Magento 2.3 and earlier downloads the file directly through the browser).
How to Export Customer Accounts from Magento
Step 1: Open the Magento Export Tool
In the Magento admin, navigate to System > Data Transfer > Export. This is the same export screen used for products, customers, and addresses, so the interface is the same whether you are moving customers, products, or both.

Step 2: Choose the Customer Entity Type
Magento offers three customer-related entity types:
- Customers Main File:Â contains account data only (email, name, group, password hash, registration date, custom attributes).
- Customer Addresses:Â contains address data only (street, city, country, phone, default billing or shipping flags).
- Customers and Addresses (Single File):Â combines both, with each customer's addresses on additional rows beneath the customer row.

For most WooCommerce imports, Customers and Addresses (Single File) is the right starting point. It captures every address per customer in one file, which matters because Magento supports multiple billing and shipping addresses per account while WooCommerce stores one of each. Magento handles the row layout automatically: the customer's main row carries the account data, and the rows directly beneath carry each address linked by the email column.
Step 3: Review the Attributes
The next screen lists every customer attribute Magento knows about, organized alphabetically. The column headers in the CSV match these attribute codes exactly, so the names you see here are the names WP All Import will see on the import side.
Required fields for new customer creation:
email_website_storefirstnamelastname
Apart from these, you can pick the address and common optional account fields to create your export file.

To exclude an attribute from the export, you simply tick the Exclude checkbox next to it. Magento keeps the column header in the file but leaves the values blank. For most WooCommerce imports, exclude the Magento-specific fields that have no WooCommerce equivalent (such as _store or rp_token), or leave them in and let WP All Import ignore them on the import side.
Step 4: Run the Export
Click Continue at the bottom of the screen. Magento processes the export in the background and produces the CSV file. For Magento 2.3 and earlier, the file downloads through the browser. For Magento 2.4 and later, the file lands in var/export/ on the server and you fetch it through FTP, SFTP, or the server file manager.
What Customer Data Can You Export
The Magento customer export covers more than the standard account fields. Here is the full breakdown of what the file contains:
- Account fields:Â email, name components (first, middle, last, prefix, suffix), date of birth, gender, tax or VAT number, customer group ID, registration date and store, account confirmation status, password hash, and any reset password tokens.
- Address fields:Â linked to the customer by email, with full street address, city, postcode, region, country, phone, fax, VAT ID, and the default billing and shipping flags.
- Custom attributes:Â any attribute added through Magento's admin or by third-party extensions shows up here automatically. If your store uses loyalty points, marketing consent flags, customer tags, reward balances, custom segments, or any other third-party data, those columns appear in the export file with no extra configuration.
- Multiple addresses per customer:Â Magento stores as many addresses as a customer needs. The single-file export puts the customer's account data on one row and each address on additional rows beneath, all linked by the email column.
Part 2: Importing Customers into WooCommerce
WP All Import brings the Magento customer file into WooCommerce through the same drag-and-drop interface used for any other WordPress user data. The import loop handles the basic case in a few steps, and every specialized scenario (custom attributes, group-to-role mapping, password handling) becomes a configuration choice on the same screen.
How to Import Customers into WooCommerce
Step 1: Install WP All Import and the Required Add-Ons
From Plugins > Add New in WordPress, install and activate all three:
- WP All Import (the base plugin)
- WooCommerce Import Add-On (recognizes the WooCommerce customer post type)
- User Import Add-On (registers the WordPress user fields the customer record depends on)

Verify all three show as Active on the Plugins page before continuing.
Step 2: Start a New Customer Import
Navigate to All Import > New Import. Upload the Magento customer CSV file.

Select WooCommerce Customers from the post type dropdown, then click Set Up Import.
Step 3: Map the Magento Columns to WooCommerce Customer Fields
The Drag & Drop screen organizes WooCommerce customer fields into four panels: Customer Account Info, Billing & Shipping Info, Other Customer Info, and Custom Fields. The right side shows the columns from your Magento file.

Map the core account fields first:
email → Emailfirstname → First Namelastname → Last Name

For billing and shipping addresses, the Magento single-file export puts each address on a row beneath the customer row. WP All Import detects these as nested data and offers them as _address_* style fields on the right side. Map the default billing address row to the Billing & Shipping Info panel and the default shipping address row to the same panel.
For the customer group, Magento uses numeric IDs (1 = General, 2 = Wholesale, etc.) while WooCommerce uses role slugs (customer, subscriber, wholesale_customer, etc.). A small PHP function in the Function Editor handles the value mapping (for example, if ({group_id[1]} == 2) return 'wholesale_customer'; else return 'customer';).
For custom attributes, expand the Custom Fields panel. Any Magento custom attribute that does not match a standard WooCommerce field maps as a custom field, which WordPress stores as user meta. WP All Import auto-detects most known custom fields, so the mapping is usually a matter of dragging the Magento column to the matching WooCommerce user meta field.
Step 4: Handle the Password Format
Magento password hashes are not compatible with WordPress, so the password column needs special handling.
Magento 1 stores passwords in the format {hash}:{salt} using MD5 hashing. Magento 2 uses {hash}:{salt}:{version} where version 0 is MD5, 1 is SHA256, and 2 is Argon2ID13. WordPress uses its own phpass hashing format, which is different from both.
The simplest practical approach: leave the password field blank in the import. WooCommerce will generate a new password for each imported account, and you can enable the Send password reset email option on the Import Settings screen so WordPress emails each customer a reset link. The customers set a new password and continue using their accounts without the Magento hashes needing to be converted.
Step 5: Configure the Magento Customer Import Settings
The Import Settings screen controls how WP All Import handles existing customers and email notifications.
The Unique Identifier is the field WP All Import uses to distinguish each incoming record, which determines whether the import creates new accounts or matches against existing ones. For a Magento import, the email address column is the most reliable choice since it is unique per customer and stays consistent across stores.
- Create new WooCommerce customers for each record:Â the right choice for a first-time migration from Magento.
- Update existing customers:Â useful if you are re-running the import or syncing against a Magento source that has changed since the first run.
- Block email notifications during import:Â enabled by default. Uncheck it if you want imported customers to receive the standard WordPress welcome email or a password reset link.

Step 6: Run the Magento Customer Import and Verify
Click Continue to move to the Confirm & Run screen, review the Import Summary, then click Confirm & Run Import. When the import finishes, navigate to Users > All Users to verify the imported accounts.

Imported Magento customers appear under Users > All Users rather than under WooCommerce > Customers. WooCommerce populates its customer report only after a customer places an order, so any account imported directly will appear under Users > All Users until they have placed their first order on the new store.
Advanced Magento Customer Import Workflows
The basic import loop handles the standard case, but Magento migrations often include data that needs extra attention.
Map Magento Customer Groups to WordPress User Roles
Magento's group_id field stores customer tiers as numeric IDs (1 = General, 2 = Wholesale, etc.), while WooCommerce uses WordPress user roles (customer, subscriber, wholesale_customer, etc.). The mapping needs to happen during the import, since importing the raw Magento IDs into the WooCommerce role field will not produce meaningful roles.
WP All Import's Function Editor handles this with a small PHP function that converts the numeric ID to the matching role slug. For example:
if ({group_id[1]} == 1) return 'customer';
if ({group_id[1]} == 2) return 'wholesale_customer';
return 'customer';The same pattern handles stores with more than two customer groups. Save the function as a snippet so it can be reused on subsequent imports.
Import Multiple Addresses Per Customer
Magento allows unlimited billing and shipping addresses per customer, while WooCommerce stores one of each. The Magento export captures every address per customer, with the default billing and shipping flags marked on the relevant rows.
On the WooCommerce import side, the default billing address row maps to the Billing & Shipping Info panel, and the default shipping address row maps to the same panel. Additional addresses (the non-default ones) do not have a direct WooCommerce equivalent and can either be skipped during the import or stored as custom user meta so the data is preserved even though WooCommerce's order flow only uses the defaults.
Migrate Magento Orders with Their Customer Accounts
A full Magento to WooCommerce migration typically includes orders along with customers. The two need to be imported in the right order: customers first, then orders, so each order's customer_id can be matched to a WooCommerce user account.
WP All Import handles both sides through the same drag-and-drop interface. The customer import creates the user accounts with the matching Magento email addresses, and the order import then links each order to its customer using a function that matches by email address. The result is a WooCommerce store where every order is correctly attached to its original customer.

Final Thoughts - Magento to WooCommerce Customer Export Import
Magento and WooCommerce use different data models for customer accounts. Magento's EAV structure gives merchants more flexibility for adding attributes, but the export produces a CSV that does not map directly to WooCommerce's user meta structure. The migration is less about moving data from one database to another and more about translating between two different ways of thinking about customer records.
The good news is that the translation is straightforward. WP All Import's drag-and-drop interface handles the column mapping, the Function Editor handles the value mapping (group IDs to role slugs, address flags to WooCommerce's billing and shipping fields), and the Custom Fields panel handles the EAV attributes that do not have a direct WooCommerce equivalent. The result is a WooCommerce store with the same customer accounts, the same addresses, and the same custom data, ready for the next phase of the business.
Frequently Asked Questions - Magento to WooCommerce Customer Export Import
How do I export customer accounts from Magento?
You can export customer accounts from Magento using the native export tool. Navigate to System > Data Transfer > Export, choose Customers and Addresses (Single File) as the entity type, review the attributes, apply any filters you need, and click Continue. Magento produces a CSV file that drops into the var/export/ folder on the server.
Can WP All Import handle the Magento customer export file directly?
WP All Import accepts the Magento customer CSV file as the source for a WooCommerce customer import. The drag-and-drop interface detects the Magento columns and lets you map them to the matching WooCommerce customer fields, with custom attributes landing in the Custom Fields panel automatically.
Can I migrate Magento customer groups to WooCommerce user roles?
Magento stores customer groups as numeric IDs, while WooCommerce uses WordPress user roles. WP All Import's Function Editor handles the conversion with a small PHP function that maps each Magento group_id to the matching role slug (for example, 1 to customer, 2 to wholesale_customer).

