What migrations do
Migrations connect Altera to a non-Shopify store, pull the data you select, and produce an Excel file in the standard Altera/Matrixify format. You then import that file into Shopify using the normal Altera import flow.
Migrations do not write to your Shopify store directly. The output is always a file you can inspect, edit, and re-run before any data lands in Shopify.
Supported platforms
WooCommerce (via the WordPress REST API) - generally available
Magento, BigCommerce, Etsy (API connector or file upload) - planned. Use the Contact us button on each tab in the migrations page to register interest.
For Etsy today, use the spreadsheet-based Etsy products and Etsy orders transformations.
Supported data types
The WooCommerce connector currently exports:
Products - including variants, images, categories (as tags and as Manual Collections), prices, weights, dimensions, and SKUs
Manual Collections - one per WooCommerce category, so the category structure carries over to Shopify
Customers - including billing/shipping addresses and customer role
Orders - including line items, taxes, shipping, refunds, and notes
Discounts - WooCommerce coupons mapped to Shopify discount codes
Redirects - WooCommerce product, category, and page URLs converted to Shopify URL redirects, including nested category paths, so existing inbound links keep working
Reviews - product reviews exported in Altera, Judge.me, or Loox CSV format for import into your chosen Shopify review app
You can include any combination of data types in a single run. Each data type lands on its own sheet of the output xlsx file.
How a migration runs
Create the migration - enter the source-store credentials. Altera tests the connection straight away so you can fix problems (bad credentials, blocked by Cloudflare, missing plugin) before going any further.
Pick data types and filters - choose what to pull and narrow it down with status and date filters. The filters are per-data-type and apply server-side, so a partial migration is genuinely partial - we only fetch what you asked for.
Run - Altera streams the source data into a single multi-sheet xlsx and shows live row counts on the job detail page.
Import into Shopify - download the file, review it if you want, and run it through Altera's normal import. Multi-sheet files are imported in the correct dependency order automatically (definitions -> products -> collections -> customers -> orders -> ...).
Filters
Filters are applied at the source platform's API, not after the fact, so they keep large migrations small and fast. The available filters depend on the data type. For WooCommerce these are:
Product status (
publish,draft,pending,private)Product created/updated date ranges
Order status (
pending,processing,completed, etc.)Order created/updated date ranges
Customer role (
customer,subscriber,shop_manager, etc.)Customer created/updated date ranges
You can add WooCommerce status values that come from custom plugins (e.g. wc-on-hold-stripe) by typing them into the filter field - it accepts free-form text in addition to the suggestion list.
Past runs
Each migration keeps a history of every run on its detail page. Run details include row counts per data type, filters used, and the resulting file - useful for iterating on a migration without losing earlier output, and for proving exactly what was pulled when.
What migrations are not
Not a live sync. Each run is a one-shot snapshot. If you need ongoing sync between WooCommerce and Shopify, use a third-party sync app.
Not gated by data permissions. Store data permissions only apply to Shopify imports and exports. To restrict what gets created in Shopify from a migration file, set the matching Import restriction on the destination store.
Not a Shopify-to-Shopify mover. For moving data between Shopify stores, use the standard export/import flow described in How to duplicate a Shopify store.
Limits and known issues
The source site must be reachable from the public internet. Sites behind a VPN, IP allowlist, or HTTP basic auth cannot be migrated until they're temporarily opened up.
Allowlisting by IP: All migration traffic originates from
34.182.181.120(the same IP used by Altera's FTP, SFTP, WebDAV, and remote URL connections). If your source site restricts access by IP, add this address to your allowlist.A WAF or bot-protection layer (Cloudflare, Sucuri, Wordfence) will typically need a rule that skips the WooCommerce REST API path. See the WOO006 error code for details.
Some WooCommerce hosting setups have a known pagination bug that returns the same page repeatedly. Altera detects and stops on this rather than emitting duplicate data - see WOO010.
Timestamps in the output file are converted to the destination Shopify shop's timezone so they read naturally in Shopify admin.
