> For the complete documentation index, see [llms.txt](https://docs.chord.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chord.co/chord-oms/chord-oms-overview/importing-data.md).

# Importing Data

### Introduction

The Importer allows you to import certain data, such as Orders, Products, Customers, Gift Cards, and Subscriptions, from other popular e-commerce solutions, such as Shopify, to Chord OMS using templates.

There is also a Batch Import tool for importing collections of Orders. Refer to this [document](/chord-oms/chord-oms-overview/orders/batch-orders.md) for details on the batch importer.

### Importing Architecture

The Importer tool in the OMS --> Importer can import four different data types:

1. Orders
2. Products
3. Customers
4. Subscriptions

![](https://3559351341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGejRW1RLC9yasX56Xzxu%2Fuploads%2Fgit-blob-e915e217e631d600ec5d4fc318487f06acb9d668%2Fimporting-data-1.jpg?alt=media)

**New Import:** CTA, Call to Action, button used to Import Data

**Type:** Type of Import you are performing

**State:** State of the import just performed. Whether it has failed, completed or in Process

**Date Fields:** Date of Import

**Filter Results:** To filter and narrow out your results

**Columns**: Display of information

**ID**: Click here to see more details about the Import

**Details**: Click here to see more details about the Import. It is the same details as clicking on ID

\*\*\*\*

\*\*\*\*

### Importing Subscription

The importer loads data from uploaded CSV files. Templates CSV files are available on the Importer page.

![](https://3559351341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGejRW1RLC9yasX56Xzxu%2Fuploads%2Fgit-blob-60c193ff51c423489662c02fe747cb20d44cd505%2Fimporting-data-2.jpg?alt=media)

Click **Subscriptions**, and the OMS will download a template.

You should copy and paste it into Google Sheets or Excel and use it as a guide.

{% hint style="info" %}
90% of failed Imports are due to bad formatting!
{% endhint %}

Once you have all your data in your file, save it and download it as a CSV file to your computer.

Click **New Import,** select **Subscriptions** in the dropdown, and select your file.

Click **Create**

![](https://3559351341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGejRW1RLC9yasX56Xzxu%2Fuploads%2Fgit-blob-84e7971db4b4dd17c896f37e570b2bbec6e085be%2Fimporting-data-3.gif?alt=media)

**Subscriptions Fields**

**ID:** During future imports, the importer will raise an error is OMS already has a subscription with this value. Make sure the ID is unique

**Interval:** day, week, month. This field is case sensitive. If you type DAY, you would see an error like this: *Invalid Subscription interval provided. Must be day, week, month or year*

**Currency:** Ex - USD or CAD

**Email:** email address of the subscriber/customer

**Length:** Interval length of the Subscription

**Start: Not Required.**

If Start Date is left blank, the Actionable Date in the Subscription will default to \<todays date>.

If Start Date is in the future and Actionable Date is blank: **Actionable Date** will be set to **Start Date** provided

If Start Date is in the past and Actionable Date is blank: **Actionable Date** will be set to **Start Date** provided

If Start Date and Actionable Date is left blank: **Actionable Date** will be blank

**Billing First Name:** Billing Information below

**Billing Last Name:**

**Billing Add 1:**

**Billing Add 2:**

**Billing City:**

**Billing Company:**

**Billing Zip:**

**Billing Phone:**

**Billing Country Code:**

**Billing Province Code:**

**Shipping First Name:** Shipping Information below

**Shipping Last Name:**

**Shipping City:**

**Shipping Company:**

**Shipping Zip:**

**Shipping Phone:**

**Shipping Country Code:**

**Shipping Province Code:**

**Line Item SKU:** Make sure that the Product listed is spelled exactly the same as in the OMS (Slug)

**Line iTEM QTY:** Number of items in that Subscription

**Previous Installment Count:** The current position of a customer in a sequential subscription. **It is&#x20;*****not*****&#x20;0-indexed.**

For example, consider a subscription for an Assortment was imported. The Assortment consists of 6 different products where each month, the customer receives a different product in sequence. The subscription was imported partway through the Assortment cadence. The customer already received 4 of 6 installments. This value will be 4, meaning that the *next* installment they should receive is #5.

**State:** active or inactive - Defaults to Active if left blank.

When you Activate a subscription, the Actionable Date will be set based on the Interval units. For example, if your Interval unit is one month, it will set it to \<today's Date + 1 month) This field is case-sensitive; make sure the spelling is correct, as the import will go through, but the subscription will not create.

**Pause**: True or False

**Actionable Date: Not Required.** The next actionable date will be set based on the Start Date in the importer row:

**Payment Method:** The payment method that is associated to the subscription. That payment is required because a subscription cannot be created without a payment method (or source). By default, OMS will link the imported subscription to a dummy payment method.

**Payment Token:** For payment methods that require a token, the importer will include this value in the payment source created for the payment method.

For example, if the Payment Method for a row is SolidusPaypalBraintree::Gateway, the value in the Payment Token column is inserted in the Braintree payment source created for the imported subscription.

**Payment Token Type:**

**User ID: Not Required.** The Customer's ID from your legacy platform. This Customer ID will show in the Payment Source in the Subscription

**Tag: Not Required** Tag does not have to exist in the OMS. If you add a tag that does not exist in the OMS, the import will create it

**Created At:** Date Subscription was created

**Notes: Not Required.** When a Subscription Order is created, the Notes will display in Order Information.

### Importing Customers

The importer loads data from uploaded CSV files. Templates CSV files are available on the Importer page.

![](https://3559351341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGejRW1RLC9yasX56Xzxu%2Fuploads%2Fgit-blob-60c193ff51c423489662c02fe747cb20d44cd505%2Fimporting-data-2.jpg?alt=media)

Click **Customers**, and the OMS will download a template.

You should copy and paste it into Google Sheets or Excel and use it as a guide.

{% hint style="info" %}
90% of failed Imports are due to bad formatting!
{% endhint %}

Once you have all your data in your file, save it and download it to your computer as a CSV file.

Click **New Import,** select **Customers** in the dropdown and select your file.

Click **Create.**

**Customers Fields**

\*\*\*\*

**Email:** Customer's email address

**First Name:** Customer's first name

**Last Name:** Customer's last name

**Address 1:** Customer's address

**Address 2:** Customer's address

**City:** Customer's city

**Zip:** Customer's zip code

**Phone:** Customer's phone

**Country Code:** Customer's Country

**Province Code:** Customer's State

**Created At:** Member Since

![](https://3559351341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGejRW1RLC9yasX56Xzxu%2Fuploads%2Fgit-blob-389f3f866e606d3b6c96b4b0cbf8f44d84e612f9%2Fimporting-data-5.png?alt=media)

### Importing Orders

The importer loads data from uploaded CSV files. Templates CSV files are available on the Importer page.

![](https://3559351341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGejRW1RLC9yasX56Xzxu%2Fuploads%2Fgit-blob-60c193ff51c423489662c02fe747cb20d44cd505%2Fimporting-data-2.jpg?alt=media)

Click **Orders**, and the OMS will download a template.

You should copy and paste it into Google Sheets or Excel and use it as a guide.

{% hint style="info" %}
90% of failed Imports are due to bad formatting!
{% endhint %}

Once you have all your data in your file, save it and download it to your computer as a CSV file.

Click **New Import,** select **Orders** in the dropdown and select your file.

Click **Create.**

**Orders Fields**

**Name:** Order Number

**Processed At:** Completed at date

**Currency:** Defaults to USD

**Email:** Customer's email

**Note:** Notes displaying in Order under Order Information

**Billing First Name:** Customer's Billing information

**Billing Last Name**

**Billing Address1**

**Billing Address2**

**Billing City**

**Billing Company**

**Billing zip**

**Billing Phone**

**Billing Country Code**

**Billing Province Code**

**Shipping First Name:** Customer's shipping info

**Shipping Last Name**

**Shipping Address1**

**Shipping Address2**

**Shipping City**

**Shipping Company**

**Shipping zip**

**Shipping Phone**

**Shipping Country Code**

**Shipping Province Code**

**Lineitem sku:** SKU of product in order

**Lineitem quantity:** Quantity of SKU in order

**Lineitem price:** Price of that SKU

**Shipping Line Title:** Stock Location name

**Lineitem fulfillment status:** Whether the order is fulfilled or not

**Shipping Line Price:** flat rate applied shipping price a the line item level

**Financial Status:** Payment Status

**Channel:** Order Channel

**Tag:** Order Tag, if it doesn't exist prior the import it will be created

**Subscription Order:** If a Subscription order exists provide it here

**Subscription ID:** If a Subscription order exists provide it here

### Importing Products

The importer loads data from uploaded CSV files. Templates CSV files are available on the Importer page.

Click **Products**, and the OMS will download a template.

You should copy and paste it into Google Sheets or Excel and use it as a guide.

{% hint style="info" %}
90% of failed Imports are due to bad formatting!
{% endhint %}

Once you have all your data in your file, save it and download it to your computer as a CSV file. Click **New Import,** select **Products** in the dropdown and select your file.

Click **Create.**

**Handle:** Slug in the OMS

**Title:** name of Product

**Published**: If product exists in CMS mark it as TRUE

**Variant** **SKU**: Variant's SKU

**Variant Weight:** Variant's weight

**Variant Price:** Variant's Price

**Option1 Value:** As an example, Blue

**Option1 Name:** As an example, color

**Option2 Name:** As an example, weight

**Option3 Name:** As an example, size

**Option2 Value:** As an example, 5

**Option3 Value:** As an example, M, L, S

**Image Src:** Location of image

**Alt Text:** Alternative Text for product name

**Variant Image:** Location of other images for the products’ variants

### FAQ/Troubleshooting

**Importing**

**Can I import, for legacy purposes, discontinued SKUs (and therefore not present in the OMS)?** No, a SKU need to exist in the OMS to be imported.

﻿ **Would there be a better solution than temporarily re-creating defunct/discontinued products in our CMS, syncing them to the OMS, importing rows that contain them, then deleting the defunct product?** Yes, there’s a Product CSV sample on the Importer page in the OMS. ﻿ **Failed import:** ﻿

* Subscription with import number 7 already exists: make sure that the ID is a unique ID and has never been used in previous Import
* Invalid byte sequence in UTF-8 in line 1: You aren't using a CSV file. Make sure you are using a comma separated value file to Import
* Validation failed: Amount Authorized exceeds the available credit: When importing credit, make sure that the Authorized Amount equals the Amount + Amount Due fields
* Store credit category does not exist: A Store Credit Type must exist and match the Category field when importing Store Credit. These Types can be found in Users

![](https://3559351341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGejRW1RLC9yasX56Xzxu%2Fuploads%2Fgit-blob-8c67e891f242ee81e947e48b856f4f5c69c1f3b6%2Fimporting-data-7.jpg?alt=media)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chord.co/chord-oms/chord-oms-overview/importing-data.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
