Many Internet stores feature product catalogs that include hundreds and sometimes thousands of products. For this reason, ProductCart includes a powerful Product Import Wizard, which allows you to quickly populate your product catalog (database) by importing information from an existing product database or data file. The Product Import Wizard:
Properly preparing your import file prior to importing it into ProductCart can save you a lot of time (and headaches). The vast majority of technical support requests that we receive from customers that are using the Import Wizard are due to improper formatting of the file to be imported. For example, users often forget to define the import range in their Microsoft Excel file (please see below for details on how to do so).
ProductCart supports importing from the following file types:
Importing a product database into ProductCart requires the following steps:
ProductCart’s Import Wizard will guide you through the process step by step, as explained later in this section. First, however, you will have to spend a little time formatting the file so that it can be seamlessly imported into ProductCart.
Carefully review the requirements for each field so that you will not run into conflicts when mapping the fields. In addition, we strongly recommend that you remove columns that do not contain data, so that the file that you upload to ProductCart is smaller in size and mapping is less confusing. And you may also want to rename the column headings so that they can easily be recognized when mapping the fields.
Regardless of which file type you plan to use during the import, it is very important that you make sure your file is formatted properly prior to importing into ProductCart.
If you are importing an Excel file, the following steps MUST be taken in order for the import to be successful.
By default, ProductCart limits the import to 3,000 records when using an Excel spreadsheet. This is done to avoid performance issues when importing MS Excel files. You can either setup your MS Excel file to have 3,000 rows or less (therefore splitting larger files into smaller spreadsheets), or you can remove the limitation in ProductCart.
If you decide to try to import more than 3,000 records at the same time, do the following to edit the source code:
<% iPageSize=3000
If you are running into performance issues (e.g. the script times out), reduce the amount of records that you are trying to import.
The Excel import feature requires a named range and the range must be named “IMPORT. To do this, select (highlight) the entire data range (columns and rows) that you want to import (including the top row, which should contain the field names), and then…
Here is an example of what the IMPORT range should look like (it must contain all cells that are part of the IMPORT, including the header or top row – such as the shaded area in the example below).
You can either import new product data or update/append data to an existing product database. For example, if you need to update the list price of 300 existing products in your store, you could import a file that only contains the SKU and the updated price. If you wish to update/append data, select that option during the import procedure: the Import Wizard will prompt you to make a selection after you have uploaded your data file to the system.
ProductCart will use the SKU (part number) field as the product identifier and update database records whose SKU is an exact match with the data that you are importing (note: the SKU field is not case sensitive). If the SKU is not an exact match, a new product (database record) will be added (in which case it must also contain the 3 additional required fields mentioned below). If there are multiple products in your catalog with the same SKU (which is a scenario that is not recommended), ProductCart will update the first one it finds in the products table.
Since the import file can only specify a category and its parent, you cannot create a category tree that is more than 2 levels deep through the Import Wizard. Instead, you should use the Category Import Wizard. You can then assign products to categories using the Product Import Wizard. In other words, the recommend strategy is:
Although ProductCart includes an “Undo Import” feature that allows you to go back to the way the product database was before the import, we still recommend that you BACK UP your existing store database before performing a substantial import or update procedure, which would be difficult to undo manually.
If your store uses a MS Access database, you can simply download the *.mdb data file to your computer. If your store uses a SQL database, inquire with your Web hosting company about how you can have your database backed up and restored (this is probably done automatically on a regular basis, but inquire about on-demand back-ups).
The following table contains detailed specifications for each field that can be imported. Notes:
| Field Name | Data Type | Required | Comments |
|---|---|---|---|
| SKU | Text | Yes | Product part number. Text string (alphanumeric characters). Max characters: 50 (Access), 100 (SQL). Do not use underscores “_” in the SKU. Used as product identifier when updating data: only if SKU is an exact match data is updated. |
| Name | Text | Yes if new | Product name. Max 255 characters. |
| Description | Text | Yes, if new | Product description. It can contain HTML tags. Max characters: unlimited (Access and SQL). Note: do not use HTML code created by MS Word as it may create conflicts. |
| Short Description | Text | The purpose of the Short Description is to allow the display of a few key lines of product information on the product details page while keeping the “Add to Cart” button above the fold. The Short Description is also used by all of the category display options with the exception of the horizontal product layout. | |
| Product Type | Text | For standard products, leave blank. For downloadable products, enter “DP” (without the quotes). For Build To Order products, enter “BTO” (without the quotes). For Build To Order Items, enter “ITEM” (without the quotes). There is a separate section below that expands on the Product Type. | |
| Online Price | Number | Yes, if new | This is the product price. Required if you are importing new products. It can be zero. If importing a BTO product, this is the base price (see the Build To Order documentation for more). |
| List Price | Number | This can be shown on the store below the product price, stricken through, when the Show Savings setting is set to true (-1). | |
| Wholesale Price | Number | Optional price for wholesale customers. | |
| Weight | Number | Weight in ounces or grams, depending on how the store has been setup upon activation. E.g. for 4 pounds, enter 64. For 5 Kg, enter 5000. | |
| Stock | Number (Integer) | Stock level. If empty or zero make sure to set the store to ignore inventory settings. You can also set this properly on a product by product basis. | |
| Category name | Text | Name of the first Category to which the product is assigned (vs. the additional categories mentioned below). All products must be assigned to at least one category. If blank, the product is placed in a temporary category. If it doesn't match an existing category name, a new category is created. If not category is specified, products are imported into a temporary category and a message is displayed at the end of the Import Wizard. Max characters: 50 (Access), 100 (SQL). | |
| Short category description | Text | Provides information on the subcategories that the category might contain. It can contain HTML tags. Max characters: unlimited (Access and SQL). Note: do not use HTML code created by MS Word as it may create conflicts. See later in this chapter for more details on category descriptions. | |
| Long category description | Text | Provides information on the products that the category contains. It can contain HTML tags. Max characters: unlimited (Access and SQL). Note: do not use HTML code created by MS Word as it may create conflicts. | |
| Category Small Image | Text | Refers to the main Category. File name, no path. All images should be uploaded to the “pc/catalog” folder. Small image displayed when users browse the store, only if the “Display category images” feature is on. | |
| Category Large Image | Text | Refers to the main Category. File name, no path. All images should be uploaded to the “pc/catalog” folder. Larger image displayed only with display options that require it. | |
| Parent Category | Text | If blank, the main Category is placed in the root. If it matches an existing category, then the main Category is imported as a subcategory of that Parent. If it doesn’t match any existing category, a new Parent category is created in the root, and the main Category is assigned to it. | |
| Additional Category 1 | Text | Assigns the Product to an additional category. If the category does not exist, a new category is created. | |
| Parent Category 1 | Text | Parent category for Additional Category 1. If blank and Additional Category 1 is not blank, Additional Category 1 is added to the root. If it matches an existing category, then Additional Category 1 is imported as a subcategory of that category. If it doesn’t match, a new Parent category is created in the root, and Additional Category 1 is assigned to it. | |
| Additional Category 2 | Text | Assigns the Product to an additional category. If the category does not exist, a new category is created. | |
| Parent Category 2 | Text | Parent category for Additional Category 2. If blank and Additional Category 2 is not blank, Additional Category 2 is added to the root. If it matches an existing category, then Additional Category 2 is imported as a subcategory of that category. If it doesn’t match, a new Parent category is created in the root, and Additional Category 2 is assigned to it. | |
| Brand Name | Text | If blank, product is not assigned to a brand. If it doesn’t match an existing brand, a new brand is created. | |
| Brand Logo | Text | File name, no path. All images should be uploaded to the “pc/catalog” folder. Shows on Browse by Brand page when “Show Brand Logo” option is turned on. | |
| Thumbnail Image | Text | Product thumbnail image. Recommended size is 100 x 100 pixels or less. Jpeg or GIF. Both file name and paths are accepted: the import wizard automatically retrieves the file name from a path. All images should be uploaded to the “pc/catalog” folder. | |
| General Image | Text | Product image displayed on the product details page. Recommended size is 200 x 200 pixels or less. Same as above. | |
| Detail view Image | Text | Product image displayed on the product details page via the “Zoom” feature. Any size. Same as above. | |
| Active | True/Yes = -1 False/No = 0 | Whether the product is active. If blank, it defaults to “True”. | |
| Show savings | True/Yes = -1 False/No = 0 | Whether the store should show the difference between Online and List Price. If blank, it defaults to “True”. | |
| Special | True/Yes = -1 False/No = 0 | Whether the product should be added to the list of Specials. If blank, it defaults to “False”. | |
| Option1 | Text | Name of the first option group (e.g. “Size”). If blank, the following two fields are ignored. If it’s not a match in the database, a new option group is created. | |
| Option1 Attributes | Text | The attribute(s) within the group (e.g. “Small”, “Medium”, “Large”). Use the format explained in the section “Importing Product Options”. | |
| Option1 Required | True/Yes = 1 False/No = 0 | Whether customers are required to select an attribute from this option group. | |
| Option2 (to Option5) | Text | Same requirements as the Option1 field. You can import up to 5 option groups using the Import Wizard | |
| Option2 (to Option5) Attributes | Text | Same as the Option1 Attributes field | |
| Option2 (to Option5) Required | True/Yes = 1 False/No = 0 | Same as the Option1 Required field | |
| Reward Points | Number (Integer) | Reward Points that customers will accrue when purchasing this product. | |
| Non-taxable | True/Yes = -1 False/No = 0 | Whether the product is non-taxable. If blank, it defaults to “False”. | |
| No shipping | True/Yes = -1 False/No = 0 | Whether this is a shipping product. If blank, it defaults to “False”. | |
| Display no shipping text | True/Yes = -1 False/No = 0 | Whether the text indicating that this is a non-shipping product should be displayed. If blank, it defaults to “False”. | |
| Minimum Quantity | Number (Integer) | Minimum quantity customers have to purchase when they purchase this product. It can be used in conjunction with the “Enforce Multiple of Minimum” field. See later in this chapter for more details on this feature | |
| Enforce Multiple of Minimum | True/Yes = 1 False/No = 0 | Whether or not the quantity purchased should be a multiple of the minimum. Enter “1” to require a quantity that is a multiple of the minimum. The minimum quantity must be > 0 | |
| Not for sale | True/Yes = -1 False/No = 0 | Whether the product is not available for sale. If blank, it defaults to “False”. | |
| Not for sale copy | Text | Text description (e.g. Coming Soon). Only used if “Not for sale” option is set to True. | |
| Disregard Inventory | True/Yes = -1 False/No = 0 | Whether general inventory settings should not apply to the selected product. If the store is setup not to allow the purchase of out of stock items, the selected product can be purchased regardless of its inventory level, when option is set to True. If blank it defaults to “False”. | |
| Custom Search Field (1) | Text | Both field name and field values are imported. The column name must match the name of an existing Custom Search Field in your product database (or a new one is created). Learn more about importing Custom Search Fields. | |
| Custom Search Field (2) | Text | See above | |
| Custom Search Field (3) | Text | See above | |
| Oversized Product Details | Text | It must follow the format: N1xN2xN3 where N1, N2 and N3 are numbers (inches or centimeters) that correspond to the height, width, and length of the box in which the oversized product is shipped (e.g. 12x12x24). When the format is correct, the product is set as “Oversized” and the box dimensions are stored in the database. See the Shipping Options section for more information about shipping oversized products. | |
| Product Cost | Number | Optional field that can help in determining other prices via the Global Changes feature | |
| Back-Order | True/Yes = 1 False/No = 0 | Specifies whether backordering is allowed on this product or not. | |
| Ship Within N Days | Number (integer) | When the product is out of stock, but back-ordering is allowed, the customer is told when the product will likely be in stock again. | |
| Low Inventory Notification | True/Yes = 1 False/No = 0 | The store manager is notified when inventory drops below the Reorder Level | |
| Reorder Level | Number (integer) | Stock level that triggers the Low Inventory Notification | |
| Is Drop-Shipped | True/Yes = 1 False/No = 0 | Whether the product is drop-shipped or not. If it is, make sure to specify the drop-shipper or supplier ID (if the latter, make sure the supplier is also a drop-shipper). | |
| Supplier ID | Number (Integer) | ID of the supplier. This can be looked up in the Control Panel by using the “Locate a supplier” feature: look at the number in the left column of the search results page. | |
| Drop-Shipper ID | Number (Integer) | ID of the drop-shipper. This can be looked up in the Control Panel by using the “Locate a supplier” feature: look at the number in the left column of the search results page. | |
| Meta Tags: title | Text | “Title” meta tag. See this section of the User Guide for details on how meta tags are used. Max 250 characters. | |
| Meta Tags: description | Text | “Description” meta tag. Max characters: unlimited (Access and SQL) | |
| Meta Tags: keywords | Text | “Keywords” meta tag. Max characters: unlimited (Access and SQL) | |
| Enable Image Magnifier | True/Yes = 1 False/No = 0 | Whether the image magnifier is turned on | |
| Hide SKU | True/Yes = 1 False/No = 0 | Whether the SKU (part number) should be hidden on the product details page in the storefront | |
| Page Layout | Text | L = two columns, image on the left; R = two columns, image on the right; O = one column | |
| Product Notes | Text | Admin notes, not shown to the customer. Up to 4,000 characters. |
The following fields apply only if the Product Type is “DP” (Downloadable Products)
| Field Name | Data Type | Required | Comments |
|---|---|---|---|
| Downloadable File Location | Text | Enter the full path on the server’s hard drive to the downloadable file. For example: D:\web\my_account\my_files\file.zip | |
| Make Download URL Expire | True/Yes = 1 False/No = 0 | Enter 1 if you want the download URL to expire, otherwise enter 0. | |
| URL Expiration in Days | Number (Integer) | Enter the number of days you want the download URL to remain active. | |
| Use License Generator | True/Yes = 1 False/No = 0 | Enter 1 if you want to use a License Generator for this Product, otherwise enter 0. | |
| Local Generator | Text | If your Downloadable Product requires a License, enter the name of the file that generates this License (not the path). For example: myLicense.asp The file must be placed in the following folder: /ProductCart/pcadmin/licenses/ | |
| Remote Generator | Text | If your Downloadable Product requires a License that is generated by a Remote Server, enter the full HTTP path to the file on the remote server here. | |
| License Field Label 1 | Text | This is a field used to label information generated by your License Generator. For example: “License Key” | |
| License Field Label 2 | Text | This is a field used to label information generated by your License Generator. For example: “User Name” | |
| License Field Label 3 | Text | This is a field used to label information generated by your License Generator. For example: “Password” | |
| License Field Label 4 | Text | This is a field used to label information generated by your License Generator. For example: “Key ID” | |
| License Field Label 5 | Text | This is a field used to label information generated by your License Generator. For example: “Serial Number” | |
| Additional Copy | Text | This is the Additional Text that will be added to the e-mail confirmation sent to the customer. E.g. it can include installation instructions. |
The following fields apply only if you are importing a Gift Certificate
| Field Name | Data Type | Required | Comments |
|---|---|---|---|
| Gift Certificate | True/Yes = 1 False/No = 0 | Whether the product is Gift Certificate (1) or not (0) | |
| Gift Certificate Expiration | True/Yes = 1 False/No = 0 | Whether the Gift Certificate expires (1) or not (0) | |
| Expiration Date | Date/Time | When the Gift Certificate will expire (if it expires on a specific date). Format: use Format: DD/MM/YY or MM/DD/YY depending on your store settings. | |
| Expire N days | Number (integer) | When the Gift Certificate will expire (if it expires N days after the purchase date). Here you specify the number of days. | |
| Electronic Only | True/Yes = 1 False/No = 0 | Whether the Gift Certificate is electronic only (1) or a physical product that is shipped to the customer (0) | |
| Use Generator | True/Yes = 1 False/No = 0 | Whether the system will use the default Gift Certificate code generator (0) or a custom script (1). If custom, specify the name of the file in the following field. | |
| Custom Generator Filename | Text | Name of the file to be used to generate the Gift Certificate code (when the default generator is not used). Enter the file name (no path). Max 150 characters. The file must be located in the pcadmin/licenses folder. |
The following fields apply only if the Product Type is “BTO” (Build To Order Products).
| Field Name | Data Type | Required | Comments |
|---|---|---|---|
| Hide BTO Price | True/Yes = 1 False/No = 0 | Whether you want to hide (1) a BTO product’s default price (Base price + Default selections’ prices) or not (0). | |
| Hide Default Configuration | True/Yes = 1 False/No = 0 | Whether you want to hide (1) the list of default selections shown on the product details page (if there are any) or not (0). | |
| Disallow Purchasing | Values: 0, 1, 2 | Whether you want to only allow customers to save the product configuration. 0 = They can purchase 1 = They can’t purchase, prices are shown 2 = They can’t purchase, prices are hidden |
|
| Skip Product Details Page | True/Yes = 1 False/No = 0 | When a BTO product cannot be purchased “as is”, you can take customers directly to the product configuration page (1). |
The Import Wizard allows you to specify which type of product you are importing: a Standard Product, a Downloadable Product, a Build To Order Product, or a Build To Order Item (for more information about the difference between a BTO Product and BTO Item, please refer to Chapter 14). To specify the type of product that you are importing, use the following values in your import file, without the quotes:
ProductCart includes features that allow you to import product options with the rest of the product information. For example, imagine you are importing 100 different types of shoes, each with different sizes and colors. You can now do this directly when importing new products or appending data to your existing product database.
For each product, you can specify whether there will be one or two option groups, the attributes for each option group, and whether a selection is required. If the product catalog does not already contain an option group or option attribute matching the one(s) imported, a new option group and/or attribute is created.
Product option information is imported in 3 separate fields, for up to 5 option groups (ProductCart actually supports unlimited option groups, but the Import Wizard limits this feature to 5 mainly for performance reasons). The three fields must be formatted as shown below. The actual field names can of course be different from the ones listed below: you will just need to map it correctly during the field mapping step of the import process.
For example, assume you are importing 3 sizes: medium, large and x-large, and that you want them to appear in that order, and a price increase is associated with the x-large option (plus $5 for retail customers and plus $4.50 for wholesale customers). The field should contain the following string:
Medium*0*0*1*1**Large*0*0*2*1**X-Large*5*4.50*3*1
Once again, note how different option attributes are separated by a double asterisk (**), whereas individual settings for a certain attribute are separated by a single asterisk (*).
Repeat the same for the other option groups, if any.
This empty file includes all available fields, including the 5 option group fields. If you use this file as a starting point to create your import data file, make sure to remove any columns (fields) that you do not plan to import.
The column name in your spreadsheet will define the Custom Search Field (CSF) that you are importing. The string in the cell defines the Custom Search Field value. It does not matter which CSF variable you map a field to, as ProductCart will use the value in your column header. For example, if one of your CSFs is “Year”…. then make sure that the column header in your import file is “Year” and ProductCart will properly assign the 'value', regardless of whether you map the column to CSF (1), CSF (2) or CSF (3) during the mapping process.
NOTE:
If you are using the Apparel Add-on for ProductCart, you can now import apparel products settings when importing products into the database. In addition, you can now import “sub-products” via a separate import wizard. Please consult the Apparel Add-on User Guide for more information.
The Apparel Add-On gives stores using our ProductCart ecommerce software the ability to handle inventory for product variations (e.g. color/size combinations). This is something that is typical of the apparel industry (yep, that's why we called it that way), but it applies to other industries as well. What does this mean? For example, if size 32/34 of a pair of black pants is out of stock, the customer is notified. More information on ProductCart’s Apparel Add-on.
Now that you have prepared your MS Excel or CSV data file for importing it into ProductCart, select Import Products from the Products menu. You can either upload the data file through the Import Wizard or via FTP (recommended for large files).
If you cannot proceed to step 2:
Once the file has been uploaded/located successfully, the Import Wizard will ask you to choose whether you intend to import new data to the database, or update existing data.
The next window allows you to easily map fields between the two databases. Your import file’s column headings are listed on the left side and ProductCart’s on the right. Carefully map each field. Leave blank the ones for which you do not have any information to import. Note that the following fields are required if you are importing new products: SKU, name, description, online price. If any of these fields are not mapped, you will receive an error message and will be prompted to map them. The SKU field is required if you are updating product information.
Make sure that you don’t map the same field twice. If you do so, ProductCart will return an error message and will prompt you to verify that all fields are mapped uniquely.
Next, ProductCart shows you the fields as you have mapped them. Verify that the information is correct, and then proceed to the next step. Otherwise, go back to Step 2 and change the incorrect mapping settings. ProductCart will now start populating the database. Depending on the number of records that you are importing, this task may take several minutes.
Once all records have been imported, ProductCart will display a report that lists the number of records successfully imported, those that could not be imported and why. For example, you will be shown a list of products that could not be imported due to the fact that some of the required fields were not present, or because you were importing duplicate SKUs.
To visually confirm that the import was successful, navigate to the product catalog (thru the storefront) to verify that product information was imported as you expected. Also, select Manage Categories to ensure that the category tree that you imported was organized correctly.
If you are having problems importing products, check the Knowledge Base for a number of frequently asked questions that might shed some light on what could be occurring on your store. You can find a link to the knowledge base on the ProductCart Support Center.
ProductCart now allows you to easily “undo” an import/update by reverting back to the data that was stored in the product database before new data was imported or updated.
For example, let’s assume you decide to update the price of 100 products by importing a file that contains the SKU and the new price. You then realize that the price update should have been applied at a later time. How can you go back to the original price for the time being? The “undo” feature allows you to quickly restore the original prices.
When products are imported or updated, ProductCart saves a log of what information was imported in the files importLogs/prologs.txt (product information) and importLogs/catLogs.txt (category information). The system uses this information to remove the data that was imported/updated.
To undo the last import/update, select Import Products from the Products menu, and then click on the Undo Last Import or Undo Last Update button.
ProductCart v3 and above provide the ability to export product information in a format that makes it easy to edit it and re-import it. From the Products menu, select Import Products and then click on the Export for Re-Import button. You will be take to a page that allows you to select the products to export. You can:
Once you have determined the products that you would like to export, you will be taken to a page that provides a long list of all the fields that can be exported. The select the ones that you need to update and import back into the system.
ProductCart will export the data to a CSV file. If you edit it in MS Excel, remember to properly format it before importing it back into your store. See the section above about properly formatting your file for import.