# Overview

Create and update properties of products, categories, manufactures, create pictures, localized values, etc. using external spreadsheet files

## Description

Import Manager is a powerful plugin that allows users to import data from CSV, XLSX, TXT, and XML files into their store. It is fully compatible with existing products, categories and manufacturers, and allows users to import ZIP files to import pictures. The plugin comes with full documentation and video tutorials to help users get started.

Import Manager enables users to import all properties of products, categories, manufacturers, and any other nopCommerce items, including localized values. It also allows users to import specification attributes and product attributes. Users can even add attributes to products using the plugin.

Import Manager offers an unlimited number of custom import templates, and allows users to configure templates quickly and easily. It provides detailed reports about import results, and allows users to import from URLs, FTP, SFTP, server folders, and file uploads.

## Features

* Fully compatible with existing products and other items
* CSV, XLSX, TXT, or XML files for imports
* ZIP files to import pictures
* Full documentation and video tutorials
* All properties of products, categories, manufacturers, and any other nopCommerce items
* Localized values for products, categories, etc.
* Import of related products, cross-sell patterns, tier prices
* Import of specification attributes, options, product attributes
* Adding attributes to products
* Unlimited number of custom import templates
* Simple and fast configuration of a template
* Detailed reports about import results
* Imports from URLs, FTP, SFTP, server folders, and file uploads
* Backing up import files
* Automatically repeated imports by schedule
* ACL mapping, Store mapping

{% hint style="info" %}
In case you encounter an issue, you can contact us via <support@foxnetsoft.com>
{% endhint %}


# Installation process

## Supported versions

Currently Import Manager supports following versions of nopCommerce: 4.80, 4.70, 4.60, 4.50, 4.40, 4.30, 4.20, 4.10, 4.00, 3.90. With new releases of nopCommerce we will try to update our plugin as soon as possible.

## Installation

After downloading plugin, head to **Configuration** section of your nopCommerce **Admin Pannel**. Select **Local Plugins** page and click on **Upload plugin on theme**. Locate Import Manager ZIP file and upload it to your website. Reload your nopCommerce website and go to the same **Local Plugins** page. Scroll to locate **Import Manager** and click **Install** next to it.

After successful installation a **FoxNetSoft** section would appear in your **Admin Panel**. Click on it to reveal **Import Manager** and its settings.

## Configuration

Head to **Configuration** page of Import Manager under FoxNetSoft section in Admin Panel.

* If you are using **SQL Server 2014 or older**, check the corresponding box
* If you are using **Load Balancer without https**, check the corresponding box
* Input **Serial Number** that you received after your purchase

{% hint style="danger" %}
Unregistered version would limit your imports to **50 items** with a trial period of **15 days**
{% endhint %}

{% hint style="info" %}
In case you encounter an issue, you can contact us via <support@foxnetsoft.com>
{% endhint %}


# Updating plugin

## Why updating?

Although any version of the plugin that was released on our website is fully operational, we constantly add new features and fix existing issues.&#x20;

It is worth to update your plugin in the following scenarios:

1. When you update nopCommerce
2. When you encounter any issues with the plugin
3. A month after a new release of a nopCommerce, even if you are not updating nopCommerce

This would ensure that you are using the best version of the plugin.&#x20;

{% hint style="info" %}
Updating will not erase any data that you created for your imports
{% endhint %}

## Where to download the latest version?

You can find the latest version on our plugin page, by clicking Download Trial. Note, if you have bought the plugin, a full version will be downloaded.

## How to update the plugin

