Shopify Products Export and Import Excel Sheet

Excel Sheet Name


Columns Available For Export And Import

Base Columns

Column Allowed Values Description / Example Value
ID Number ID is automatically generated number by Shopify to identify the item.
It is filled in by an Export.
When creating new Products, leave this value empty.

Handle Any characters allowed in a URL This is what your store visitors will see in the Products URL address like this:

URL address has a great impact on SEO, so be sure to give it a meaningful name.
Regardless, what you write here, app will convert it to lowercase, and remove all non-URL friendly symbols.
You can leave it empty when creating new Products – in that case we will generate it for you from Title.

Title Text Title of the Product

Mom Strength Red T-shirt Slim Fit
Body HTML Text, HTML

This is a long description of the Product.

You can write here just a plain text, or format that text using HTML code.

You can put here additional images, videos, links to other Products or sites, tables, and so on.

You can learn about HTML capabilities online, for example or use some online video courses, like from or

The best way to create HTML for Product, is to write a Description in the Shopify Admin for one Product, format it as you like, and then do the export. Then you will see, how that translates to HTML, and will be able to apply the same to other Products.

   <li>Looks nice</li>
   <li>Feels good</li> 
Vendor Text Basically the Brand name.

Be sure to keep all the same Brand names written the same. For example, “H&M” and “H & M” (with spaces) will be appearing as two different brands.

Type Text Product Type – allows you to define certain kind for each Product. Those can be, for example: T-shirt, Shoe, Hat, and so on.

Tags Comma Separated List Tags allow you to add additional elements or “properties” to your product, which you can use for filtering, for showing some additional information about the Product in the store.

Tags also are great, when Type column is not enough, and you need to create a hierarchy of some sort. For example, you might want to tell that this Product is a Shirt and a Skirt. In this case, you could add tags: Type: Shirt, Type: Skirt.

Then you can create Smart Collections “Shirts”, where you include all Products which have Tag “Type: Shirt”, and another Smart Collection, where you include Products which haveTag “Type: Skirt”. That way this Product will be included in both Smart Collections.

Color: Red, Eatable, Featured, Type: Skirt
Updated At Time This column will only be exported.

It will be automatically updated, whenever you change the Product data.

2017-10-06 23:03:00 UTC
  • TRUE
Tells, whether this Product should be Published on your “Online Store” Sales Channel. If you will set it to FALSE, it will be hidden from Online Store, and clients will not be able to find it.

If you will leave this cell empty, then it will hide that Product form Online Store.

If Product is not Published, you can publish it from Shopify Admin by finding this Product, or importing the update of this column, marking Published to TRUE.

If you will write anything else in this column, the Product will not get imported, and you will get an error “Bad Request” in Import Results row for this Product, just to be safe it was intentional.

Published At Time This column will only be exported.

It will be automatically updated, whenever you publish the Product to Online Store channel.

2017-10-06 23:03:00 UTC
Published Scope
  • global
  • web
Tells Shopify, where to publish this Product.

  • global: will be published in Point of Sale
  • web: will be published only in Web channel
Template Suffix Text Template Suffix allows you to specify another Template from your Theme for this specific Product. For example, you might want to specify different template for a Featured product, which has different page layout.

Work with your developer to create new Template or read Shopify documentation about adding additional Product templates. Once new Template is created, you can set in this column to activate it for needed Products.

That different template will show as dropdown for Products in Shopify Admin, when new Product Template will be created in your Theme. For example, if the new Template file name is “product.featured.liquid”, then – to activate this Template for this Product, write “featured” as the Template Suffix.

Primary Row TRUE / FALSE Since all the base rows values are repeated for all item rows, in the export the primary row is set to TRUE, so that it can be used in sorting, to have that primary row on top.


Image Columns

Each Product can have several images.

Each variant can be linked to one of those images.

Column Allowed Values Description / Example Value
Image Src URL Link to the image. This link must be publicly available.

Once images are imported, those don’t need to be hosted anymore with this link, because Shopify will download this image and store on their own servers.

To import several images for the same Product, you have two options:

  1. repeat the new row with the same ID or Handle, or Title values
  2. have several image links in the same Image Src cell, separated by ; (semicolon)
  3. any combination of the both above options.

If you import this column for existing Product as an update, be sure to mention all images, which need to be present for this Product, because it will replace the list of Product images with this new list of images, and will remove those images, which are not mentioned in this import list. It’s to allow you to delete images too, by basically replacing them.

If you need to add additional image, first do the export, then add that image row, and import as an update of this one column.

If you don’t need to update images for product, just remove Image Src column from Import file, and it will leave images unchanged when you do your import.

Warning: Always before importing images, do the fresh Export. Never import the same image links two times, because after first import the image links change in Shopify CDN.

If Shopify will not be able to download all images, the warning about that will be put to Import Results file “Import Comment” column.;
Image Position Number The position of the particular image.

