Etsy to WooCommerce product CSV converter

In short: Etsy lets you download your active listings as EtsyListingsDownload.csv: title, description, one price, one quantity, tags, materials, up to 10 image links and up to two variation types per listing. WooCommerce's built-in product importer reads its own column labels, one row per product and one per variation, with every variation pointing at its parent. Drop the Etsy file below to get one from the other. It is converted on your device and never uploaded.

Convert Etsy to WooCommerce

Etsy to WooCommerce

Your Etsy listings CSV (EtsyListingsDownload.csv).

Your file stays on this device

It is read and converted by this page, inside your browser. Nothing from the file is uploaded, and the tool keeps working offline once the page has loaded.

Loading the converter...

What moves: products, variants, prices, stock, SKUs, images, tags, descriptions and SEO fields where both platforms have them. What does not: customers, orders, reviews, gift card balances, blog posts, pages and URL redirects are not in a product export, so CatalogHop does not convert them.

1. Export your products from Etsy

  1. Sign in to Etsy and open Shop Manager.
  2. Go to Settings, then Options, then the Download Data tab.
  3. Under "Currently for Sale Listings", click Download CSV. You get EtsyListingsDownload.csv.
  4. If your Etsy account is set to a language other than English, switch it to English first: the file's column names follow your language, and this converter reads the English ones.

What to know about the Etsy file

  • The file has one price, one quantity and one SKU per listing, not per variation. Every variant gets the listing price, stock tracking is turned off so the variants can still be bought, and SKUs are left blank, with a note per listing.
  • Etsy does not export which variation combinations you switched off, so every combination is created. Delete the ones you do not sell after import.
  • Only active listings are in the file. Drafts, sold out and expired listings are not.
  • Materials have no column in Shopify or WooCommerce and are not carried over.
  • Descriptions are plain text; line breaks become paragraphs.

What the WooCommerce file gets

  • The column labels of WooCommerce's built-in importer (checked against WooCommerce 11.2.2), so columns map automatically.
  • Variable products with their variations, each variation linked to the parent by SKU. A parent SKU is made from the URL handle when the source has none.
  • Weights converted to your WooCommerce weight unit, with the matching column label such as Weight (kg).
  • Repeated SKUs left blank on the later rows, because WooCommerce rejects duplicate SKUs.
  • Products hidden from the online store written with catalog visibility hidden, and products that need no shipping written as virtual.
  • Attributes as product-level (not global) attributes.

2. Before and after

Before: the Etsy listings CSV (EtsyListingsDownload.csv)

TITLE,DESCRIPTION,PRICE,CURRENCY_CODE,QUANTITY,TAGS,MATERIALS,IMAGE1,IMAGE2,IMAGE3,IMAGE4,IMAGE5,IMAGE6,IMAGE7,IMAGE8,IMAGE9,IMAGE10,"VAR...
"Crème Brûlée Ceramic Mug, 12 oz","Hand-thrown stoneware mug.
Glazed in ""Sand"" & dishwasher safe, microwave safe.

Each mug is unique, so colour may vary.",24.00,USD,12,"ceramic mug,handmade,coffee cup","stoneware,glaze",https://i.etsystatic.com/000000...
Linen Tee,Relaxed fit linen tee.,38.50,USD,30,"linen,tee,summer",,https://i.etsystatic.com/00000000/r/il/abc123/2001/il_fullxfull.2001_te...

After: woocommerce-products.csv

After: first rows of woocommerce-products.csv
TypeSKUNamePublishedIs featured?Visibility in catalogDescriptionTax statusIn stock?StockBackorders allowed?Regular price
simpleMUG-001Crème Brûlée Ceramic Mug, 12 oz10visible<p>Hand-thrown stoneware mug.<br>Glazed in &quot;Sand&quo...taxable112024.00
variablelinen-teeLinen Tee10visible<p>Relaxed fit linen tee.</p>taxable
variationLinen Tee - S, Sand / Ivory1taxable1038.50
variationLinen Tee - S, Black1taxable1038.50
variationLinen Tee - M, Sand / Ivory1taxable1038.50
variationLinen Tee - M, Black1taxable1038.50