Process of updating the plugin is exactly the same as the first plugin installation. You can navigate to [this section of documentation](/installation-process#installation).


# Templates

In order to import any entities using Import Manager you would need to create an Import Template. Head to Templates page under Import Manager section to see your exsisting templates and create new one

## Initializing a template

1. Click on **Add New** in the top right corner to create new template
2. In the **Entity** field select entity that you would like to import with this template. Import Manager offers a variety of entities, including Products, Categories, Attributes, Manufacturers, etc.
3. Input a **Name** for your template. Name serves only informational purpose for you and other administrators of the website.
4. Click on **Save and Continue Edit** to initialize your template.
5. Select an **Entity Key** for your template. This key will be used to map existing values in your store to a newly imported values.
6. Select file **Format** that will be used for this template. Import Manager supports a variety of file formats: CSV (Comma Separated Value Files), XML, XLSX (Excel Spreadsheets), TXT
7. Select an **Action** that will be performed by import. Insert option would only insert new values into database and ignore other values that are already present in the database. Update option would only update existing entities and ignore new entities. Insert and Update would perform both operations.
8. Select **Encoding** of your files. By default you can set it to Auto, but if you encounter any issues during your imports, you might need select it manualy.
9. **Admin Coment** serves only informational purpose to other website administrators about this template and can be left emply.
10. If needed, you can **enable backup** of files that were used for import.&#x20;

{% hint style="info" %}
You can't change entity after initialization of a template
{% endhint %}

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FkSBY99yOCIL6wce3xhTh%2Fbrave_bi2Y5mDOLK.png?alt=media&amp;token=a56c948b-952c-474c-b1b5-5a841f4c2687" alt=""><figcaption><p>Template setup</p></figcaption></figure>


# Import Settings

Import settings tab contains basic settings for your file

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FGseP80GDQJUMbvW7l3bk%2Fbrave_4avmJsbITZ.png?alt=media&amp;token=13f2a146-5252-4657-ac44-d5880a187a29" alt=""><figcaption><p>Import Settings tab</p></figcaption></figure>

Let's look into Import Settings tab. You would find a variety of settings here that are related to format of your file.

The first settings is related to the first row of your spreadsheet file. Usually you would use first row for names of your columns and actual data would start in the second row and on. If this is the case, you need to check the first setting. This option is enabled by default.

Different filetypes use different symbols for delimiting columns. CSV (Comma Separated Values) files are using commas for this purpose. When saving your file you can also use semicolon or other symbol. Use your symbol in this setting for a correct import.

The next setting is also a part of CSV file format. Sometimes values in CSV file are wrapped in quotes, so that commas inside of values are not confused with commas that are delimiters. Input your enclosure for a correct input.

If you are importing some dates with times you would need to input your datetime format in the next field. For example `yyyy-dd-MM hh:mm tt` or `dd.MM.yyyy hh:mm:ss`.

Decimal delimiter is used when importing numbers. In some regions people use dots (for example 1.5), and in other people use commas (for example 1,5).

{% hint style="info" %}
Depending on entity that you are importing, you would find more settings under this tab. Refer to corresponding entity under [Column Mapping](/column-mappings) section for additional information about these settings.
{% endhint %}


# What is ID?

## What is ID

ID is a unique identifier of any entity (product, category, attribute, option, etc.) in nopCommerce.

IDs are usually hidden from users and admins, as they are used only in databases and code. Import Manager allows users to use these IDs to import different entities. Having control over IDs would give you a more scalable and structurized approach to managing your products.

## Where do I find my ID

Let's look at an example of finding an ID for existing product.

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FdwoXziSZfhfUwBBy6af4%2Fbrave_sXb7ZHd4t5.png?alt=media&amp;token=5e9358aa-eeb6-4ffe-8e42-3b23a5247e25" alt=""><figcaption><p>List of products in nopCommerce</p></figcaption></figure>

Here we have list of products in our Admin Panel. Let's find an ID of the first item.

**Click on Edit**

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FygFGusifpZluSvHYVXYf%2Fbrave_tPmSHv0oYI.png?alt=media&amp;token=f2d04748-0e64-4119-9bcf-ab8758c94c3c" alt=""><figcaption></figcaption></figure>

You would find ID in the address of the website, as shown on the screenshot.


# Column mappings

Column mapping  serves essential purpose of Import Manager recognizing your columns in your spreadsheet file

## Create a column mapping

You need to create a column mapping for every column in your spreadsheet that you would like to be imported. Column mappings can be created either by column names (in the first row of your spreadsheet document) or by column numbers.

Navigate to **Column Mappings** page of your template settings and scroll to **Add new record** section.

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FB06QJMk9CuQlzW55rLvI%2Fbrave_YBDrUec58P.png?alt=media&amp;token=4a2d8a02-d161-488a-87b3-cbafc7211dcc" alt=""><figcaption><p>Add new record section</p></figcaption></figure>

**Column source** is either the name of column or column number (starting with 0).

**Column destination** is the field that this column represents in your table.

| SKU  | Product name | Picture    |
| ---- | ------------ | ---------- |
| 0001 | Laptop       | laptop.png |
| 0002 | Phone        | phone.png  |

{% hint style="info" %}
In this sample table, SKU has column number 0, Product name has column number 1, and Picture has column number 2.
{% endhint %}

{% hint style="info" %}
In your table you can use TRUE or FALSE for boolean values. Also, you can use 1 or 0, true or false, t or f, True or False.
{% endhint %}

{% hint style="info" %}
Some column destinations support input of multiple values using | (vertical bar) symbol. Check page for your import target to see if these destinations support this input method.
{% endhint %}


# ACL Mapping

ACL Mapping is used to control permissions for your website

## Possible Entity Keys

ACL Mapping import templates supprot keys from entity that you are using mapping for.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

<table><thead><tr><th width="272">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key</td><td>The value that you selected as entity key for this template.</td></tr><tr><td>Customer role '&#x3C;Role Name>'</td><td>TRUE or FALSE value, whether to allow or remove access for this group of customers.</td></tr></tbody></table>

{% hint style="warning" %}
If you don't have ACL Mapping set up for this product/category/manufacturer, all groups would have access to this product. If you set up any restrictions, all, except groups with TRUE value, **will not have access**.
{% endhint %}

## Example table

This is an example table for ACL Mapping of Product

<table><thead><tr><th width="133">SKU</th><th width="220.33333333333331">Customer role 'Guests'</th><th>Customer role 'Administrators'</th></tr></thead><tbody><tr><td>001</td><td>TRUE</td><td>TRUE</td></tr><tr><td>002</td><td>FALSE</td><td>TRUE</td></tr><tr><td>003</td><td>FALSE</td><td>FALSE</td></tr></tbody></table>

{% hint style="info" %}
With the import above being the only ACL rules that are set up for products with SKU 001, 002 and 003, the following scenario would be executed. \
1\. Guests and Administrators would have access to Product 001, no other groups would have access.\
2\. Only Administrators would have access to Product 002.\
3\. Nobody would have access to Product 003.
{% endhint %}


# Category

Category is used to import or update Categories

## Possible Entity Keys

Category supprots ID or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two categories with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="info" %}
Altohugh category has many different column destinations, we would describe only ones that have special functionality.
{% endhint %}

