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
- Sign in to Etsy and open Shop Manager.
- Go to Settings, then Options, then the Download Data tab.
- Under "Currently for Sale Listings", click Download CSV. You get EtsyListingsDownload.csv.
- 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 Shopify file gets
- The 61 columns of Shopify's current product template, as UTF-8 with no byte order mark.
- One row per variant, with extra rows for additional images, and all rows of a product kept together.
- Weights in whole grams, with your display unit kept.
- Products with no options get the usual "Title" / "Default Title" option.
- Products Shopify would reject (more than 3 options, more than 2,048 variants, repeated option combinations, a blank or negative price, or anything else the Shopify checker on this site finds) are left out of the file and listed on screen so you can fix them in the source.
- Image paths that are not full web links are left out with a note, so the product itself still imports.
- Files over Shopify's 15 MB limit are also offered as smaller parts, each product kept whole.
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: shopify-products.csv
| Row | Title | URL handle | Description | Tags | Published on online store | Status | SKU | Option1 name | Option1 value | Option2 name | Option2 value |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product | Crème Brûlée Ceramic Mug, 12 oz | creme-brulee-ceramic-mug-12-oz | <p>Hand-thrown stoneware mug.<br>Glazed in "Sand&quo... | ceramic mug, handmade, coffee cup | TRUE | active | MUG-001 | Title | Default Title | ||
| Extra image | creme-brulee-ceramic-mug-12-oz | ||||||||||
| Extra image | creme-brulee-ceramic-mug-12-oz | ||||||||||
| Product | Linen Tee | linen-tee | <p>Relaxed fit linen tee.</p> | linen, tee, summer | TRUE | active | Size | S | Color | Sand / Ivory | |
| Variant | linen-tee | S | Black | ||||||||
| Variant | linen-tee | M | Sand / Ivory |
12 of 62 columns shown (empty columns hidden, 10 more with data).
What the converter reported for this sample
5 products read, 4 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".
- Left out or rejected: "Broken Price Print" was left out of the Shopify file: it has no price, and Shopify rejects a blank price. Add a price in the source file and convert again.
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 Shopify
- In Shopify admin, go to Products and click Import.
- Click Add file and choose shopify-products.csv.
- Leave "Publish new products to all sales channels" and the overwrite option as you need them. Overwrite replaces products that have the same URL handle.
- Click Upload and preview, look over the first product, then Import products. Shopify emails you when it finishes, including any rows it skipped.
Before you import everything
- A few of Shopify's rules are our best reading rather than something Shopify states outright: that the 2,048 variant limit also applies to CSV imports, that decimal gram weights should be rounded, and that "Title" is the option name for products without options. Try a small file first.
- Images are imported by Shopify downloading each link. Links that are private, slow or removed fail on Shopify's side, which no file check can see.
- Inventory quantity in the file only applies to stores with a single location. With more than one location, set stock after import (or with Shopify's inventory CSV).
- Import the file as it is. Opening it in Excel or Google Sheets and saving again can change prices, SKUs and accents.
- 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 Shopify CSV that fails? Use the Shopify CSV checker.
Questions
- Why are all my variant prices the same after converting from Etsy?
- Etsy's listings download has one price per listing, even when your variations have different prices on Etsy. Every variant gets the listing price; change the ones that differ in Shopify after import, or in the converted file before you upload it.
- Does Shopify's own Store Importer do this?
- Shopify has a free Store Importer app that can bring in products from some platforms. CatalogHop is an alternative when you want to see and check the file before anything reaches your store, or when you are moving away from Shopify.
- 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 checks the Shopify file against Shopify's documented import rules before download. 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.