You can reorder images inside one product by doing Export, changing those Position values, and importing back as an image column update.

To change positions of images, you also need to have the “Image Src” column in the same import, so that it knows, which image you are talking about.

Image Alt Text Text By SEO best practices, it is strongly suggested that images have “alt text” specified, because this is how search engines know, what’s inside that image.

T-shirt small size


Variant Columns

Each Product can have several variants, that is a different version of a product, for example, size or color.

All those variants can be imported, as well as exported.

Products with several Variants are organized as follows: you need to copy cells from base Columns to a new row for each additional Variant. To identify that Variant belongs to the same Product, you must have ID column or Handle column. At the same time, you can duplicate also all other columns, if that’s more convenient.

Those all are columns, which are accessible in Shopify Admin, when adding new product Variant.

Shopify allows maximum of 100 Variants per Product.

Column Allowed Values Description / Example Value
Variant ID Number Products have Variants – which are essentially combination of unique Option Values.

Each Variant, after imported, gets its own Variant ID, assigned by Shopify.

When you import new Variants or replace all existing Variants for Product, you need to leave Variant ID column empty, or remove that column from Excel file.

When you will Export Products, then Variant ID will serve as a reference to whichever Variant you want to update. You can update one or many columns for Variant by keeping the Variant ID in the import file. That way the import will know, which Variant you need to update.

To update some Variant columns, you need to have at least “ID” and “Variant ID” columns in the import file. ID will tell which Product you want to update, and Variant ID will tell, which Variant of this Product that is.

To add several Variants to a Product, you need to add additional row. Import will know that the Variant belongs to the same Product, if that added Excel row will have the same ID, Handle or Title (whichever comes first). All the other Product base columns (which are not variants) are ignored for Variant rows. That means that you can either leave them empty, or just copy the same previous line – which in some cases can be much more convenient. Basically, when you are copying rows, you don’t need to empty the cells of copied product information.

Your Product can have no Variants, in this case it will have one Variant, which will hold information like inventory quantity and price for this Product.

Option1 Name Text Each product can have 3 Options, with many values per option.

This Option1 Name column is the name of 1st Option. The value of this 1st option is to be written in “Option1 Value” column, which becomes so called Variant of the product.

You can have those options empty, if you don’t have any options to choose from. Then you need to keep Option Values empty as well.

Option1 Value Text The Value of Option1 Name.

For example, if we considered the Option1 Name to be a “Color”, then Option1 Value need to contain colors, like, Red, Blue, Green, and so on.

You can have as many Option Values as you like. The Shopify global limitation here is that you can have up to 100 Variants per Product.

All option value combinations must be unique, meaning that there is not allowed to be two variants with the same Option Values. For example, you can’t have two Variants with the same Color, Size and Fabric. At least one of those must be different.

Option2 Name Text The name of the 2nd Option.

Option2 Value Text The Value of the 2nd Option.

Option3 Name Text The name of the 3nd Option.

Option3 Value Text The Value of the 3rd Option.

Variant Position Number Variants can be sorted in specific order. This Variant Position tells that order.

You can update order of existing Variants by changing those numbers and importing them back as an update.

And off course, you can import just this column – just you must have ID and Variant ID columns in your import file, remember – so that app knows, which Product and which Variant you need to update.

Variant SKU Text SKU number is a “Stock Keeping Unit” reference number, usually used in wholesale to uniquely identify and reference the Product Variant. Some companies organize all their inventory by SKU numbers, which allows them to track items with precision.

When you import data from any DropShipping company, they will almost always have SKU number to identify their Product variants. It’s good practice to keep those SKU numbers from wholesale company or DropShipper in this column. It will be useful when your customer will place an order through your store, you will be able to tell the DropShipper this SKU number, and they will instantly know, which Product Variant is being ordered.

If you have your own inventory, you can create your own SKU numbers, as simple as 1, 2, 3, or something more complex, which encodes your product category, or some other important information, like: TS000001RXSC.

Variant Grams Number Regardless of the weight that you will show on your Store, you need to specify weight in grams.

When showing Product information, Shopify will convert those grams to whatever Weight Unit you will need to use.

Variant Weight Unit
  • g
  • kg
  • oz
  • lb
The weight unit to show Clients. Shopify will automatically convert grams to this weight unit.

Allowed values: g, kg, oz, lb.

Variant Inventory Tracker
  • shopify
  • <empty>
Inventory of the Variant can be tracked by Shopify, or not.

To have Inventory Tracking means that somebody will look after the available quantities in your inventory stock. Whenever item will be purchased, the quantity of this Variant will be decreased.

Allowed values in this column: shopify, <empty>.

If you will set the value to “shopify”, then Shopify will track and update your inventory quantities for each Variant.

Some DropShippers provide the inventory tracking service and automatic updating of available quantity. In that case you need to keep this value empty, so that Shopify won’t track it.

Some variants can have Shopify to track inventory, and some can be empty, meaning, that inventory here will not be tracked by Shopify.

