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 trafficEstimated 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 productsOrder created on or after
2024-01-01 00:00:00- migrate only the last year or two of ordersCustomer 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.
