Excel Sheet Name
Columns Available For Export And Import
|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: https://etaystore.com/products/mom-strength-red-t-shirt-slim-fit
URL address has a great impact on SEO, so be sure to give it a meaningful name.
Even if the handle will be in the non-English language, it will transliterate it to English, so that it is valid for URL. For example “рубашка” will be converted to “rubaska”.
Each product Handle must be unique across your Shopify store, so when creating new products from external data source, even better approach would be to create Handle from Title and original product ID using Excel formula like this: =C2 & ” ” & B2 (assuming that you put some original product ID in the B column).
Whatever you will put in the Handle column, the app will convert it to required Handle format, which is acceptable by Shopify.
||When importing Product row – tell the app, what to do with it:
If no Command is specified, then the app will assume the UPDATE command.
|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.
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.
<b>Features</b> <ol> <li>Looks nice</li> <li>Feels good</li> </ol>
|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 have Tag “Type: Skirt”. That way this Product will be included in both Smart Collections.
Color: Red, Eatable, Featured, Type: Skirt
||Tell the app, what to do with Tags:
If Tags Command is not set, the app will assume the REPLACE command by default.
|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
||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.
|Published At||Time||This column can be exported and imported.
It will be automatically updated, whenever you publish the Product to Online Store channel.
You can set product publication date in the past, by importing the specific date you like.
2017-10-06 23:03:00 UTC
||Tells Shopify, where to publish this Product.
|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.
|URL||URL||The Product page URL.
|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.|
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:
If you need to add additional image, you don’t need to mention other images – just mention those images, which you need to import, and use MERGE as “Image Command”.
If Image Src column will be empty, or will not exist, the images will stay unchanged.
If Shopify will not be able to download all images, the warning about that will be put to Import Results file “Import Comment” column.
||Here you define the action, what to do with images:
Images are never deleted or removed by default – only when you will give the explicit command to do so.
If Image Command is empty or such column don’t exist, then the MERGE command will be assumed.
|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.
When importing several images with the semicolon, the image numbers will be auto-incremented starting from this given number.
|Image Width||Number||The width of the image, in pixels.
|Image Height||Number||The height of the image, in pixels.
|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
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 Inventory Item ID||Number||Global Inventory Item identifier. It is the new way how Shopify identifies inventory item across many locations. We are transitioning the app gradually to this new approach. Read more here.
For now it’s exported only.
|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 precisely, which Variant you need to update.
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 SKU can also be used as a “key” to identify existing Products if the ID or handle is not known for the product. Read Tutorial: How to update Product by SKU?
|Variant Grams||Whole Number||Imported only (to be compatible with Shopify CSV columns format).
Regardless of the weight that you will show on your Store, you can specify weight in grams.
Will use the value of this column only when there is no “Variant Weight” column.
When showing Product information, Shopify will convert those grams to whatever Weight Unit you will need to use.
|Variant Weight||Number||The weight in the specified Variant Weight Unit.
|Variant Weight Unit||
||The weight unit to show Clients. Shopify will automatically convert grams to this weight unit.
Allowed values: g, kg, oz, lb.
|Variant Inventory Tracker||
||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||
||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:
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.
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||
||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.
||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 Tax Code||Text||Specifies the Avalara tax code for the product variant. Will export and import only for stores that have the Avalara AvaTax app installed.
|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.
||Whenever variants are imported, there is always one of those commands executed for each of variant rows:
If no Variant Command is specified, then the MERGE will be assumed.
See this Tutorial for more details about adding variants: How Add Variants To Existing Product.
Variant Metafields are metafields that are attached to each Variant. The column name for variant metafield starts with “Variant Metafield: “, followed by the namespace.name – the same way as the Metafields.
- The variant metafield with name “buy_price” in the global namespace should be called “Variant Metafield: buy_price”.
- The variant metafield with name “description” in the “details” namespace should be called “Variant Metafield: details.description”.
Note that exporting and importing Variant Metafields will significantly increase the time it takes to process the items because each variant metafield needs separate request to the Shopify API. Therefore, be mindful and export/import variant metafields only when you really need them.
Read more detailed documentation on Metafields page.
Read more detailed documentation on Metafields page.
Metafields for SEO
|Metafield Column Name||SEO Field|
|Metafield: title_tag||SEO Title|
|Metafield: description_tag||SEO Description|
Metafields for Google Shopping
Those are the same fields that you import and export with Shopify CSV files, just they are actually stored as the following Metafields in Shopify:
|Metafield Column Name||Shopify CSV File Column||Google Shopping Field|
|Metafield: google.adwords_group||Google Shopping / AdWords Grouping|
|Metafield: google.adwords_labels||Google Shopping / AdWords Labels|
|Metafield: google.gmc_id||“shopify_US_”+”product ID”+”_”+”variant product ID”
comma separated relationships between product and its variant(s)
for example, shopify_US_286247125016_3126953639960, shopify_US_286247125016_3126954328088
|Metafield: google.condition||Google Shopping / Condition||
more info here.
|Metafield: google.custom_label_0||Google Shopping / Custom Label 0||custom label 0|
|Metafield: google.custom_label_1||Google Shopping / Custom Label 1||custom label 1|
|Metafield: google.custom_label_2||Google Shopping / Custom Label 2||custom label 2|
|Metafield: google.custom_label_3||Google Shopping / Custom Label 3||custom label 3|
|Metafield: google.custom_label_4||Google Shopping / Custom Label 4||custom label 4|
|Metafield: google.custom_product||Google Shopping / Custom Product||custom product|
|Metafield: google.google_product_type||Google Shopping / Google Product Category||google product category
more info here
|Metafield: MPN||Google Shopping / MPN||mpn
Product’s Manufacturer Part Number. More info here.
|Metafield: google.age_group||Google Shopping / Age Group||age group
more info here
|Metafield: google.gender||Google Shopping / Gender||gender
more info here.
Note that other Google Shopping apps might store Google Shopping data in other Metafields – so be sure to Export a sample product to see in which Metafields the data you need to change, is stored.
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 copy the 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 an 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 the unlimited count of Metafields.