Variant Inventory Qty Number Quantity of available Product Variants in your stock.

Will be automatically updated, when items are sold, if Variant Inventory Tracker is set to “shopify”.

Variant Inventory Policy
  • deny
  • continue
When Shopify is tracking your inventory, it needs to know, what to do, when Variant quantity reaches 0, which means, you are out of stock.

Allowed values are:

  • deny: Shopify will not allow to purchase this item on your Store. It will tell your Customers that item is out of stock.
  • continue: Shopify will still allow Customers to purchase orders from your Store, even when you are out of stock.

If you will leave this value empty, and Shopify will be set to track your inventory, then Shopify will consider this to be “deny” policy by default.

Variant Fulfillment Service Text There are warehouses or DropShippers who can package and ship the item to your Customer, when she places an order. That is called a Fulfillment Service. You can connect this, so that whenever item is ordered from your Store, the Fulfillment Service provider instantly ships that order to your Customer – automatically.

You can have several Fulfillment Services connected to your store, and each Variant can be linked with one of them.

If you want to fulfill orders manually, you can enter the value “manual“.

If you want a Fulfillment Service to ship your orders, then you should enter here the Handle of the Fulfillment Service. You can find this Handle by setting a chosen fulfillment service for one of your Variants in your store, and then doing the Export. In the Export file you will see the Handle of this Fulfillment Service.

Variant Price Decimal Number The price of the Variant item in the currency, which you have set for your Store.

Variant Compare At Price Decimal Number The original price, if your Variant Price is a discounted price.

Which means – if you want to show that a Variant is being sold at a discount, then you set your Variant Price to a new, discounted price, and set this “Variant Compare At Price” to the old, original price.

Neat Trick

If you want to create a Smart Collection, which shows all Discounted Products, you can create a Smart Collection with a Rule, which says: include all Products with Variant Compare At Price is greater than 0.

Even Neater Trick

If you want to create a Discount Code and allow to use it only for Products which are not sold already at a discount – you can create a Smart Collection, which includes only Products, where Variant Compare At Price equals 0. And then attach that Collection to your Discount Code.

But here is the problem – if your Variant Compare At Price will be empty, those Products will not be included in this list, and basically Customer will not be able to use their Discount code for them. To make those Products appear in that “Undiscounted Products” Collection, you need to set all non-discounted product variants Variant Compare At Price to be exactly 0. Voalá!

Variant Requires Shipping
  • TRUE
Variants can be shippable or not. Non-shippable Variant would be a digital good, which you sell.

If you set it to TRUE, then Shopify will ask Customer for Shipping address.

If this is FALSE, then Shopify will not ask for Shipping address.

If you leave this empty, then it will be assumed as FALSE – that it doesn’t require shipping.

Variant Taxable
  • TRUE
If you set it to TRUE, then Shopify will charge additional Tax on the item price, taking in account your store Tax settings.

If you set it to FALSE, then Tax will not be added to the Price.

If you leave it empty, then it will be assumed as FALSE – that it’s not taxable.

Variant Barcode Text Shopify officially supports UPC or ISBN barcode types, but you can put here any other barcode format.

Variant Image URL Link to your Variant image.

It can be the same link, as you use in your Image Src for product image, or it can be different link, which is specific to this Variant.

If this link will be one of those, which you also have for Image Src column, then it will recognize it and use the same Product image for Variant.

If that will be a link, which is not listed in Image Src column, then it will add this image to Product images too.

Each Variant can have only one image.

If app will not be sure that the correct image is mapped to variant image, due to missing images, then warning about that will be written in Import Results file “Import Comment” column.

To specify the “alt text” for this image, do that for this image link in the “Image Alt Text” column.
Variants Add
  • TRUE
If you want to add variants to existing variants, set the value to TRUE for that Product.

If you want Variants to be replaced with listed rows of Variants, set the value to FALSE, or leave it empty, or remove this column from Import file.

See this Tutorial for more details about adding variants: How Add Variants To Existing Product.



Read the description on Metafields page.

SEO Fields

SEO fields are actually Metafields with the following names:

  • SEO Title Metafield name is “Metafield: title_tag”
  • SEO Description Metafield name is “Metafield: description_tag”


Good To Know

  • To import several images and variants to Product, just repeat the row with the same ID, Handle or Title (whichever comes first).
  • To repeat rows, you can just copy whole row as it is, and you don’t have to delete contents of Product base rows – that makes copying easier.
  • Shopify exported CSV file, pasted to Excel [Products] Sheet, can be imported with the same columns. You just need to change SEO Description and SEO Title columns to Metafield columns, as shown in the table above.
  • To not update some columns, remove those columns from Excel file. Then the Import will not touch them.
  • If you will have the Column with empty value, then this field will be changed to empty.
  • To update existing Variant columns, remember to keep the “Variant ID” column.
  • You can have unlimited count of Metafields.