Using CSV files

You use a CSV (comma-separated values) file to import products into your store, and to export products from your store. By using a CSV file, you can import or export large numbers of products and their details at a time. This can be helpful if you want to exchange bulk product information between Shopify and another system.

CSV files

CSV stands for comma-separated values, a file format (.csv) for spreadsheets. You can use CSV files to import and export products, customers, orders (export only), and discounts (export only).

They can be useful in many situations, such as when you are switching to Shopify from another ecommerce platform, need to import a list of customer accounts, or want to upload products by using a spreadsheet.

CSV files might seem intimidating at first, but after you understand their format and how they work, you might decide to use them for a variety of tasks.

Your CSV files must use UTF-8 encoding.

In a CSV file, each entry represents a cell in a spreadsheet, each line represents a new row, and each comma indicates where one entry ends and another one begins.

For example, the entries in this customer CSV file:

look like this in a spreadsheet program:

Import CSV files into Google Sheets

When you export a CSV file from your Shopify admin, it opens as a .csv file in your computer's native text editor. You can also use an alternative text editor, but it's recommended that you use a spreadsheet program to view and edit your CSV files instead.

To import a CSV in to Google Sheets:

  1. Log in to your Google account.

  2. On the Google Sheets page, click Blank in the Start a new spreadsheet section:

  3. From the Untitled Spreadsheet page, go to File > Import...:

  4. Locate and select the CSV file that you want to edit.

  5. In the Import file dialog, select your preferred options under the Import action, Separator character, and Convert text to numbers and dates sections.

  6. Click Import:

Your CSV will look something like this after you've uploaded it:

From here you can edit your CSV. When you are done, you can export it from Google Sheets as a .csv file.

Export CSV files using Google Sheets

When you are done viewing or editing your CSV file in Google Sheets, you can export it as a .csv file to your computer.

To export your CSV file:

  • From your CSV spreadsheet page, go to File > Download as > Comma-separated values (.csv, current sheet):

    Your CSV file will appear in your downloads folder.

Get a sample CSV file

You can download and view a sample product CSV file to use as a template for creating your own CSV files.

The sample contains an example product and a couple of variants. Your import file will likely contain many more products and variants. If you use the sample file to create your own import file, then make sure that you remove all the example products.

Product CSV file format

The first line of your product CSV needs to include the field headers described in the table, in the same order, each separated by a comma. Subsequent lines in the file should contain data for your product using the same fields in that exact same order.

Handle Handles are unique names for each product. They can contain letters, dashes, and numbers, but no spaces. A handle is used in the URL for each product. For example, the handle for a "Women's Snowboard" should be womens-snowboard, and the product's URL would be

Every line in the CSV that starts with a different handle is treated as a new product. To add multiple images to a product, you should add multiple lines with the same handle.

Title The title of your product. Example:Women's Snowboard
Body (HTML) The description of the product in HTML format. This can also be plain text without any formatting.
Vendor (min. 2 characters) The name of the vendor for your product. For example, John's Apparel.
Type The product type. For example, Snowboard.
Tags (can be left blank) A comma-separated list of tags used to tag the product. Most spreadsheet applications automatically add quotes around the tags for you. If you are using a plain text editor, then you need to manually add the quotes. For example, "tag1, tag2, tag3".
Published States whether a product is published on your online store. Valid values are TRUE if the product is published on your online store, or FALSE if the product is hidden from your online store. Leaving the field blank will publish the product.
Option1 Name If a product has an option, then enter its name. For example, Color.

For products with only a single option, this should be set to Title.

Option1 Value If a product has an option, then enter its value. For example, Black.

For products with only a single option, this should be set to Default Title.

Option2 Name (can be left blank) If a product has a second option, then enter its name. For example, Size.
Option2 Value (can be left blank) If a product has a second option, then enter its value. For example, Large.
Option3 Name (can be left blank) If a product has a third option, then enter its name.
Option3 Value (can be left blank) If a product has a third option, then enter its value.
Variant SKU (can be left blank)

The SKU of the product or variant. This is used to track inventory with inventory tracking services.

This field can't be left blank if you're using a custom fulfillment service.

Variant Grams

The weight of the product or variant in grams. Do not specify a unit of measurement or use decimals. For example, for a weight of 5.125 kg, enter 5125.

