Migrating products between sites

WooCommerce stores product data in your WordPress database, giving you full ownership and control. This guide covers the options available for exporting, importing, and migrating WooCommerce products between sites or systems.

Product data storage

↑ Back to top

WooCommerce products are stored in your WordPress database. This means you can migrate products between sites using the same methods you use for other WordPress content.

You have several options for importing and exporting product data, or for migrating your entire site and database.

Export and import with WordPress

↑ Back to top

WordPress includes a built-in tool that exports your content as an XML file. You can use this to transfer product data from one site to another.

To export an XML file containing product data:

  1. Go to Tools > Export and select the content you want to migrate.
  2. Select the Download Export File button. WordPress downloads an XML file to your computer.
  3. On the destination site, go to Tools > Import.
  4. Select WordPress and follow the on-screen instructions to upload the XML file.

For additional details, see the WordPress.org guide to importing content.

Migrate product data with CSV files

↑ Back to top

You can use CSV files to import, export, update, and merge product data. WooCommerce includes a built-in CSV importer and exporter that supports core product types. For full instructions, see the Product CSV Importer and Exporter documentation.

If you work with custom product data or data from supported extensions, consider the Product CSV Import Suite extension.

Both tools work with CSV data and can handle product migrations as well as first-time imports from a CSV file.

Add variations while updating a variable product

↑ Back to top

Starting in WooCommerce 11.1, an “Update existing products” CSV import can create eligible new variations for an existing variable product instead of skipping them. This is useful when merging a variable product’s variations from another site.

In WooCommerce 11.2 and later, update rows can also match an existing product by the mapped GTIN, UPC, EAN, or ISBN column (Global Unique ID), but only when both ID and SKU are blank. If an ID or SKU is supplied but does not match, WooCommerce does not fall back to Global Unique ID.

If the row includes a Type value that differs from the matched product’s type, the row fails rather than changing the product type. When Type is blank, this type check does not apply. This restriction applies only to Global Unique ID fallback; the ID/SKU simple-to-variable conversion remains available.

A variation row creates a new variation when all of the following are true:

  • The row has Type set to variation, leaves ID empty, and does not match an existing product by the identifiers supplied. WooCommerce cannot assign a specific ID to a new variation during an update import.
  • The row has a unique SKU, or a usable value in the mapped GTIN, UPC, EAN, or ISBN column when its SKU is blank. This gives later imports a stable identifier for the new variation.
  • The Parent column identifies an existing variable product by its SKU or an ID formatted as id:123. The parent must already be a variable product when the variation row is processed. It cannot be in the Trash or an import placeholder. The parent does not have to be published for the import to create variations.
  • Each supplied attribute name matches an attribute the parent already has. Each nonempty value matches an option assigned to that parent. An empty value is allowed and means any value for that attribute.

Review the import report for skipped or failed rows and their reasons. Keep each variation’s SKU or Global Unique ID consistent on later imports so WooCommerce can match it again.

For the full update procedure, see Update existing products in the Product CSV Importer and Exporter documentation. This behavior is part of the core CSV importer; the premium Product CSV Import Suite extension has its own dedicated workflow for importing product variations and isn’t affected by this change.

Migrate all data with Jetpack VaultPress Backup

↑ Back to top

Jetpack VaultPress Backup is a subscription-based backup service for self-hosted WordPress sites. It supports live backups of WooCommerce data and can migrate your entire WordPress site to another host. Migration requires an active paid VaultPress Backup plan on the source site.

Jetpack VaultPress Backup provides the following capabilities:

  • Restore your site to an available backup point while preserving WooCommerce orders received by the real-time backup service
  • Clone your entire site to a new host or server
  • Help protect customer data with secure, encrypted backups
  • Back up and restore custom WooCommerce tables that meet Jetpack’s database table requirements

For migration steps, see the Jetpack Backup guide to migrating to a new host. Before restoring a store, review Jetpack’s WooCommerce restore limitations: stock changes are not preserved as immutable data, subscriptions may need reactivation, and restored products may need verification.

Questions and support

↑ Back to top

Do you still have questions and need assistance? 

This documentation is about the free, core WooCommerce plugin, for which support is provided in our community forums on WordPress.org. By searching this forum, you’ll often find that your question has been asked and answered before.

If you haven’t created a WordPress.org account to use the forums, here’s how.

  • If you’re looking to extend the core functionality shown here, we recommend reviewing available extensions in the WooCommerce Marketplace.
  • Need ongoing advanced support or a customization built for WooCommerce? Hire a Woo Agency Partner.
  • Are you a developer building your own WooCommerce integration or extension? Check our Developer Resources.

If you weren’t able to find the information you need, please use the feedback thumbs below to let us know.

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.