Overview:
The Import Manager can be used to import large quantities of data from text files. The types of data which can be imported currently include:
Customers
Addresses
Categories
Products
Category / Product associations
Product Variations
Customer / Customer Group associations
Cross-selling
There are 3 steps to importing data from a text file which we will detail in the sections below:
Upload your data file to the server.
Create a mapping file to map the fields in your data file to the associated fields and attributes in Elastic Path 3.
Import data from your data file using the mapping file created in step 2.
Uploading a data file:
Create your data file from existing data. This data may come from an external database, a previously prepared data file or spreadsheet, or manual data entry. There are some guidelines to follow when creating your data file:
Only pipe-delimited text files are currently supported. This means that each line of the data file needs to look like this:
sample data 1|sample data 2|sample data 3|sample data 4
The data file must contain a header row with the column names such as:
ID|first name|last name|email|password
Click the checkbox next to "Overwrite existing file" if you want the new file to overwrite an existing file with the same name.
Click "Browse..." to choose the file to upload and click "Open" to select it.
Click "Upload Data File" to upload the file.

Figure 8.7.1 - Import Manager homepage
Creating a mapping file:
Choose the type of data you wish to import from the "Import Types" picklist (guidelines are discussed below):
Customer / Customer Group - data to associate customers to customer groups. A customer can belong to multiple groups.
Cross-selling - data to associate products with related products (See Section 3.9 Cross Selling for more detail)
Product / Category - data to associate products to categories. A product can belong to multiple categories.
Address - customer address data
Customer - existing customer data
Category - categories to populate your product catalog
Product - products to populate your product catalog
Product Variations - specific SKUs associated to a particular product. A product may contain many variations (such as different sizes, colors, etc).

Figure 8.7.2 - Choose Import Type
Choose the data file from the "Data Files" picklist for which you would like to create a mapping.

Figure 8.7.3 - Choose Data File
Click "Generate Fields and Attributes". On the left side of the screen, you will see a list of all available Elastic Path 3 attributes (with data type in brackets) for the selected type of data. Next to each Elastic Path 3 attribute is a picklist containing all possible column names in the data file you chose to map.
For each Elastic Path 3 attribute on the left, choose a corresponding column from the picklist on the right. For example, if you are mapping Customer data to a data file, you will likely choose a column in the data file called "email" to map to the Elastic Path 3 Customer data type "email (Text)" as seen below:

Figure 8.7.4 - Map Elastic Path 3 attributes to data file columns
In the text box at the bottom of the screen, enter a filename to save the mapping file:

Figure 8.7.5 - Generate Mapping File
Field Descriptions, Restrictions and Guidelines for creating mapping files:
Customer data: (Required fields: NONE)
email (Text) - customer's email address
password (Text) - customer's password
lastEditDate (Timestamp) - last date that the customer's account was updated. (Format must match "DD/MM/YYYY".)
disabled (Boolean) - is this customer's account disabled? (Set to "true" or "false".)
deleted (Boolean) - is this customer's account logically deleted (ie. the account is still in the database for audit trail and reporting purposes but no further activity can be performed on it)? (Set to "true" or "false".)
accountEnabled (Boolean) - always set to "true". This is for internal use ONLY.
accountUID (Text) - the customer's account number
attributeGroup (Attribute Group UID) - leave blank. This is for internal use ONLY.
referenceID (Text - Short) - the unique system identifier for the customer. This can be the same value as the customer's account number, or can be a system generated field that is provided by the system from which the customer data was exported. This field is used to connect a customer with one or more address records so whatever value is entered here will need to match the value entered for the mailOrderCustomerAccount attribute when importing addresses. NOTE: If this field does not appear in the field list on the left, it MUST be added through the Configuration Manager (see section 8.5 "Attributes / Templates" for an explanation) before ANY customer data is imported.
Customer address data: (Required fields: NONE)
firstName (Text) - customer's first name
lastName (Text) - customer's last name
phoneNumber (Text) - customer's phone number
faxNumber (Text) - customer's fax number
company (Text) - customer's company name
street1 (Text) - customer's street address line 1
street2 (Text) - customer's street address line 2
city (Text) - customer's city
stateProvince (Text) - customer's state or province (leave empty if outside US or Canada)
zipPostalCode (Text) - customer's zip code or postal code
country (Text) - customer's country
defaultBilling (Boolean) - set to "true" if this is the default billing address for this customer. Otherwise set to "false"
defaultShipping (Boolean) - set to "true" if this is the default shipping address for this customer. Otherwise set to "false"
memoLabel (Text) - leave blank. This is for internal use ONLY.
mailOrderCustomerAccount (Customer UID) - the value in this column must match the corresponding value in the referenceID attribute of the customer who owns this address. For example, if the corresponding customer's referenceID is "1313UB413" this value should be inserted here.
attributeGroup (Attribute Group UID) - leave blank. This is for internal use ONLY.
Category data: (Required fields: NONE)
parentCategory (Whole Number) - the unique ID of this category's parent category. This value is used to create a category hierarchy and MUST match the referenceID value for the corresponding category. For example, let's assume we have a category called "Shoes" and another category called "Running Shoes". The "Shoes" category is the parent of the "Running Shoes" category. Therefore, the referenceID value for the "Shoes" category MUST match the parentCategory value for the "Running Shoes" category so that the two categories are properly connected in the hierarchy.
name (Text) - category name
description (Text) - leave blank. (This is a legacy field which is no longer used.)
headerImage (Text) - leave blank. (This is a legacy field which is no longer used.)
disabled (Boolean) - is this category disabled? (Set to "true" or "false".)
deleted (Boolean) - is this category logically deleted (ie. the category is still in the database for audit trail and reporting purposes but no further activity can be performed on it)? (Set to "true" or "false".)
ordering (Whole Number) - the order in which this category appears in a list of categories with the same parent category
pagination (Whole Number) - the number of products to display on the screen at the same time within this category
multipleDisplay (Boolean) - leave blank. (This is a legacy field which is no longer used.)
inheritPromotions (Boolean) - set to "true" if you want this category to inherit any promotions which are activated in its parent categories.
referenceID (Text - Short) - the unique system identifier for this category. This value is used to create category hierarchies (as explained with the parentCategory attribute above) and to associate products to categories (as explained in the "Product / Category data" guidelines below).
template ID (Whole Number) - the unique ID associated with the template which will be used to display this category. If you are unsure of the unique ID for a particular template, it appears in brackets next to the template name at the bottom of the Attributes tab. For example, the template named "Product (2.vm)" is assciated with template 2.
Product data: (Required fields: name)
name (Text) - product name
description (Text) - leave blank. (This is a legacy field which is no longer used.)
imageBig (Text) - leave blank. (This is a legacy field which is no longer used.)
imageThumb (Text) - leave blank. (This is a legacy field which is no longer used.)
disabled (Boolean) - is this product disabled? (Set to "true" or "false".)
deleted (Boolean) - is this product logically deleted (ie. the product is still in the database for audit trail and reporting purposes but no further activity can be performed on it)? (Set to "true" or "false".)
inheritPromotions (Boolean) - set to "true" if you want this product to inherit any promotions which are activated in its parent categories or parent product.
referenceID (Text - Short) - the unique system identifier for this product. This value is used to associate products to categories (as explained in the "Product / Category data" guidelines below) and to associate product variations to this product (as explained in the "Product Variation data" guidelines below)
template ID (Whole Number) - the unique ID associated with the template which will be used to display this category. If you are unsure of the unique ID for a particular template, it appears in brackets next to the template name at the bottom of the Attributes tab. For example, the template named "Product (2.vm)" is assciated with template 2.
Product Variation data: (Required fields: product code, name, price shipping weight)
product Code (Text) - the UPC, SKU or other product identifier
name (Text) - the set of attributes that uniquely identifies this product variation such as "green, small"
price (Decimal Number) - price
shippingWeight (Decimal Number) - shipping Weight (in lbs. or kgs.)
shippingPackageType (Text) - leave blank. (This is reserved for future use).
taxCategoryUid (Whole Number) - The unique Elastic Path 3 ID for the tax category that this product variation belongs to. The tax category must already have been created in the Elastic Path 3 Tax Manager (see section 8.4 "Taxes")
stockCount (Whole Number) - total quantity of this product variation currently in stock
reservedQty (Whole Number) - total quantity of this product variation that is reserved and cannot be purchased online
backorderedQty (Whole Number) - leave blank. (This is reserved for future use).
reOrderMinQty (Whole Number) - the minimum threshold at which the store manager is notified that this item is low stock.
backOrderMaxQty (Whole Number) - leave blank. (This is reserved for future use).
backOrderAllowed (Boolean) - leave blank. (This is reserved for future use).
outOfStockVisible (Boolean) - set to "true" if you want out of stock items to display on the site with an appropriate "out of stock" message or "false" to hide items which are out of stock.
disabled (Boolean) - is this product variation disabled? (Set to "true" or "false".)
deleted (Boolean) - is this product variation logically deleted (ie. the product variation is still in the database for audit trail and reporting purposes but no further activity can be performed on it)? (Set to "true" or "false".)
ordering (Whole Number) - the order in which this product variation appears when all variations of a product are displayed in a list
taxValue (Text) - leave blank. (This is a legacy field which is no longer used.)
quantityOrdered (Whole Number) - leave blank. (This is reserved for future use).
inheritPromotions (Boolean) - set to "true" if you want this product variation to inherit any promotions which are activated in its parent categories or parent product.
product (Product UID) - the unique ID for the product associated with this product variation. This value MUST match the referenceID value for the associated product so that the correct association is created between the product and product variation.
Product / Category data: (Required fields: NONE)
NOTE: after importing Product / Category data, you must return to the Catalog Manager and click "Refresh Category Tree" in order to reload the tree in both the Commerce Manager and storefront.
disabled (Boolean) - is this product / category association disabled? (Set to "true" or "false".)
deleted (Boolean) - is this product / category association logically deleted (ie. the product / category association is still in the database for audit trail and reporting purposes but no further activity can be performed on it)? (Set to "true" or "false".)
ordering (Whole Number) - the order in which this product appears when all products in the same category are displayed in a list
product (Product UID) - the unique ID for the product. This value MUST match the referenceID value for the associated product so that the correct association is created between the product and category.
category (Category UID) - the unique ID for the category. This value MUST match the referenceID value for the associated category so that the correct association is created between the product and category.
Customer / Customer Group data: (Required fields: NONE)
deleted (Boolean) - is this customer / customer group association logically deleted (ie. the customer / customer group association is still in the database for audit trail and reporting purposes but no further activity can be performed on it)? (Set to "true" or "false".)
customerGroup (Customer Group UID) - the unique ID for the customer group (aka. Customer Group number). This number is visible from the Customer Group tab in the Customer Manager.
mailOrderCustomerAccount (Customer UID) - the unique ID for the customer. This value MUST match the referenceID value for the associated customer so that the correct association is created between the customer and customer group.
Cross-selling data: (Required fields: NONE)
csProductUid (Whole Number) - the unique ID for the cross-selling item . This value MUST match the referenceID value of an existing product in the database so that the correct association is created between this cross-selling item and the primary product. A product can have 1 or more related products which add value to the product in some way. For example, when selling a tennis racket you may have related products such as tennis balls and wristbands. In this example, the tennis racket is the primary product whereas the tennis balls and wristbands are the cross-selling items.
ordering (Whole Number) - the sorting order in which to display this particular cross-selling item if a product has more than one cross-selling item related to it.
product (Product UID) - the unique ID for the primary product. This value MUST match the referenceID value of an existing product in the database so that the correct association is created between this primary product and the cross-selling item.
Importing data from a data file:
Click the "Import" tab to return to the Import Manager homepage.
Click the "Edit" button next to the "Importing Data" action.
Choose a data file from the list on the left.
Choose a mapping file from the list on the right.

Figure 8.7.6 - Choosing data file and mapping file
Click "Import Data". A pop-up window will open which updates the import status every 2 seconds. This status window indicates the current record being imported and the number of records failed (if any).

Any records that cannot be imported are written out to an exception data file with the current date/time and the file extension of ".exception". These exception files can be downloaded from the server (ask your system integrator how to do this). This exception file can then be cleaned up and uploaded to be used as the data file for a subsequent import. This process should be repeated until there are no exceptions.