<table><thead><tr><th width="213">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key (Category Id)</td><td>The value that you selected as entity key for this template.<br><br>If you selected <strong>Name as key</strong>, you can specify either full path, or most bottom category name. For example, <strong>Laptops>>Macbook</strong> or just <strong>Macbook</strong>. Note, if you are specifying full path, your parent category <em>must</em> exist, if category is newly created, it will be assigned to parent category automatically. If you are specifying most bottom category name, it <em>should</em> be unique.</td></tr><tr><td>Picture</td><td>File name of a picture (ex. phone.png), or URL to a picture, or full path on server.</td></tr><tr><td>Discount Name or ID</td><td>You can specify <strong>multiple discounts</strong> in one cell, you should use | (vertical bar) symbol for this. Example, <strong>20% off|30% off</strong> would apply 20% off and 30% off discounts.</td></tr></tbody></table>

{% hint style="info" %}
All other column destinations do not support inputing multiple values in one cell, and they don't support using multiple columns as well.
{% endhint %}

## Example Table

<table><thead><tr><th width="222">Category Name</th><th width="309">Picture</th><th>Show on home page</th></tr></thead><tbody><tr><td>Laptops</td><td>laptops.png</td><td>TRUE</td></tr><tr><td>Laptops>>Macbook</td><td>https://example.com/macbook.png</td><td>FALSE</td></tr><tr><td>Laptops>>Gaming</td><td>C:\Pictures\gaming.png</td><td>TRUE</td></tr></tbody></table>


# Cross-sell product

Cross-sell product is used to add Cross-sell products to your Products

## Possible Entity Keys

Product supprots ID, SKU, GTIN, Manufacturer part number or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two categories with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

<table><thead><tr><th width="231">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key (Product Key)</td><td>The value that you selected as entity key for this template.</td></tr><tr><td>Cross-sell product key</td><td>Product Key (that you selected as entity key for this template) of Cross-sell product.<br><br>You can specify <strong>multiple cross-sell products</strong> in one row using | (vertical bar) symbol. Example, <strong>001|002|003|004</strong> would add 001, 002, 003 and 004 products as cross-sell products.</td></tr></tbody></table>


# Localized Values

Localized Values templates are used to add different languages to your store

## Possible Entity Keys

Localized values import templates supprot keys from entity that you are using mapping for.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="info" %}
Altohugh category has many different column destinations, we would describe only ones that have special functionality.
{% endhint %}

<table><thead><tr><th width="231">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key</td><td>The value that you selected as entity key for this template.</td></tr><tr><td>LanguageId</td><td>ID, Name of a language, or Language Culture. <br><br>You need to create language in nopCommerce first. Go to Configuration -> Languages.</td></tr></tbody></table>


