Etsy to Shopify CSV Converter
Convert Etsy's listings download into a Shopify product CSV, with variations as options, tags and every listing photo.
Etsy's file has no vendor column.
Used for every listing.
MUG becomes MUG-OAT-10OZ, MUG-OAT-14OZ and so on.
The full Etsy title becomes the SEO title, cut to 70 characters.
Download your listings from Etsy
- 01
Open your shop settings
On Etsy, go to Shop Manager → Settings → Options.
- 02
Download the file
Open the Download Data tab and click Download CSV under Currently for Sale Listings. You'll get
EtsyListingsDownload.csv. - 03
Convert it here
Drop the file above, set your vendor name and options, then download the Shopify CSV.
- 04
Import into Shopify
In Shopify, go to Products → Import, add the file, click Upload and continue, then Import products.
The file only includes listings that are currently for sale, so renew any expired or sold-out listings you want to move before you download it.
How the columns map
| Etsy | Shopify |
|---|---|
| TITLE | Title and URL handle |
| DESCRIPTION | Description, with line breaks turned into paragraphs |
| PRICE | Price, on every variant |
| QUANTITY | Inventory quantity (tracked by Shopify) |
| TAGS | Tags |
| MATERIALS | Tags, if you turn that option on |
| IMAGE1 to IMAGE10 | Product image URL, one row per photo, in the same order |
| VARIATION 1 and 2 NAME and VALUES | Option1 and Option2 name and values, one row per combination |
| SKU | SKU (see below) |
Etsy puts all of a listing's variation SKUs in one cell, separated by commas. Shopify's own Etsy guide shows them as TS123-S,TS123-M,TS123-L. When the count matches the variants, or the values of one variation, the SKUs are assigned in that order. A single SKU becomes a prefix for each variant.
Hand Thrown Ceramic Mug from the sample
- Glaze
- Oat, Sea Glass
- Size
- 10 oz, 14 oz
- PRICE / QUANTITY
- 34.00 / 12
- SKU
- MUG
4 Shopify variants: MUG-OAT-10OZ, MUG-OAT-14OZ, MUG-SEAGLASS-10OZ and MUG-SEAGLASS-14OZ, each at $34.00 with a stock of 12. The whole sample becomes 6 products, 18 variants and 20 rows.
Etsy doesn't publish a column list for this file. The tool reads the names used in current downloads (TITLE, PRICE, IMAGE1, VARIATION 1 NAME and so on) and ignores capitals and spacing, so small differences don't matter.
What to fix after import
- Variant prices. Etsy's file has one price per listing, so a large mug and a small one start at the same price.
- Stock per variant. Every variant gets the listing's full quantity, or 0 if you pick that option. Count it properly before you go live.
- Shipping. The file has no weights or shipping profiles. Add weights and set up shipping rates in Shopify.
- Personalization and reviews. Neither is in the file. Use a product options app for personalization, and move reviews with a reviews app.
- Titles. Etsy titles are often long lists of keywords. The shorten option keeps the part before the first comma or | as the title.
- Status. Products come in as drafts by default, so nothing goes live until you've checked it.
Questions people ask
Does Etsy's CSV include variation prices?
No. It has one price and one quantity per listing, so each variant gets the listing price. Update prices in Shopify for any variants that cost more.
Why are some of my listings missing?
Etsy's download only includes listings that are currently for sale. Expired, sold-out, inactive and draft listings aren't in the file.
Will my Etsy reviews come across?
No. Reviews aren't in the listings file. Export them separately and import them with a Shopify reviews app.
Can I import straight away as active products?
Yes, switch Import as to Active. Drafts are the default so you can check prices, stock and photos before anything goes live.
Is my shop data uploaded?
No. The conversion runs in your browser, and the file never leaves your computer.
Related tools
Last reviewed 30 September 2026.
Sources: Etsy Help: How to download your listing information · Shopify Help: Migrating from Etsy · Shopify Help: Using CSV files to import and export products · Shopify Help: Importing products with a CSV file
