Transporter app

Use the Transporter app to import customer, product, and order records into your Shopify store. This app accepts comma separated values (CSV) files for each of these record types, processes the records, and then imports them as objects into Shopify.

Transporter app is part of a suite of tools that makes it easier migrate online stores from other platforms to Shopify Plus. This suite includes the following tools:

  • The Transporter command line tool that you can use to extract and convert records from one platform into CSV files that are supported by the Transporter app. Developers can edit the source files for this tool and convert data from other platforms into CSV files. The command-line tool is an open source Ruby gem, that can be downloaded and installed from

  • The Transporter app that you can use to import product, customer, and order data into Shopify. This app uploads CSV files and it is available from the Shopify App Store.

CSV format

You need a CSV file for each record type that you want to import into Shopify. You can use the Transporter command-line tool to generate these CSV files or you can follow the format in the sample CSV files to create them yourself. The CSV format that the Transporter supports is similar to the format that the Shopify admin uses, but it provides support for additional data, such as metafields.

CSV sample files

Download the following sample CSV files:

CSV rules

If you use the Transporter command-line tool to create your CSV files, then your files already conform to the following rules. If you edit those files or you use another process to create your CSV files, then make sure that your CSV files conform to these rules. If you have trouble working with your CSV files, then try using Google Sheets.

The CSV file that you import needs to conform to the following rules:

  • The name of your CSV file needs to include the name of the object type (products, customers, orders) that it contains. For example, a file that contains the customer records needs to have the word customers in it (for example, mycustomers.csv).
  • The CSV file must use UTF-8 encoding to avoid generating unwanted special characters in your file. If you save your file after forgetting to confirm its UTF-8 encoding, then your data will be corrupted when you upload it as a new spreadsheet. Shopify can't recover corrupted files for you.
  • Also, as is true with most CSV files, the first line in the CSV file needs to contain the names of the column headers. The order of the columns is important and every row needs to have the same sequence of columns. Each column in the file needs to be separated with a comma. Each line must be separated by a line break (\r\n) or LF-style linefeeds. If any value contains special characters, such as a comma or a quotation, then you must use double quotes for the escape character to enclose that value. Make sure that you don't use smart quotes (curly quotes) such as those often used in spreadsheet programs.

Order of importation

The order in which you import your product, customer, and historical order records is important. You need to import them in the following order:

  1. Products
  2. Customers
  3. Orders

If you follow this order, then you will have access in Shopify to your customers' complete transaction history. The imported orders will also be linked to their associated products and customers.

Importing product, customers, and orders

The CSV file that you upload must conform to the CSV format that the Transporter app supports. You need to import your records in the following order: products, customers, and then orders.

To import a CSV file to the Transporter app:

  • In the Transporter app, click Upload file and then enter your CSV file.

After your file has uploaded, the app will begin importing your objects.

Troubleshooting and errors

When troubleshooting errors, it can be useful to understand how the Transporter app uploads and imports your data and the common errors that can occur during these processes.

Importation process

When importing objects into your Shopify store, the Transporter app performs the following actions:

Transporter app showing some import errors

  1. Uploads the file to a secure, Shopify-hosted, staging location. To learn how Shopify protects the information that you upload, see Shopify's privacy policy.

  2. Prepares the file by checking for structural and content format errors. If the Transporter app finds any errors, then your import fails and its status is Failed.

  3. Processes the file by importing the objects. The amount of time for the import depends on the number of objects to be processed (on average the processing rate is 40 objects/second). When the import finishes, its status is Completed. If there were records that the Transporter app couldn’t import, then an Export errors link appears in the table.

At any time, you can stop the import of further objects by clicking Stop import. Objects that were imported before you stopped the import will stay in your Shopify store. When you stop an import, its status is Stopped.

Common errors

The Transporter app can encounter errors when it processes and imports your objects.

When the status of an import is Failed, you can click the Export errors link in the table. Download the export errors file and review the errors. Fix the errors in your upload file and then try uploading the file again. Common errors include:

  • Column count mismatches between the column header row and other rows in the file.
  • Invalid (non-UTF-8) file encodings.

If the Transporter app encounters errors when it tries to import objects, then these records are not imported. Instead these problematic records are added to an export errors CSV file and the import continues to the next record. You won't see the export errors CSV file until after the import completes (status is Completed). When the import completes, an Export errors link appears in the table. Download this CSV file and review the problematic record rows. The last entry (column) in each row describes the error for the record. Make your corrections in this file and then upload it. You do not need to delete the error column before uploading this file.

In the following example, three customers could not be imported because they already existed in the store. (Shopify customers are identified by their unique email addresses, and these three email addresses are attached to customers in the Shopify store).

 First Name,Last Name,Email,Error(s)
 Jane,Doe,,...,Email has already been taken
 Jane,Doe,,...,Email has already been taken
 Jane,Doe,,...,Email has already been taken

Limitations and known issues

The following list contains limitations and known issues for the Transporter app:

  • The Transporter app can only create objects in Shopify. You cannot reimport, change, or delete objects in Shopify using this app. Before you import a large number of records, run some test imports with a small number of records.
  • For the best performance, import one CSV file at a time.
  • Your browser can time out when you attempt to download large error files.
  • When you import a product into Shopify, two metafields for the product's search engine optimization (SEO) are automatically created and populated for you: SEO Title and SEO Description.

Ready to start selling with Shopify?

Try it free