# Manufacturer

Manufacturer template is used to import Manufacturers

## Possible Entity Keys

Manufacturer supprots ID or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two manufacturers with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="info" %}
Altohugh category has many different column destinations, we would describe only ones that have special functionality.
{% endhint %}

<table><thead><tr><th width="231">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key (Manufacturer Id)</td><td>The value that you selected as entity key for this template.</td></tr><tr><td>Picture</td><td>File name of a picture (ex. phone.png), or URL to a picture, or full path on server.</td></tr><tr><td>Discount Name of ID</td><td>You can specify <strong>multiple discounts</strong> in one cell, you should use | (vertical bar) symbol for this. Example, <strong>20% off|30% off</strong> would apply 20% off and 30% off discounts.</td></tr></tbody></table>

{% hint style="info" %}
All other column destinations do not support inputing multiple values in one cell.
{% endhint %}

## Example Table

<table><thead><tr><th>Key (Name)</th><th width="276.3333333333333">Picture</th><th>Discount</th></tr></thead><tbody><tr><td>Dell</td><td>dell.png</td><td>20% off</td></tr><tr><td>Apple</td><td>C:\Pictures\apple.png</td><td>30$ off</td></tr><tr><td>Samsung</td><td>https://example.com/sam.png</td><td>10$ off|10% off</td></tr></tbody></table>


# Product

Product is used to import or update Products

## Possible Entity Keys

Product supprots ID, SKU, GTIN, Manufacturer part number or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="info" %}
Altohugh product has many different column destinations, we would describe only ones that have special functionality.
{% endhint %}

<table><thead><tr><th width="197">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key (Product Key)</td><td>The value that you selected as entity key for this template.</td></tr><tr><td>Picture</td><td><p>File name of a picture (ex. phone.png), or URL to a picture, or full path on server.<br></p><p>If such <strong>file doesn't exist</strong> or cell is emply, a picture will not be added, and no errors will be issued. <br></p><p>You can use Picture <strong>several times</strong> in one feed file to add several pictures.</p></td></tr><tr><td>Picture Alt attribute</td><td>Picture Alt Attribute. If you import <strong>multiple pictures in one row</strong>, this attribute will be assigned to all of them. You can't use multiple columns of this attribute.</td></tr><tr><td>Picture Title attribute</td><td>Picture Title Attribute. If you import <strong>multiple pictures in one row</strong>, this attribute will be assigned to all of them. You can't use multiple columns of this attribute.</td></tr><tr><td>Picture Display Order</td><td>Picture Display Order. If you import <strong>multiple pictures in one row</strong>, this attribute will be assigned to all of them. You can't use multiple columns of this attribute.</td></tr><tr><td>Category Name or ID</td><td><p>You can specify <strong>multiple categories</strong> in one cell, you should use | (vertical bar) symbol for this. Example, <strong>Laptops|Macbook</strong> would assign to category Laptops and Macbook.<br></p><p>If you are inputing category name, it can be either <strong>full category path</strong>, or the <strong>most bottom level</strong> category name. So, you can enter either <em>Portable>>Phone>>Android</em> or just <em>Android</em>. Note, if you are entering just bottom level category name, it must be unique.</p></td></tr><tr><td>Manufacturer Name or ID</td><td>You can specify <strong>multiple manufacturers</strong> in one cell, you should use | (vertical bar) symbol for this. Example, <strong>Dell|Apple</strong> would assign to manufacturer Dell and Apple.</td></tr><tr><td>Discount Name or ID</td><td>You can specify <strong>multiple discounts</strong> in one cell, you should use | (vertical bar) symbol for this. Example, <strong>20% off|30% off</strong> would apply 20% off and 30% off discounts.</td></tr><tr><td>Specification Attribute '&#x3C;Attribute Name>'</td><td>You shuld specify Options for this specification attribute. You can specify <strong>multiple Options</strong> with | (vertical bar) symol.</td></tr></tbody></table>

{% hint style="warning" %}
Below you would find some constants that represent different values for some Column Mappings. Use *these* values in your cells during imports.
{% endhint %}

