WooCommerce to Shopify CSV Converter

Turn a WooCommerce product export into a Shopify import file, with variations, sale prices, images and SEO fields mapped across.

Describe the result you need. AI will set up the tool and ask for any missing details.

Configure with AI

Enter to submit · Shift + Enter for a new line

Sent to AI. Leave out passwords and private customer data.

Drop your WooCommerce product export here or browse files

CSV up to 25 MB. It's read in your browser and never uploaded.

Used for every product. WooCommerce's export has no vendor column.

So you can rebuild categories as automated collections based on tags.

Uses Shopify's Collection column, which creates missing collections. One collection per product.

Off: the short description is used only when the main one is empty.

How each WooCommerce column maps to Shopify

WooCommerceShopifyNotes
NameTitle and URL handleHandles are built the way WordPress builds slugs
DescriptionDescriptionLine breaks become paragraphs. The short description is used when the main one is empty.
Type: simpleOne product with one variant
Type: variable, plus its variation rowsOne product with optionsVariations are matched through the Parent column (SKU or id:123)
Attribute 1 to 3 name and value(s)Option1 to Option3 name and valueA variation set to "any" becomes one variant per value
Regular price and Sale priceCompare-at price and PriceWith no sale, Regular price becomes Price
Stock, In stock?, Backorders allowed?Inventory quantity, Inventory tracker, Continue selling when out of stockProducts without stock management stay untracked
Weight (lbs, kg, g or oz)Weight value (grams) and Weight unit for displayVariations without a weight use the parent's
Tax statusCharge taxtaxable is true, shipping-only and none are false
CategoriesType and TagsType is the deepest level of the first category
ImagesProduct image URL, one row per imageThe first image is the featured image. Variation images become Variant image URL.
GTIN, UPC, EAN, or ISBNBarcodes
Cost of goodsCost per itemOnly when WooCommerce's cost of goods feature is on
Meta: _yoast_wpseo_title and _metadesc (or rank_math_title and _description)SEO title and SEO descriptionNeeds custom meta in the export
Published 1, 0, -1Status active or draftPrivate, draft and pending products come in as drafts

The sample export

Organic Cotton Hoodie
variable, 6 variations (Color × Size)
Charcoal / L
Regular 68, sale 54
Weight
1.1 lbs on the parent
Zero Waste Kitchen Set
grouped product

4 products, 9 variants, 10 Shopify rows. Charcoal / L gets Price 54.00 and Compare-at price 68.00, every hoodie variant weighs 499 g (1.1 × 453.59), and the grouped product is left out with a warning.

Moving your products step by step

  1. 01

    Export from WooCommerce

    In WordPress, go to Products → All Products and click Export. Keep Export all columns, tick Yes, export all custom meta so SEO fields come along, and click Generate CSV.

  2. 02

    Convert it here

    Drop the file above, set a vendor name and choose the options, then download the Shopify CSV.

  3. 03

    Check it

    Run the download through the Shopify CSV validator if you edit it by hand afterwards.

  4. 04

    Import into Shopify

    In Shopify, go to Products → Import, add the file, click Upload and continue, then Import products.

  5. 05

    Redirect old URLs

    WooCommerce product URLs look like /product/hoodie/ and Shopify's look like /products/hoodie. Add a URL redirect for each product so links and rankings carry over.

What doesn't come across

  • Grouped and external products. Shopify has no equivalent, so they're left out. Use a collection or a bundles app instead.
  • Product slugs. WooCommerce's export doesn't include them, so handles are rebuilt from names. Check any slug you changed by hand.
  • More than 3 variation attributes. Shopify allows 3 options, so extra attributes are dropped and the tool tells you which variations merged.
  • Scheduled sales. Shopify's CSV has no sale dates. A sale running today is carried over, and you'll need to end it yourself.
  • Attributes on simple products, downloadable files, upsells, cross-sells, reviews, customers and orders. Move these with metafields, apps or separate imports.
  • Shared stock. If a variable product manages stock at parent level, each variant gets the full quantity, so split it after import.

Questions people ask

Does it keep my product URLs?

WooCommerce's export has no slugs, so handles are built from product names the way WordPress does by default. Shopify also uses /products/ instead of /product/, so set up URL redirects for your old links.

How are sale prices converted?

When the sale price is lower than the regular price, the sale price becomes Shopify's Price and the regular price becomes Compare-at price, so the product shows as on sale. Scheduled sales that aren't running today use the regular price.

Why are some of my variations missing?

Each variation's Parent column must point at a variable product in the same file, by SKU or id:123. Export parents and variations together, and don't filter the export by product type.

Will my Yoast or Rank Math SEO titles come across?

Yes, if you tick Yes, export all custom meta when exporting. Titles that use template variables like %%title%% are left blank so Shopify falls back to the product title.

Is my product data uploaded?

No. The conversion runs in your browser, and the file never leaves your computer.

Want this builtinto your store?

I'm Emmanuel, a Shopify and WooCommerce developer. If this tool pointed at something you'd rather have fixed for you (a faster store, cleaner product data, a migration, a custom feature), send me a note.

Emmanuel Asika

Emmanuel Asika

Shopify & WooCommerce developer, Dublin

I build and fix online stores: new builds, migrations, speed, SEO and the custom bits apps can't do.

hello@emmanuelasika.com