Shopify always imports and exports the weight in grams, even if you specify a different unit. You must use accurate weights if you intend to offer carrier-calculated shipping or use a third-party fulfillment service.

Variant Inventory Tracker (can be left blank) Include your inventory tracking for this variant or product. Valid values include shopify, shipwire, amazon_marketplace_web, or blank if inventory is not tracked.
Variant Inventory Quantity The number of items you have in stock of this product or variant.
Variant Inventory Policy How to handle orders when inventory level for this product or variant has reached zero. Valid values are deny, or continue. deny will stop selling when inventory reaches 0, and continue will allow sales to continue into negative inventory levels.
Variant Fulfillment Service

The product or variant fulfillment service used. Valid values are: manual, shipwire, webgistix, amazon_marketplace_web. If you use a custom fulfillment service, you can add the name of the service in this column. For the custom name, use only lowercase letters. Spaces aren't allowed—replace them with a dash (-). Periods and other special characters are removed. For example, if "Mr. Fulfiller" is your fulfillment service's name, enter mr-fulfiller in the CSV file.

You must have a custom fulfillment service set up in your Shopify admin before you can add the name of the service in this column.

Variant Price The price of the product or variant. Don't place any currency symbol there. For example, 9.99.
Variant Compare at Price The "Compare at Price" of the product or variant. Don't place any currency symbol there. For example, 9.99.
Variant Requires Shipping (blank = FALSE) The option to require shipping. Valid values are TRUE, FALSE, or blank.
Variant Taxable (blank = FALSE) Apply taxes to this variant. Valid values are TRUE, FALSE, or blank.
Variant Barcode (can be left blank) The barcode, ISBN, or UPC of the product.
Image Src

Enter the URL for the product image. Shopify downloads the images during the import and re-uploads them into your store. These images are not variant-specific. The variant image column is where you specify variant images.

You can't change the image filename after that image has been uploaded to your store. Don't upload images that have _thumb, _small, or _medium suffixes in their names.

Image Position Enter the number that represents the order in which you want the image to appear on the product's page. The images will appear in order from smallest to largest starting from an image position value of 1. For example, enter 1 if you want the image to appear first for that product.
Image Alt Text (can be left blank) Alt (alternate) text describes an image and is an important part of a product description. If an image can't load for any reason, then alt text is shown instead. It's also used by assistive technology to describe an image to a customer who's visually impaired. Including alt text will boost your website's SEO. Keep your alt text brief and descriptive. The maximum length is 512 characters, but 125 or less is recommended.
Gift Card States whether the product is a gift card or not. Valid values are TRUE, or FALSE. The addition of this column also allows you to edit other gift card details, such as the Body or Tags columns, and import these changes. A gift card can be created and activated only in the Shopify admin. You can't initially create a gift card through a product CSV import.
Variant Image The URL for images of variants.
Variant Weight Unit Valid values are `lb`, `kg`, and `oz`.
Variant Tax Code SHOPIFY PLUS

The Avalara code to apply taxes to this product. This field applies only when you are importing to or exporting from a store that uses Shopify Plus's integration with Avalara AvaTax.

When you create a CSV file by exporting products from a store that uses Avalara, the Variant Tax Code field is populated. If you import this CSV file into a store that doesn't have Avalara set up, then your import will fail.


Ten metafield columns appear in every product CSV file. Only two of them apply to all stores. The other eight apply only if you previously installed the Google Shopping app to submit your products to Google's Merchant Center. When exporting or importing, these ten columns can be placed in any order.

SEO Title (does not require the Google Shopping App) The SEO Title is found on a product's details page under the Search engine listing preview header in the Page title field. The SEO Title has a character (letters and numbers) limit of 70. If you leave this field blank when importing a product, the field is automatically populated with the product title.
SEO Description (does not require the Google Shopping App) The SEO Description is also found on a product's details page under the Search engine listing preview header in the Meta description field. The SEO Description has a character (letters and numbers) limit of 320. If you leave this field blank when importing a product, the field is automatically populated with the product description.
Google Shopping / Google Product Category Google has a proprietary set of product categories. The full list is quite large to allow merchants to be specific towards their target audience. You can upload any value you want using the CSV file, however if your language format does not match Google's full product taxonomy, you might not be able to publish the products to Google.
Google Shopping / Gender What gender does this product target? Valid values are Female, Male, or Unisex
Google Shopping / Age Group What age group does this product target? Valid values are Adult or Kids only.
Google Shopping / MPN The MPN, or Manufacturer Part Number, is a string of alphanumeric digits of various lengths (0-9, A-Z).
Google Shopping / Ads Grouping This is used to group products in an arbitrary way. It can be used for Product Filters to limit a campaign to a group of products, or Product Targets to bid differently for a group of products. You can enter any "string" data (letters and numbers).

