---
title: Migrate WooCommerce stores to Shopify with Altera
date: 2026-05-27
description: Connect your WooCommerce site with a read-only API key and pull products, categories, customers, orders, coupons, redirects, and reviews into a Altera-ready file.
tags: ["Migration","Products","Orders"]
categories: ["Changelog"]
url: https://www.getaltera.com/changelog/2026-05-27-woocommerce-migration/
---


Altera now has a built-in WooCommerce connector. Paste your WooCommerce site URL and a read-only REST API key, pick the data types you want, and Altera pulls the data into a single Excel file you can import into Shopify with the normal Altera import flow. No more reformatting WooCommerce exports by hand.

### What's New

- **WooCommerce connector** - new **Migrations** section in Altera connects to any public WooCommerce site via its REST API and produces a Shopify-ready xlsx in one run.
- **Products** - migrate products with variants, images, prices, and body HTML (with inline images carried across).
- **Categories as Manual Collections** - each WooCommerce category becomes a Manual Collection on the destination store, with products assigned automatically.
- **Customers** - pull customer records with billing and shipping addresses.
- **Orders** - historical orders with line items, refunds, and notes.
- **Coupons** - WooCommerce coupons mapped to Shopify discount codes.
- **Redirects** - WooCommerce product, category, and page URLs converted to Shopify URL redirects so existing links keep working.
- **Reviews** - product reviews exported in Altera, Judge.me, or Loox CSV format so you can drop them into your chosen Shopify review app.
- **Per-data-type filters** - narrow each run by status (e.g. only `publish` products, only `completed` orders) and by created/updated date range. Filters apply at the WooCommerce API for genuinely smaller runs.
- **Connection test built in** - the create flow tests your credentials immediately and shows a specific error code (bad auth, blocked by Cloudflare, plain permalinks, etc.) so you can fix the source instead of guessing.
- **Past runs preserved** - each migration keeps a history of every run with row counts and the resulting file, so you can iterate without losing earlier output.