<table><thead><tr><th width="201">Column Destination</th><th>Constants</th></tr></thead><tbody><tr><td>Product type</td><td>For <strong>Simple Product</strong> use value <strong>5</strong><br>For <strong>Grouped Product</strong> use value <strong>10</strong></td></tr><tr><td>Backorders</td><td>For <strong>No Backorders</strong> use value <strong>0</strong><br>For <strong>Allow Qty Below 0</strong> use value <strong>1</strong><br>For <strong>Allow Qty Below 0 And Notify Customer</strong> use value <strong>2</strong></td></tr><tr><td>Download activation type</td><td>For <strong>When Order Is</strong> Paid use value <strong>0</strong><br>For <strong>Manualy</strong> use value <strong>10</strong></td></tr><tr><td>Gift card type</td><td>For <strong>Virtual</strong> use value <strong>0</strong><br>For <strong>Physical</strong> use value <strong>1</strong></td></tr><tr><td>Low stock activity</td><td>For <strong>Nothing</strong> use value <strong>0</strong><br>For <strong>Disable Buy Button</strong> use value <strong>1</strong><br>For <strong>Unpublish</strong> use value <strong>2</strong></td></tr><tr><td>Inventory method</td><td>For <strong>Dont Manage Stock</strong> use value <strong>0</strong><br>For <strong>Manage Stock</strong> use value <strong>1</strong><br>For <strong>Manage Stock</strong> By Attributes use value <strong>2</strong></td></tr><tr><td>Cycle Period</td><td>For <strong>Days</strong> use value <strong>0</strong><br>For <strong>Weeks</strong> use value <strong>10</strong><br>For <strong>Months</strong> use value <strong>20</strong><br>For <strong>Years</strong> use value <strong>30</strong></td></tr><tr><td>Rental period length</td><td>For <strong>Days</strong> use value <strong>0</strong><br>For <strong>Weeks</strong> use value <strong>10</strong><br>For <strong>Months</strong> use value <strong>20</strong><br>For <strong>Years</strong> use value <strong>30</strong></td></tr></tbody></table>

{% hint style="info" %}
All other column destinations do not support inputing multiple values in one cell, and they don't support using multiple columns as well.
{% endhint %}

## Example Table

<table><thead><tr><th width="134">Key (SKU)</th><th width="140">Name</th><th>Picture</th><th>Category</th></tr></thead><tbody><tr><td>001_A</td><td>IPhone 12</td><td>iphone12.png</td><td>Phone>>IPhone</td></tr><tr><td>002_A</td><td>IPhone 13</td><td>https://example.com/iphone13.png</td><td>IPhone</td></tr><tr><td>003_A</td><td>IPhone 14</td><td>C:\Pictures\iphone14.png</td><td>IPhone|New Products</td></tr><tr><td>004_M</td><td>Macbook Air</td><td>macbookair.png</td><td>Laptops>>Apple</td></tr><tr><td>005_M</td><td>Macbook Pro</td><td>macbookpro.png</td><td>Laptops>>Apple | Laptops>>High end</td></tr></tbody></table>


# Product Attribute

Product Attribute template is used to import Product Attributes

## Possible Entity Keys

Product Attribute supprots ID or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two product attributes with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Product Attribute Combinations

Product Attribute Combinations allows to import pictures, prices, etc. for different Product Attribute Combinations

{% hint style="danger" %}
You must import [product attributes](/column-mappings/product-attribute), then [assign these product attributes to products](/column-mappings/product-attribute-mapping), and then [assign values to these product attributes in products](/column-mappings/product-attribute-value) before using this template.
{% endhint %}

## Possible Entity Keys

Product Attribute Combanitions supprots ID, SKU, GTIN, Manufacturer part number or Name of Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Product Attribute Mapping

Product Attribute Mapping is used to assign Product Attributes to Products

{% hint style="danger" %}
Before Assigning Product Attributes, you need to [create Product Attribute](/column-mappings/product-attribute).
{% endhint %}

## Possible Entity Keys

Product Specification Attribute supprots ID, SKU, GTIN, Manufacturer part number or Name of your Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="warning" %}
Below you would find some constants that represent different values for some Column Mappings. Use *these* values in your cells during imports.
{% endhint %}

<table><thead><tr><th width="213">Column Destination</th><th>Constants</th></tr></thead><tbody><tr><td>Control Type</td><td>For <strong>Dropdown List</strong> use value <strong>1</strong><br>For <strong>Radio List</strong> use value <strong>2</strong><br>For <strong>Checkboxes</strong> use value <strong>3</strong><br>For <strong>Textbox</strong> use value <strong>4</strong><br>For <strong>Multiline Textbox</strong> use value <strong>10</strong><br>For <strong>Datepicker</strong> use value <strong>20</strong><br>For <strong>File Upload</strong> use value <strong>30</strong><br>For <strong>Color Squares</strong> use value <strong>40</strong><br>For <strong>Image Squares</strong> use value <strong>45</strong><br>For <strong>Readonly Checkboxes</strong> use value <strong>50</strong></td></tr></tbody></table>


