Moving your Etsy listings to Shopify with a CSV file
2026-10-31 · Frontubo
You do not have to close your Etsy shop to open a Shopify store. Etsy keeps sending you buyers; the store is where repeat customers can come back to. This guide covers the one slow job in between: getting your listings across without typing them in again.
Before you start
- You need a Shopify store to import into. A free Basic design works, and so does any other store. If you are on Shopify’s free trial, Shopify advises choosing a free theme so you are not charged for one by accident.
- A spreadsheet program. Shopify recommends Google Sheets for editing the file.
- A desktop or laptop. Shopify’s migration app asks for the upload from a computer.
1. Renew what has sold out
Etsy’s export covers only the listings that are currently for sale. Sold-out or expired listings are not in the file. To move one, renew it on Etsy first, which costs a listing fee each time, and note that renewing sets the quantity of every variation option to 1. Decide which of those are worth moving before you pay for the renewals.
2. Export your listings from Etsy
- In Shop Manager, open Settings, then Options, then the Download Data tab.
- Under Currently for Sale Listings, choose Download CSV.
The file has one row per listing. The columns you will meet are TITLE, DESCRIPTION, PRICE, CURRENCY_CODE, QUANTITY, TAGS, MATERIALS, IMAGE1 and onwards, SKU, and the variation columns VARIATION 1 NAME and VARIATION 1 VALUES (and the same for further variations). In SKU, the SKUs of all of a listing’s variants are listed in one cell, separated by commas.
3. Try Shopify’s Store Migration app first
For most shops this is all you need. Shopify’s own Store Migration app takes the Etsy file as it came out of Etsy and maps the fields to Shopify products for you. Upload it from a computer, then read the import report. What to expect, from Shopify’s page:
- The products arrive as drafts, so nothing goes live by mistake.
- Inventory goes to your default location.
- A listing with 101 or more variant combinations is imported without its variants.
- Products with missing variant options may fail to import. The report says which.
Check a handful of products before you do anything else. If they look right, you are done with this step.
4. If you want control of variants, edit the file yourself
Do this when the app’s result is not good enough, for example because your variants matter. Shopify’s steps, in order:
- Open the Etsy file in your spreadsheet.
- Add the columns URL handle, Option1 name and Option1 value. For a second and third option add Option2 and Option3. A product can have up to three options.
- For each extra variant of a product, add a row with the same URL handle. Leave
TITLE,DESCRIPTIONandTAGSempty in those rows, and keep only that variant’s own SKU. - Delete the
VARIATIONcolumns once you have used them. - Optionally add Variant image URL so each variant shows its own picture.
- Rename the columns to the ones Shopify expects, then import from Products → Import.
| Etsy column | Shopify column | Notes |
|---|---|---|
TITLE |
Title | The only column a new product must have. |
DESCRIPTION |
Description | Etsy’s text is plain text. Shopify reads HTML, so line breaks can collapse. Check a few. |
TAGS |
Tags | Comma separated on both sides. |
PRICE |
Price | Same currency as your store. |
QUANTITY |
Inventory quantity | Applies only to stores with one location. |
SKU |
SKU | One SKU per row. |
IMAGE1 |
Product image URL | Each extra picture goes on its own row with an Image position. |
| (new) | Published on online store | true or false. |
| (new) | Status | active, draft or archived. draft is a safe first choice. |
Shopify says its older column names (for example Handle, Body (HTML), Variant Price, Image Src) still work, but the current template uses the names above. Start from the product template Shopify gives you and copy your data into it.
Rules the file must follow:
- Save it as UTF-8 with LF line endings, comma separated, with the column names on the first line.
- Image addresses must be public
https://links with no password. Shopify downloads each picture when it imports, so the Etsy addresses in your file need to be reachable. - Columns depend on each other. If you include variant columns such as SKU, you must also include Option1 name and Option1 value, otherwise the import can replace your variants with a default one.
5. Check before you publish
Import three products first, including one with variations and several pictures. Then open each one and look for:
- missing or broken pictures (the import report lists the addresses that failed; add those by hand),
- descriptions running together,
- wrong prices on variations. We could not confirm that Etsy’s export carries a separate price for each variation, so assume it does not and check every one by hand,
- tags that came across as one long tag.
Fix, delete the test products and import again until they look right, then import the rest.
6. What does not move
- Etsy reviews. Shopify’s page offers no built-in transfer. Third-party apps exist, and you can download your own copy from Etsy. Do not paste reviews into your store as if they were written there: they belong to your buyers’ Etsy accounts. Ask repeat buyers for a review on your store instead.
- Orders and customers need a third-party app.
- Collections and shipping. Group your products into collections by hand and set your shipping rates in Shopify (Settings → Shipping and delivery).
- Your Etsy shop itself. Nothing here changes it. It keeps running.
7. A sensible order from here
- Publish a few products to yourself first and place a small real order.
- Read what to set up first in a new Shopify store.
- Put your store’s address in your Etsy shop announcement and your parcel inserts, so repeat buyers find it.
- Check your fees again with the calculator once a few months of store sales are in.