Moving a store between Shopify and WooCommerce: what a CSV moves and what you rebuild
What Shopify's and WooCommerce's own pages say a CSV moves in a store migration, which parts need apps or APIs, and what you rebuild by hand.
The short answer
A store move is three separate jobs: the catalogue, the customer and order history, and everything a file does not carry. Shopify's migration page lists CSV import for products and customers, but migration apps or its APIs for historical orders. WooCommerce's importer page covers products and does not mention orders or customers. So plan the catalogue as a file job and treat order history as a separate decision.
Both stores can import product data from a CSV, with limits that matter in practice. Shopify allows up to 3 options per product and up to 250 images per product. On WooCommerce, large imports depend on your server's memory and upload limits.
What each platform's own tools move
| Item | Into Shopify | Into WooCommerce |
|---|---|---|
| Products and variants | CSV; up to 3 options per product; changing option values deletes existing variant IDs | Built-in CSV importer; each variation needs a unique SKU (from version 11.2, a Global Unique ID can serve) |
| Images | Public https URLs; Shopify downloads and re-uploads them; no videos or 3D models in the CSV | External URLs are downloaded into the Media Library; the first image becomes the featured image |
| Image alt text | Alt text column, up to 512 characters | The core importer cannot add, edit or update alt text |
| Categories and collections | Optional Collection column; a product can belong to only one collection | Categories in one column, comma-separated, with > for hierarchy |
| Customers | CSV, migration apps or the Customer API | The importer page does not mention customers |
| Historical orders | Migration apps, the Order API or the Transaction API | The importer page does not mention orders |
| Matching existing items | Optional overwrite of products with matching handles | Optional update by ID or SKU; unmatched rows are skipped |
Moving out of Shopify: what you can export
Shopify's export page says a UTF-8 CSV is the only file format for exporting from or importing to Shopify. Exports of up to 50 orders, or of the current page, download to your device. Larger exports, and exports by date, are emailed to you and the store owner. The page gives timing examples: under an hour for fewer than 100,000 items and around 4 hours for 400,000 items.
Customer details such as name, phone, email, addresses and whether the customer accepts marketing appear inside the order export. A transaction-history export includes captured payments only, not authorisations.
What this means: an order export is a record you can keep or use for reporting. Whether it can be loaded into WooCommerce as real orders depends on the extension you choose, and WooCommerce's importer page does not cover it.
Moving into Shopify: order and traps
Shopify's migration page gives this order: import products first, then customers, then historical orders. Other content can be imported in any order. Points from Shopify's pages that do the most damage when missed:
- Notification emails. Staff who receive new-order notifications get an email for every imported historical order. Shopify says you can deactivate the notifications before importing and reactivate them afterwards.
- Blank cells overwrite. With overwriting on, blank non-required columns replace existing values with blank. Columns you leave out keep their values.
- Option changes reset variants. Changing Option1, Option2 or Option3 values deletes existing variant IDs and creates new ones.
- Images. URLs must be public, https and not password protected, because Shopify downloads and re-uploads the files.
- No bulk delete. A CSV cannot bulk-delete products.
- Redirects. Page addresses often differ: Shopify's example is /policies/shipping-policy becoming /pages/shipping-policy. Create redirects under Content > Menus > View URL Redirects, or import them from a CSV, before you move the domain, and test your most-visited old addresses afterwards.
- The rest of the store. Shopify's own list of steps after import: check price, weight, inventory and variants, then theme, shipping zones and rates, taxes, payment provider and checkout, test orders, staff accounts, and domain and redirects.
Moving into WooCommerce: what the importer says
WooCommerce's importer page describes products only. What it says that matters for a move:
- Large imports depend on your server's available memory, upload limits and processing time. The maximum file size on the upload screen is set by the server, and your host can raise it. If a file is too large for one request, split it into batches.
- Back up the store and test on staging before a large import.
- Update imports match existing products by ID or SKU, and a supplied ID that does not match is skipped. Without the update option, rows whose ID or SKU already exists are skipped.
- External image URLs are downloaded into the Media Library, but the core importer cannot add or update image alt text.
- Columns the importer does not recognise are not imported by default. Adding fields needs custom code, or an extension that follows its own documentation.
We did not review WooCommerce tools or extensions for orders and customers, so that part of a move into WooCommerce is outside this guide.
Is the move worth it?
Our reading, not a rule:
- Name the problem the move solves. If it is a monthly cost, compare real totals first: Shopify vs WooCommerce and e-commerce platform fees set out the fee structures. A CSV moves your products. It does not move the work of rebuilding theme, shipping, tax, payments and email automations.
- Rehearse with a small batch. Import a few dozen products into the new store first, check variants, images and categories, then do the full catalogue.
- Decide on order history early. If customers must see old orders in the new store, you need an app, an API or an extension. If not, keep the export file and the old account's records.
- Keep the old store live until redirects are verified, and rebuild your email flows: the e-commerce email automations guide lists what to recreate.
- Still deciding where to go? See Shopify alternatives and the product pages for Shopify and WooCommerce.
Editorial opinion
Frequently asked questions
- Can I move order history into Shopify?
Shopify's migration page lists migration apps, the Order API and the Transaction API for historical orders, not a CSV import. Imported orders trigger an email to staff who receive new-order notifications, unless you deactivate those notifications before importing.
- What should I import first?
Shopify's page says products first, then customers, then historical orders. Other content, such as blogs and pages, can be imported in any order.
- Will image alt text survive a move from Shopify to WooCommerce?
Do not assume so. Shopify's product CSV carries image alt text, but WooCommerce's page says the core importer cannot add, edit or update alt text for product images. Plan to set it another way.
- Why do large WooCommerce imports fail?
The page says large imports depend on the server's available memory, upload limits and processing time. The maximum size shown on the upload screen is set by the server and your host can raise it. If one file is too large, split it into smaller batches.
Sources
Nikita Latyshev is the founder of LATYNEX Labs, an independent publication about business software and infrastructure. LATYNEX Labs is published by Latynex Trade OÜ, Estonia. How the site checks facts, handles sponsorship and earns money is described on its methodology, editorial policy and affiliate disclosure pages.