# Product Attribute Value

Product Attribute Value allows to import Values for Product Attributes for a Product

{% hint style="danger" %}
You must import [product attributes](/column-mappings/product-attribute), then [assign these product attributes to products](/column-mappings/product-attribute-mapping) before using this template.
{% endhint %}

## Possible Entity Keys

Product Attribute Value supprots ID, SKU, GTIN, Manufacturer part number or Name of Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="warning" %}
Below you would find some constants that represent different values for some Column Mappings. Use *these* values in your cells during imports.
{% endhint %}

<table><thead><tr><th width="213">Column Destination</th><th>Constants</th></tr></thead><tbody><tr><td>Attribute Value</td><td><p><strong>0</strong> or <strong>Simple</strong></p><p><strong>10</strong> or <strong>AssociatedToProduct</strong></p></td></tr></tbody></table>


# Product Category mapping

Product Category mapping allows to add Categories to existing Products.

{% hint style="danger" %}
You must create [Products ](/column-mappings/product)and [Categories ](/column-mappings/category)before you can assign products to these categories. This template **will not** create Products, if such don't exist.
{% endhint %}

## Possible Entity Keys

Product Category mapping supprots ID, SKU, GTIN, Manufacturer part number or Name of Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Predefined Product Attribute Values

Predefined Product Attribute Values mapping allows to add Predefined Values for Product Addributes.

## Possible Entity Keys

Predefined Product Attribute Values mapping supprots ID, Value of Product Attribute.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Localized Predefined Product Attribute Values

Localized Predefined Product Attribute Values mapping allows to add Localized Predefined Values for Product Addributes.

## Possible Entity Keys

Predefined Product Attribute Values mapping supprots ID, Value of Product Attribute.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Product Manufacturer mapping

Product Manufacturer mapping allows to add Manufacturers to existing Products.

{% hint style="danger" %}
You must create [Products ](/column-mappings/product)and [Manufacturers](/column-mappings/manufacturer) before you can assign products to these categories. This template **will not** create Products, if such don't exist.
{% endhint %}

## Possible Entity Keys

Product Category mapping supprots ID, SKU, GTIN, Manufacturer part number or Name of Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Product Picture

Product Picture allows you to add multiple pictures to your products.

{% hint style="danger" %}
You must create [Products ](/column-mappings/product)before you can add pictures to them. This template **will not** create Products, if such don't exist.
{% endhint %}

{% hint style="info" %}
You need to add every picture in different row to your import file. Product keys can repeat themselves in different rows.
{% endhint %}

## Possible Entity Keys

Product Picture supprots ID, SKU, GTIN, Manufacturer part number or Name of Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Product Specification Attribute

Product Specification Attribute is used to assign Specification Attributes to Products

{% hint style="danger" %}
Before Assigning Specification Attributes, you need to [create Specification Attribute](/column-mappings/specification-attribute).
{% endhint %}

## Possible Entity Keys

Product Specification Attribute supprots ID, SKU, GTIN, Manufacturer part number or Name of your Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="warning" %}
Below you would find some constants that represent different values for some Column Mappings. Use *these* values in your cells during imports.
{% endhint %}

<table><thead><tr><th width="213">Column Destination</th><th>Constants</th></tr></thead><tbody><tr><td>Attribute Type</td><td>For <strong>Option</strong> use value <strong>0</strong><br>For <strong>Custom Text</strong> use value <strong>10</strong><br>For <strong>Custom HTML Text</strong> use value <strong>20</strong><br>For <strong>Hyperlink</strong> use value <strong>30</strong></td></tr></tbody></table>


# Product Tag

Product Tag allows to add Tags to existing Products.

{% hint style="danger" %}
You must create [Products ](/column-mappings/product)and Tags before you can assign tags to these products. This template **will not** create Products, if such don't exist.
{% endhint %}

## Possible Entity Keys

Product Tag supprots ID, SKU, GTIN, Manufacturer part number or Name of Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Related Product

Related product is used to add Related products to your Products

## Possible Entity Keys

Product supprots ID, SKU, GTIN, Manufacturer part number or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

