It is possible to import products using a semi-colon separated file (.csv) or an Excel (.xls) file, we recommend the use of Excel files over csv files.
This feature is available in the "Actions"-menu in the header of the product grid panel.
You can also choose to import products to a specific node by right-clicking on the node to open the context menu, and there choosing the import option.
When selecting "Import products" you are presented with this dialog:
The "Path:" field shows the path where the products are imported to. In the example image, the imported products will be added as subnodes/subproducts under Products/Fruits.
The best way to perform the import is to download the sample data file and then make sure that the file that contains the products that you would like to import, has the same format.
Formatting of the sample import file:
The first two rows of the sample file contains the names of the product fields:
- The first row contains the names you see (for example, if you use a language other than English).
- The second row contains the "Internal" name of the field for the purposes of the import function. This must be an exact match to the value in the sample file.
When you have selected a file and clicked on "Upload file" this preview dialog will be shown.
It is important that you validate the data and if it looks ok, just click on Save and the products will be imported.
At least one of these fields are mandatory:
If an Item Id is specified, and it already exists in the product/CMDB tree, then that product/ConfigItem will be updated, even if the name or path does not match. In this case, Name and/or path will be updated from the import file. This can be used as a way to rename existing products/ConfigItems. If the path in the import file is different from the existing product, then the existing product will be moved to that parent product/ConfigItem.
If Item Id is not specified, but a product/ConfigItem with the same Name and Path exists (and it does not have item id) then the system will match on path and name to update the existing product/ConfigItem with the import data.
- If you have specified a product name/path that doesn't exist, the product will be created with the specified path.
- The field Item Id has to be unique and if an item Id in the import file already exists, that existing product will be updated with data from the import file.
- For the .CSV import, you need to think about this:
- Make sure that the file is a plain text file with the .csv extension. Microsoft Excel sometime inserts invisible control characters when saving in its own csv-format, so make sure that you export any excel file to plain .csv.
- When creating the import file it is probably best to use a normal text editor (or a program that generates the import file), it can be problems with Excel sometimes.
- Make sure the encoding is UTF-8. Using another encoding like Dos/Windows ANSI, will mess up any national characters not present in English (diacritics, umlauts etc.).
- Make sure you use the correct names of the column headers in the imported file. These are the standard field names in the import (custom fields are also importable):
- name - name of the product. Mandatory.
- configItemPathOnly - the path of the product. Subnodes are separated with a slash: AAA/BBB/CCC. The path can begin with a slash or not. If nothing is specified, or just "/", then the CI will be imported to just under the root.
- identityWithPrefix - the itemId field in plain text, including the prefix, such as 'CI-12345'. If you have this in the import, other things like name and path can be changed on an existing CI. Otherwise, it creates a new CI with the same name.
- configItemTag - the Tag field in plain text
- configItemStatus- the status that the product/configItem has. Mandatory if the column is included.
- startDate - the start date for the product
- endDate - then end date for the product
- configItemType - the type of product/configItem
- createdDate - if this is set, and in the past - then this will be set as the create date on the product. If it is not set, the time of the import will be set as the creation date.
- createdBySystemUserName - the username of the user that created the product/CI. If this is not set (and the import would create a product rather than update an existing one), then this will be set with the user that performed the import.
- supplierName - the Company in the supplier field. This is the company that supplied/sold the item to you, if applicable.
- manufacturerName - the Company in the manufacturer field. This is the company that made the item, if applicable.
- ownerSystemUserName - the username of the Owner of the product.
- usedBySystemUserName - the username of the User of the product
- usedByCompanyName - the Company that is User of the product.
- purchaseDate - the date the product/configItem was purchased, if applicable
- criticality - the criticality field
- description - the text of the description area
- location.XXX - these fields are showing data for the location object specified for Location. Examples are location.name (the general name of the location), location.address1, location.city, location.phone etc.
- Importing other fields not mentioned: Create a custom field on Product, and make sure the column in the import file has the same name, and that the values make sense (i.e conform to the allowed values for the field, if any).
Warning: Currently it is not a good idea to make a .csv-export of products from the products page, and to use that as basis for the import file. Excel export/import is generally a better bet.
- The exported csv file is comma-separated and the columns have the same names as the fields shown on Product (which may have been customized in settings, or be in another language - which the system currently cannot handle.).
- The real sample import file available in the import dialogue is semicolon separated and have the column names shown above.