12 of 29 columns shown (empty columns hidden, 12 more with data).

What the converter reported for this sample

5 products read, 5 written.

  • Not carried over: "Crème Brûlée Ceramic Mug, 12 oz": materials (stoneware, glaze) have no column in the destination file and were not carried over.
  • Check this: "Linen Tee": It has 6 variants (Size x Color). Etsy's export has one price, one quantity and one SKU per listing, so every variant got the listing price (38.50), stock tracking was turned off for the variants so they can still be bought (the listing has 30 in total), and SKUs were left blank. Set stock per variant after import if you want it tracked. The listing SKU "TEE-BASE" was not copied to the variants, to avoid duplicate SKUs. Etsy does not export which combinations you turned off, so delete any that you do not sell.
  • Check this: "日本茶 Matcha Bowl": It has 2 variants (Color). Etsy's export has one price, one quantity and one SKU per listing, so every variant got the listing price (1250.00), stock tracking was turned off for the variants so they can still be bought (the listing has 3 in total), and SKUs were left blank. Set stock per variant after import if you want it tracked. Etsy does not export which combinations you turned off, so delete any that you do not sell.
  • Left out or rejected: "Broken Price Print": the price "N/A" could not be read as a price.
  • Check this: Two products would share the handle "creme-brulee-ceramic-mug-12-oz". The second one was given the handle "creme-brulee-ceramic-mug-12-oz-2".
  • Not carried over: "Linen Tee": the main product was given the SKU "linen-tee" so WooCommerce can link its options (variations) to it. Nothing to do.
  • Not carried over: "日本茶 Matcha Bowl": the main product was given the SKU "matcha-bowl" so WooCommerce can link its options (variations) to it. Nothing to do.
  • Check this: "Broken Price Print": at least one variant has no price. WooCommerce will import it without a price, and it cannot be bought until you set one.

Sample products made up for this page, laid out exactly like a real Etsy export. The "after" file and the notes were produced from it by the same converter this page runs.

3. Import into WooCommerce

  1. In WordPress, go to Products, then All Products, and click Import.
  2. Choose woocommerce-products.csv and click Continue.
  3. On the column mapping screen, check that each column is matched. If the weight column is not matched, pick Weight for it.
  4. Click Run the importer. WooCommerce shows a count of imported, skipped and failed products at the end.

Before you import everything

  • Vendor and barcodes are not written: core WooCommerce has no vendor column, and the barcode (GTIN) column does not map automatically in 11.2.
  • Weight column labels other than Weight (lbs) are taken from WooCommerce's source code rather than a sample file. If yours is not matched on the mapping screen, match it by hand.
  • Images are imported by WooCommerce downloading each link, so the links must be public.
  • Import a handful of products first, open them in your store and check variants, prices, stock and images. Then import the rest.

Already have a WooCommerce CSV that fails? Use the WooCommerce CSV checker.

Questions

Why is stock not tracked on my variations?
Etsy exports one quantity for the whole listing, not per variation, so there is no way to know how it splits. The converter turns stock tracking off for those variations, so they can be bought rather than showing as sold out, and tells you the listing total so you can set stock per variation in WooCommerce.
Is my file uploaded anywhere?
No. The page reads the file with your browser and converts it there. The only thing the site records is an anonymous count: which converter was used, a rough row count, and whether it worked. The privacy page lists every field.
Will the import definitely work?
Nobody can promise that from a file alone. The converter follows each importer's documented rules, leaves out products that would be rejected and tells you about them, and does not check the WooCommerce file before download, so run it through the WooCommerce CSV checker on this site. Import a few products first, look at them in your store, then import the rest.
Does it move customers, orders or reviews?
No. Only products move. Customers, orders, reviews, gift card balances, blog posts, pages and URL redirects are not in a product export, so CatalogHop does not convert them.
Is it free?
Yes. There is no account and no limit on how many files you convert.

Related converters