<table><thead><tr><th width="231">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key (Product Key)</td><td>The value that you selected as entity key for this template.</td></tr><tr><td>Related product key</td><td>Product Key (that you selected as entity key for this template) of Related product.<br><br>You can specify <strong>multiple related products</strong> in one row using | (vertical bar) symbol. Example, <strong>001|002|003|004</strong> would add 001, 002, 003 and 004 products as related products.</td></tr></tbody></table>


# Specification Attribute

Specification Attribute is used to import or update specification attributes

## Possible Entity Keys

Specification Attribute supprots ID or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two specification attributes with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

{% hint style="info" %}
Altohugh category has many different column destinations, we would describe only ones that have special functionality.
{% endhint %}

<table><thead><tr><th width="213">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key (Specification Id)</td><td>The value that you selected as entity key for this template.</td></tr></tbody></table>


# Specification Attribute Option

Specification Attribute Option is used to add options to specification attributes

{% hint style="danger" %}
Before creating options, you need to [create Specification Attribute](/column-mappings/specification-attribute).
{% endhint %}

## Possible Entity Keys

Specification Attribute Option supprots ID or Name as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two specification attributes with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# Store Mapping

Store Mappnig is used to control permissions for your website

## Possible Entity Keys

Store Mapping import templates supprot keys from entity that you are using mapping for.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}

## Column Destinations

<table><thead><tr><th width="272">Column destination</th><th>Explanation</th></tr></thead><tbody><tr><td>Key</td><td>The value that you selected as entity key for this template.</td></tr><tr><td>Store '&#x3C;Store Name>'</td><td>TRUE or FALSE value, wether to show this product in this store.</td></tr></tbody></table>

{% hint style="warning" %}
If you don't have Store Mapping set up for this product/category/manufacturer, all stores would show this product. If you set up any restrictions, all, except stores with TRUE value, **will not have access**.
{% endhint %}

## Example table

This is an example table for ACL Mapping of Product

<table><thead><tr><th width="133">SKU</th><th width="220.33333333333331">Store 'My store 1'</th><th>Store 'My store 2'</th></tr></thead><tbody><tr><td>001</td><td>TRUE</td><td>TRUE</td></tr><tr><td>002</td><td>FALSE</td><td>TRUE</td></tr><tr><td>003</td><td>FALSE</td><td>FALSE</td></tr></tbody></table>

{% hint style="info" %}
With the import above being the only Store mapping rules that are set up for products with SKU 001, 002 and 003, the following scenario would be executed. \
1\. Store 1 and 2 would have product 001. No other store would have it.\
2\. Only store 2 would have product 002.\
3\. No store would have product 003.
{% endhint %}


# Tier Price

Tier Price allows you to set up tier prices for your products

{% hint style="danger" %}
You must create [Products](/column-mappings/product) before you can assign tier prices to these products. This template **will not** create Products, if such don't exist.
{% endhint %}

## Possible Entity Keys

Tier Price supprots ID, SKU, GTIN, Manufacturer part number or Name of Product as entity key.

{% hint style="warning" %}
Your entity key must be unique. If you have two products with same Name fields, you will not be able to use Name as entity key.
{% endhint %}


# File Sources

Import Manager support different file sources: uploading a file, direct URLs, server paths or FTP. In this section we would show on how to set up a file source

{% hint style="danger" %}
**Before specifying File Sources you need to set up** [**Column Mappings**](/column-mappings) **and fully configure your template**
{% endhint %}

{% hint style="info" %}
Usually you would use only one file (we call it feed file) for your imports, the main spreadsheet, CVS, or XML file. But if you need to import pictures, you need to use ZIP files or folders.
{% endhint %}

{% content-ref url="/pages/nl7RHgiqfPPKtCTQTadh" %}
[Upload a File](/file-sources/upload-a-file)
{% endcontent-ref %}

{% content-ref url="/pages/6wjGtSlAe3cQMf0oK1EB" %}
[Upload a ZIP-file](/file-sources/upload-a-zip-file)
{% endcontent-ref %}

{% content-ref url="/pages/86m1DKEtUIUKKzLoXIdM" %}
[URL](/file-sources/url)
{% endcontent-ref %}

{% content-ref url="/pages/FcsUDbqGeHNI2HjSccgb" %}
[Server folder or file](/file-sources/server-folder-or-file)
{% endcontent-ref %}

{% content-ref url="/pages/S855b3DJWI6rWqiBPFto" %}
[FTP, SFTP, FTPS](/file-sources/ftp-sftp-ftps)
{% endcontent-ref %}