Collection column exception

To organize your products into collections during the CSV upload, you can add a new column anywhere in your CSV file with the header name Collection. This is the only column you can add to the CSV that will not break the format:

Collection (must create a new column, can be left blank) Enter the name of the collection you want to add this product to. If it is an existing automatic collection, then the product needs to meet the conditions for the collection. If the collection does not already exist, then one will be created for you. You can add a product to only one collection using this method.

Create your product CSV file

For each product, you need to decide if it is a simple product or one with variants:

  • Simple product (does not have variants)

    If you are uploading a product that does not have variants, then enter all the fields (as described above) for the product on the first line along with the URL for the first image. On the following lines, enter just the handle and the URL for each additional image.

  • Product with variants

    If you are uploading a product that has variants, then enter all the fields (as described above) for the product on the first line along with the URL for the first image. On the following lines, enter the handle. Then, skip the Title, Body (HTML), Vendor, and Tags columns. Fill out the rest of the variants' details and each image URL.

After you've added all your products and images, save your CSV file in UTF-8 format using LF-style linefeeds. If you are not familiar with encodings, then see your spreadsheet or text editor program's documentation.

To view an example CSV file, click Import on the Products page and click the sample CSV template link:

Prepare your images

A CSV file can only contain text. So you'll need to make sure all product images are on an existing website. Those image URLs will only be used during the CSV importing process (in other words, you can delete them when your import is done).

  • If the files are on your computer only, you must upload them to your Shopify store or another image hosting service to link to their URL.

  • If you are switching to Shopify from another platform, you can copy the current image URLs and use them in the CSV file.

  • If the product CSV file was produced by exporting your products from Shopify, then you don't need to do anything since your images are already on your website.

When you have URLs for each product image, you can start building your CSV file.

Add multiple product images in a CSV file

You can add more product images to your CSV by uploading more images to your Shopify admin. If you're building your store with a CSV file, then the process is a little different. Here's what you need to know:

  • You'll need to be able to edit a CSV file. Shopify recommends using Google Sheets to view a formatted version of your CSV files.

  • Your product images must be uploaded to a publicly accessible URL. That is, they should be behind an https:// protocol with no password protection. The best way to do this is to upload images to the Files page of the Shopify admin. We'll generate the URLs for you automatically:

After clicking Upload files you can select up to a couple hundred images to upload in bulk. Selecting too many files (usually over ~ 300) can cause the upload to fail.

To add multiple images you need to:

  1. Insert new rows (one per picture).
  2. Copy + paste the "handle".
  3. Copy + paste the image URLs.

Insert new rows (one per picture)

  1. Open your CSV file in your spreadsheet software of choice. Shopify recommends using Google Sheets:

  2. Locate the product(s) you want to add images to. In this example that will be the "Black and White Bracelet Pack"

  3. On the next row click and drag on the row numbers to select multiple rows. Select the same number of rows as the number of additional images you will add.

  4. While those rows are highlighted, right click anywhere in the highlighted area, and choose Insert X rows above

    This will create three empty rows below the product you want to add additional images to.

Copy + Paste the "Handle"

Copy and paste the "Handle" of the desired product into column A for your new rows.

Copy + Paste the Image URLs

  1. Upload your images to Shopify on the Files Page

  2. Then highlight + copy one image URL at a time.

  3. Return to your spreadsheet software and scroll sideways to the final columns of the CSV file.

  4. In the column "Image Src" (short for "Image Source") paste one image URL into each line.

  5. Repeat steps 2 - 4 for all images of this product

  6. (Optional): Fill out the fields under the next column "Image Alt Text" to boost your SEO. Click here to learn more about Image alt text.

You can then save the file and import it to Shopify.

Ready to start selling with Shopify?

Try it free