In this Shopify import guide, you will find out what import functionality is hidden behind the platform and how to enhance it in the most user-friendly and at the same time powerful way. Let’s explore the system’s native capabilities first and then proceed to the most powerful third-party solution that copes with any data transfer challenges and enables any Shopify import customizations – Firebear Improved Import & Export App for Shopify.
Before going any further, we should remind you that the Firebear team has vast experience transferring data between Magento 2 and all possible external systems. Furthermore, we can also help you migrate to Shopify or move data between your e-commerce website and external tools. Our specialists are capable of Shopify integrations of any complexity. Contact us for more detail.
Shopify lets you import several entities by default. However, there is no single interface where you can control all data transfers. You are also bound to CSV files and cannot automate import processes. Besides, various useful data transfer features are available in Shopify Plus only. Let’s take a look at what you get.
How to import products to Shopify
Why do you need to import products to Shopify? Firstly, because you migrate from another platform. It is the fastest way to recreate your current product catalog on a new storefront.
Secondly, you may leverage this functionality to update your products or inventory. However, it is necessary to export the corresponding data to get a CSV file that reflects the current state of things. Then, you can edit it and reimport the updated data back into the system.
Bear in mind that you always need to back up your product data to prevent any data loss. For instance, importing a CSV file edited in Microsoft Excel or Numbers often leads to the absent product images and other issues. Therefore, it is extremely important to create a correct copy of your catalog before applying any changes.
Importing products from another store
Let’s assume that you’ve exported a CSV file with products from another platform and now need to transfer this data to Shopify. Unfortunately, you cannot do that since the existing sheet is arranged according to the external platform’s requirements. Edit it to match Shopify’s CSV file format. Note that even a missing header leads to the import failure.
Another limitation is associated with file size. You cannot import more than 15MB of product data to Shopify.
As for the import process itself, it is quite simple. You only need to follow these steps:
Go to Shopify admin -> Products -> All products and hit the Import button.
The Import products by CSV file window displays. Click Choose File there.
Locate your product CSV and click Open.
Upload the file.
That’s it. When the procedure is complete, you receive a confirmation email.
Reimporting products from Shopify
Shopify enables you to apply changes to your catalog items via CSV. Export your products, edit the CSV file and reimport it back into your Shopify store. However, this method doesn’t work if you rely on Oberlo and other similar apps to add products to your website.
You can import products to Shopify as follows:
Go to Shopify admin -> Products -> All products and hit the Import button.
The Import products by CSV file window displays. Click Choose File there.
Locate your product CSV and click Open.
By enabling the Overwrite any current products that have the same handle feature, you override the corresponding Shopify data. For columns that aren’t present in the CSV file, the corresponding product information remains untouched. For instance, if you transfer items without price information, Shopify will keep the existing values.
Upload the file.
A confirmation email is sent upon a successful upload.
Shopify product import: CSV file format
Below, you can see a list that shows the structure of a typical product file supported in Shopify.
Handle. Here, you should specify unique product names using letters, dashes, and numbers. Note that spaces, accents, periods, and other characters are prohibited.
It is also worth mentioning that Shopify uses handles in product URLs.
Besides, Shopify treats every line in the CSV file that starts with a different handle as a new product. However, you can use multiple lines with the same handle to add multiple images to a single product. Since this field is required, it cannot be blank or missing.
Title. This column contains the title of your product — for instance, Women’s Hoodie. Since this field is required, it cannot be blank or missing.
Body (HTML). Here, you can provide the product description in HTML format or as plain text. This one can be blank.
Vendor. The vendor name for the product is shown here. It should contain more than two characters. The field is required but can be blank.
Type. This column displays the product type, such as Snowboard. You can leave it blank.
Tags. Here, you can place a comma-separated list of tags associated with the product. Add quotes around the tags if they are absent: “tag1, tag2, tag3”. This one can be blank.
Published. In this column, you provide information on whether a product is published on your storefront or not:
TRUE – the product is published;
FALSE – the product is hidden.
The field is required. Leaving it blank publishes the product.
Option1 Name. Specify a product option name (Color) if an item contains options. Set it to Title for products with only one option. Since this field is required, it cannot be blank or missing.
Option1 Value. If a product is associated with an option, you should enter its value here (White).
For products with only one option, set it to Default Title. Also, note thatchanging data in this column replaces the existing variant IDs. This process usually breaks third-party dependencies on variant IDs. Since this field is required, it cannot be blank or missing.
Option2 Name. If a product has the second option, specify it here. This column can be blank.
Option2 Value. Enter the value of the second option here. Note that you can leave the field blank.
Option3 Name. If a product has the third option, specify it here. You can leave this column blank.
Option3 Value. Enter the value of the third option here or leave it empty.
Variant SKU. In this column, you should type the SKU of a product or variant. The provided information is used to track inventory with the help of inventory tracking services. The field can be blank unless you use custom fulfillment services.
Variant Grams. This column contains the product or variant weight in grams. It is prohibited to specify a unit of measurement or use decimals here. If your product weight is 1.239 kg, you should specify it as 1239.
Also, note that Shopify imports and exports the weight in grams. It usually happens even if you set a different unit on your website. Therefore, use only accurate weights to offer correct carrier-calculated shipping. Since this field is required, it cannot be blank or missing. You must specify a value, even if it is 0.
Variant Inventory Tracker. This column contains inventory tracking details for a variant or product. Such values as shopify, amazon_marketplace_web, and shipwire are under your disposal. Leave the column blank if inventory isn’t tracked. The field can be blank. In the case when the existing inventory tracking options are removed, the inventory is no longer tracked.
Variant Inventory Qty. Here, Shopify displays the number of items available in stock. Note that the column is only related to Shopify stores with a single location. Shopify doesn’t include this column for stores with the inventory at multiple locations. You can leave it blank.
Variant Inventory Policy. In this column, you can specify the behavior towards orders when the inventory level for a corresponding product or variant reaches zero.
deny – a product cannot be purchased after its inventory level reaches zero;
continue – a product can be purchased after its inventory level reaches zero: negative inventory levels are enabled.
Since this field is required, it cannot be blank or missing.
Variant Fulfillment Service. Here, the system displays a fulfillment service responsible for the product or variant fulfillment. Possible values are:
It is also possible to specify the name of your custom fulfillment service here. Note that it is necessary to use lowercase letters and replace spaces with a dash (-). Also, remove periods and other special characters. And don’t forget to set up a custom fulfillment service in your Shopify admin before adding its name in this column. Since this field is required, it cannot be blank or missing.
Variant Price. Here, Shopify lets you set the price of the product or its variant. Note that currency symbols are prohibited. Therefore, you should specify a product price like this: 47.98. Since this field is required, it cannot be blank or missing.
Variant Compare at Price. The “Compare at Price” feature of the product or variant is related to this column. The requirements are the same: you shouldn’t use currency symbols. The field can be blank.
Variant Requires Shipping. Here, Shopify contains options that show whether shipping is required or not. TRUE and FALSE are two possible values. If you leave the column blank, the system understands it like FALSE.
Variant Taxable. Here, you can specify whether taxes are applied to a variant or not. The values are TRUE and FALSE correspondingly. If you leave the column blank, the system understands it like FALSE.
Variant Barcode. Shopify uses this column to add a product barcode, ISBN, or UPC. It can be blank.
Image Src. This column allows you to specify the URL of a product image. The system downloads images during the import and uploads them back. However, they are not variant-specific. You should specify variant images in the variant image column.
Note that it is prohibited to edit the image file name after uploading it to your store. Images that have _thumb, _small, or _medium suffixes in their names are not allowed. The field can be blank.
Image Position. In this column, you can specify the sort order for images that appear on a product page. Set the number representing the order in which you want the image to be displayed on the frontend. Shopify shows them from smallest to largest. Enter 1 to let the image appear first for that product. The field can be blank.
Image Alt Text. Alt text of an image is stored here. It is displayed when an image can’t load. Besides, assistive technologies use it to describe an image to a customer who’s visually impaired. And, of course, it is a reliable SEO instrument. Although you can use up to 512 characters, the optimal recommended length is 125 characters. The field can be blank.
Gift Card. Here, the system places data necessary to determine whether the product is a gift card or not. As you might have already guessed, valid values are TRUE or FALSE. You need to create gift cards in admin prior to changing the corresponding fields in a CSV file. The field can be blank.
SEO Title. You can find the SEO Title under the Search engine listing preview header in the Page title field on the product details page. The SEO Title consists of letters and numbers. The character limit is 70.
You can leave this field blank. If so, the field will be automatically populated with the product title on import. Note that it is optional.
SEO Description. The SEO Description is situated in the Meta description field on the product details page. You can use not more than 320 letters and numbers here. Note that it is possible to leave this field blank. If so, the field will be automatically populated with the product description on import.
Google Shopping metafields. It is possible to ignore fields in the columns that include Google Shopping in their names. However, some situations may require using them. Therefore, this field is optional.
Variant Image. Here, you can specify functioning image URLs of variants. But it is optional.
Variant Weight Unit. Shopify uses only the following values:
The field is optional. If it is blank, the default value is kg.
Variant Tax Code. This column is available in Shopify Plus only if it is integrated with Avalara AvaTax. Don’t import a CSV file with this column filled in with data into a store that isn’t connected to Avalara.
Cost per item. Here, Shopify specifies the product or variant cost for you. Currency symbols are still prohibited. The field is optional.
active – the product is available on your storefront;
draft – you deal with a draft that needs to be completed;
archived – it is an archived item that is no longer available on the storefront.
This field is required. When you don’t add the column to your CSV file, all products are uploaded as active.
Shopify lets you add only one additional column to a CSV file and import it successfully. The Collection column lets you organize products into collections by uploading the CSV files. The system provides the ability to add it anywhere in your CSV file. At the same time, the column can be left blank.
To use it, specify the name of the collection to add a product to. In the case of an existing collection, the product should follow the collection conditions. However, if it doesn’t exist, Shopify creates a manual collection.
Note that the system lets you add a product to a single collection only.
Also, note that your CSV file with customer data must be in UTF-8 format.
How to import inventory to Shopify
In addition to products, you can separately import inventory data into Shopify. This procedure updates inventory quantities only. It neither creates a location nor updates the values that identify products. It is recommended to import your inventory only when other adjustments aren’t taking place to avoid errors and possible issues. For instance, transferring the update during the ongoing sales or manual changes will lead to incorrect product quantities.
To import the inventory data to Shopify, follow these steps:
Go to your Admin -> Products -> Inventory.
Click Import and select your CSV file with the update.
Click Import inventory, verify what you intend to import, and hit the Start import button.
Shopify inventory import: CSV file format
Shopify uses the inventory CSV files to transfer information that identifies products and product variants as well as their inventory quantities at a particular location. The columns below are a part of the inventory sheet:
Handle – here, Shopify displays a unique product name using letters, dashes, and numbers. Note that spaces are prohibited.
Title – this column is optional. However, including it lets you leave the values blank.
Option1 Name – you can specify a product option name, such as Color, here. Set it to Title for no options.
Option1 Value – enter the values for the option above, such as Black or White. If a product has no options, specify Default Title in this column.
Option2 Name, Option2 Value, Option3 Name, and Option3 Value follow the same requirements but can be left blank.
SKU – this column is optional, so its values can be left blank.
HS Code – The Harmonized System Code column lets you estimate duties and taxes for international buyers. Since this column is also optional, it can be left blank.
COO – The Country/Region of Origin column also participates in estimating duties and taxes for international customers. Use only ISO 3166-1 alpha-2 country codes. Since this column is optional, it can be left blank.
<Name of location> – Shopify stores the amount of inventory in the location specified by the column name. Bear in mind that the column heading is case sensitive. It means that it must be the name of one of your locations. Thus, you can add a column for each location to update inventory per place. Both positive and negative values are supported. Besides, it is possible to enter 0 or Not stocked. The latter indicates that the product has never been stocked at the location. The former shows that no changes should be applied.
How to import customers to Shopify
Like in the case of products, Shopify enables you to import customers in two ways. Firstly, you can create a customer CSV template, export it, apply changes, and then reimport the file back. Secondly, it is possible to build a custom CSV file and upload it to your Shopify website.
Note that the system constrains the customer import flexibility. Unfortunately, you cannot transfer CSV files larger than 1 MB. For 2 MB of client records, you will need two separate CSV files.
Moreover, some of the customers’ information can’t be imported into Shopify. Since passwords are encrypted, you cannot move them from other platforms to Shopify. It means that it is impossible to move customer accounts entirely. Shopify lets you transfer only customer records.
It is impossible to import information about orders placed and money spent on other e-commerce platforms. So, how does Shopify behave when you try to import customers?
As we’ve just mentioned, Shopify creates a customer record when you import customers using a CSV file. Each new record is aligned with a particular email address in the file.
Thus, if your CSV file contains customers with duplicate email addresses or phone numbers, such records are skipped. Instead, Shopify transfers only the last record with the same email address or phone number. So, how to import a customer CSV file with duplicate email addresses or phone numbers to Shopify?
You can leverage a simple trick to do that. Just delete all of the email addresses and phone numbers from the CSV file before importing it. Thus, you will transfer all records to your website, manually re-adding the email addresses or phone numbers to the customer records.
You can import customers to Shopify as follows:
Go to the Shopify admin and click Customers.
Choose the Import customers option.
You will activate the Import Customers By CSV dialog where it is necessary to click Choose File and select your CSV with customer data.
Click the Overwrite existing customers that have the same email option to update any existing customers.
Hit the Import customers button to launch the procedure.
Shopify customer import: CSV file format
Add all the headers listed below to the first line of your customer CSV. All of them are included in the customer CSV template. Also, note that all CSV file headers are case sensitive. It means that you should strictly follow the examples that appear in the following table. The wrong capitalization may interrupt the Shopify import process.
And as we’ve just mentioned above, the Total Spent and Total Orders fields are not be imported with customer details.
First Name. The customer’s first name.
Last Name. The customer’s last name.
Email. The customer’s email address.
Company. The customer’s company name, if applicable.
Address1. The customer’s address first line.
Address2. The customer’s address second line.
City. The customer’s city they live in.
Province. The customer’s province or state they live in. It requires the Province Code.
Zip. The customer’s postal or zip code for their address.
Phone. The customer’s contact number.
Accepts Marketing. In this column, you can find information on whether the customer is subscribed (yes) to the newsletter or not (no). Note that the field is case-sensitive, so you must use only lowercase values.
Total Spent. Here, you can find the customer’s total amount spent. Note that using a currency symbol is prohibited.
Total Orders. This column contains information on the customer’s total number of orders.
Tags. Here, you can see a comma-separated list of tags associated with the customer. Usually, they look as follows: tag1,tag2,tag3.
Note. Any additional data about the customer is specified here.
Tax Exempt. This column shows whether the customer is tax-exempt or not.
Note that your CSV file with customer data must be in UTF-8 format.
How to import orders to Shopify
If you want to import orders to Shopify, you will face an obstacle that cannot be passed over. Importing this entity manually is impossible by default. Therefore, you need to find another way to transfer data unless you are a Shopify Plus user who has access to the Transporter app. Since the latter is available to a limited group of users, we’d like to draw your attention to a third-party solution that every Shopify merchant can use.
Firebear Improved Import & Export App for Shopify
You can dramatically improve all import processes on your Shopify website with the Firebear Improved Import & Export App. Our tool not only works with all the entities mentioned above but also lets you transfer other blocks of data between your e-commerce storefront and any external systems.
Unlike the default import solution, our application provides full support for products, inventory, orders, customers, and categories. It also delivers the following functionalities:
Import and export mapping for all entities. It means that you can specify how to modify external data input to follow the native Shopify requirements.
Support for CSV, Excel, and Google Sheet. Our extension works not only with CSV files but also with tables created in Excel. Besides, you can import data right from Google Sheets.
Flexible launch. You can not only run import and export jobs manually, like in the case of the native Shopify instruments, but also rely on schedules or events. For instance, you can start inventory updates daily or after a new order is placed.
Custom import source and export destinations. The Improved Import & Export Shopify app lets you upload data files directly to the system, import them from URL, or transfer via FTP/SFTP.
Diff only import, update only. The tool lets you update stock data and other fields by product ID/SKU.
Modify data on the fly. It is possible to apply numerous changes before launching import and export. Our tool delivers the most intuitive way to change capitalization, find & replace attributes, use RegExp, merge and split values, etc.