# Upload a File

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FUfRrQrCkqxItgktrJwxV%2Fbrave_Hx0gD11df7.png?alt=media&amp;token=2d4d2fc6-1583-4485-aeaf-114d113b47bf" alt=""><figcaption><p>Uploading a file</p></figcaption></figure>

This is the most easiest way to import entities using Import Manager. You just need to select **Upload a file** in the **Source of file(s)** menu and click on Choose file. Locate the feed file on your computer and click Upload. After that you can scroll to the top and click on **Import Now** to execute the import or on **Emulate Import** to test your import.


# Upload a ZIP-file

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FL2RNXKAHNXD6yrlPJJGb%2Fbrave_hjYCBoCtTD.png?alt=media&amp;token=b227814b-9a38-4322-b2d2-f2bdf0b37051" alt=""><figcaption><p>Uploading a ZIP-file</p></figcaption></figure>

ZIP archive can contain many files for your import. Along with main feed file you can add photos that will be uploaded to your website. Uploading a ZIP-file procedure is simiral to [Uploading a file](/file-sources#upload-a-file).

{% hint style="info" %}
ZIP file can contain many feed files, in this case these files will be united into one file by Import Manager and imported.
{% endhint %}


# URL

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FNGmJ2GbfeGutJkzlMzbQ%2Fbrave_t7qBtsZxaw.png?alt=media&amp;token=7557e266-5e3d-469f-9612-55179cf78995" alt=""><figcaption><p>Using URL as a File Source</p></figcaption></figure>

Using URL you can import only one feed file without any images. After you select URL as your File Source, input your direct URL and make sure to **Save** your template before import. After that you can click on **Import Now** to execute an import.

{% hint style="warning" %}
URL must be a direct URL to a file, so, for example, a URL to a Google Spreadsheet **would not** work.
{% endhint %}

{% hint style="warning" %}
ZIP files are not supported for imports via URLs.&#x20;
{% endhint %}


# Server folder or file

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FHb0JAEekltNDCjhBhX0w%2Fbrave_I06fNnBNBc.png?alt=media&amp;token=c459fb19-2633-4a9c-9bb7-a6cc27ab8f58" alt=""><figcaption><p>File sources section</p></figcaption></figure>

You can import file(s) or entire folder from your server. Select **Folder** as File Source and input full path to your file/folder. Here are several examples:

* To import a single file `C:\SomeFolder\AnotherFolder\file.csv`
* To import all csv files in a folder `C:\SomeFolder\AnotherFolder\*.csv`
* To import all csv files that start with product `C:\SomeFolder\AnotherFolder\product*.csv`
* To import all files from a folder `C:\SomeFolder\AnotherFolder`

{% hint style="info" %}
You can have pictures along with feed file in a folder that you are importing
{% endhint %}

{% hint style="warning" %}
If you use IIS, make sure that IIS has permission to access this folder on your server
{% endhint %}


# FTP, SFTP, FTPS

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2FzkPMz37G7TlC1lZ6UNzh%2Fbrave_Xyo5qWSHUC.png?alt=media&amp;token=cd8632a1-9c8c-46c0-aa6f-841a08cde55e" alt=""><figcaption><p>Using FTP as a File Source</p></figcaption></figure>

Select **FTP** in File Source, you would see fields to input your FTP credentials and to input path to your feed file on FTP server. You can use paths similar to [importing folder from server](#server-folder-or-file). After you input your credentials, click on **Check FTP connection** to validate your credentials, and then you can **Save** your template.


# Scheduling imports

Import Manager allows users to schedule imports. If you schedule import of a given template, it would execute at this time.

{% hint style="danger" %}
You can schedule imports only for following file sources: URL, Server folder or file, FTP, SFTP, FTPS.
{% endhint %}

## When is this useful

You can set up automatic exports from other software solutions that you use for e-commerce and enable scheduled imports in Import Manager. So, if you add a product in other place, it would automatically import to nopCommerce.

This tool provides endless spectrum of automation that you can perform.

## How to schedule an import

In order to schedule an import you should go to **Scedule Settings** tab of your import template.

<figure><img src="https://1316799053-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJUgglNpaUYIABSWTFnzb%2Fuploads%2F3XZVYAZtCTDvnDUZBsoa%2Fbrave_MhkZTUi1BI.png?alt=media&amp;token=a687b45f-ba48-4d04-94e4-be1f4d188403" alt=""><figcaption><p>Schedule Settings tab</p></figcaption></figure>

Enable Scheduler

Select times and weekdays that you would like your import to run, and click Save

Now your import will run automatically at the given time and day


