Skip to main content

Tutorial: Migrate WooCommerce to Shopify

Connect WooCommerce, pull your catalog and orders into a spreadsheet, and import everything into Shopify.

What you'll build: A complete WooCommerce-to-Shopify migration: products with categories and images, customers with addresses, orders with line items and refunds, and discount codes. The final result is a working Shopify store mirroring your WooCommerce data, plus a reusable migration file you can re-run if anything goes wrong.

Who this is for: Merchants, agencies, and developers moving an existing WooCommerce store to Shopify. No code or hosting changes are required on the WooCommerce side - you only need access to the WordPress admin to generate an API key.

Prerequisites

  • Altera app installed on your destination Shopify store

  • Admin access to your WooCommerce site, with permission to generate REST API keys

  • The WooCommerce site must be reachable from the public internet (no VPN, IP allowlist, or HTTP basic auth). If your host restricts inbound traffic by IP, allowlist 34.182.181.120 - Altera's outbound IP for all migration and remote-connection traffic

  • Estimated time to complete: 30-60 minutes depending on catalog size


1. Generate a WooCommerce API key

Altera reads from WooCommerce using its built-in REST API. You'll generate a read-only key that Altera uses to fetch your data.

Step 1 - Open WooCommerce REST API settings

In your WordPress admin, go to WooCommerce > Settings > Advanced > REST API.

Step 2 - Add a new key

Click Add key. Set Description to Altera migration, leave User as your admin user, and set Permissions to Read. Click Generate API key.

Step 3 - Copy the credentials

WooCommerce shows the Consumer key (starts with ck_) and Consumer secret (starts with cs_) once. Keep this page open until you've pasted them into Altera - you can't view the secret again later.

Tip: WooCommerce also shows a QR code URL that embeds both the key and secret. You can paste the entire URL into Altera's Site URL field and Altera will split it into the right fields automatically.


2. Connect WooCommerce to Altera

This phase creates the migration record and verifies that Altera can talk to your WooCommerce site.

Step 4 - Open Altera and go to Migrations

In your Shopify admin, open Altera, then click Migrations in the left sidebar.

Step 5 - Pick the WooCommerce tab

The migrations page shows a tab for each supported source platform. Click the WooCommerce tab.

Step 6 - Enter the credentials

Paste your WooCommerce Site URL (e.g. https://yourstore.com), the Consumer key, and the Consumer secret. Click Connect.

Altera tests the connection immediately. If it fails, the page shows a banner explaining why (bad credentials, blocked by Cloudflare, plain permalinks, etc.) with a link to the matching error code documentation. Fix the issue at the source and click Test connection to retry.

Warning: If your site is behind Cloudflare, Sucuri, or a security plugin like Wordfence, you may need to allowlist the WooCommerce REST API path (/wp-json/wc/v3/*) or Altera's outbound IP (34.182.181.120) before Altera can read from it. See the WOO006 error code for guidance.


3. Run your first migration

This phase is where you pull data out of WooCommerce. You can run as many migrations as you like; each one is recorded under Past runs so you can compare results.

Step 7 - Select data types

On the migration detail page, click Products, Categories, Customers, Orders, and Coupons - whatever you want to migrate. Each click adds the data type to this run.

Tip: For your first run, start with only Products and Categories. This is the fastest way to confirm everything works end-to-end before pulling thousands of orders.

Step 8 - Add filters (optional)

Click Add filter to narrow the run by status or date range. Common starting filters:

  • Product status is any of publish - skip drafts and private products

  • Order created on or after 2024-01-01 00:00:00 - migrate only the last year or two of orders

  • Customer role is any of customer - skip admins and contributors

Filters apply at the WooCommerce API, so a filtered run is genuinely smaller and faster - not just trimmed at the end.

Step 9 - Start the run

Click Run migration. Altera streams the data and shows live progress for each data type. You can leave the page; the job will keep running and you can come back to it from the Past runs tab.


4. Import into Shopify

The migration produces a single xlsx file with one sheet per data type. From here it's a normal Altera import.

Step 10 - Download the file

When the run shows Complete, click Download on the latest run.

Step 11 - Review the file (recommended)

Open the file in Excel, Google Sheets, or any spreadsheet tool. Spot-check a few rows for products, customers, and orders. Look at the import warnings column - Altera flags anything that was truncated or skipped during the export so you can decide whether to fix it before importing.

Step 12 - Import into Shopify

Back in Altera, click New import and upload the file. Altera detects the multi-sheet xlsx and imports each sheet in the correct dependency order: definitions, then products and collections, then customers, then orders. You don't have to import sheets one at a time.


5. Verify the results

Spot-check your Shopify admin after the import finishes:

  • Products page shows the migrated products with images, variants, and prices

  • Collections page shows one Manual Collection per WooCommerce category

  • Customers page shows imported customer records with billing/shipping addresses

  • Orders page shows historical orders with line items, totals, and tags

If anything looks wrong, fix it in the spreadsheet and run a Shopify import again with the corrected rows. The Command column controls whether each row is created, merged, or replaced - see Import best practices for details.


6. Recap

You generated a read-only WooCommerce API key, used Altera to pull products, categories, customers, orders, and coupons into a single xlsx file, and imported it into Shopify in one go. The migration file is preserved under Past runs so you can re-run, audit, or tweak the migration without going back to WooCommerce.


7. Next steps

  • Run a fresh migration just before go-live to catch any new orders or customers added since your first run.

  • Read Import best practices for tips on big imports and rollback.

  • Review data permissions on the destination store if you want to restrict what staff users can import.

Did this answer your question?