You can create or update many products at once in Jasper by uploading a CSV file on our tool located at “Import/Export” > “CSV Importers” > “Products”.
- Select the “Language” you want to import the data into.
- Select if you want to add or replace the images.
- Select if you want to add or replace attribute sets.
- Select if you want to add or replace categories.
- Select if you want to add or replace channels.
- Select if you want to add or replace tags.
- Choose whether you want to clear attribute values if the value provided on the CSV is empty.
- Choose whether you want to clear product's generic entities values if the the value provided on the CSV is empty.
- A properly formatted CSV file.
Selecting the Language
On the importer page you will need to select the target language for the data you are about to import on the dropdown “First, select the Language you are about to import products to”.
Adding or Replacing
On the importer page you will need to select if you want to "add" or "replace" some specific data like attribute sets or images. When you select "add" the importer will keep any previous data and just add the new data provided through the CSV. On the other hand the "replace" will have the importer deleting or disabling all previous data and then adding the new ones. For instance, if you "add" a channel on a product then all previous enabled channels will remain enabled and the importer will just enable the new one, but if you had choose "replace" instead then the importer would disable the product from the current enabled channels and then enable it on the one provided by the CSV. Also, if you choose "replace" and pass an empty value then the importer will just clear or disable the previous data.
You can "add" or "replace" images, categories, channels, attribute sets and tags.
Clear if Empty
For product's attribute values and generic entities you can choose if you want to clear the current data by putting an empty value on the CSV file. By default the importer will ignore empty values for attributes and generic entities, which means that the current values for these remain intact if a new one is not provided in the CSV.
The importer can read data from a number of columns. Each column is detailed below. Keep in mind that the importer is case sensitive and pay attention to typos, reviewing your file before uploading.
- “SKU”: the product’s SKU in Jasper. This column is mandatory. The importer will try to locate a product with the given SKU, if none is found it will create a new product and assign that SKU into it. If the SKU is blank, it will try to locate the product by Name.
- “Name”: the product’s Name in Jasper. This column is also mandatory. The importer will try to locate the product with the given Name if the SKU is blank, if none is found it will create a new one with that value.
In the example above the importer will try to find if there is any product with the SKU “sku123”. If found, the product will be updated with the Name “Best Hoodie”, if not then a new one will be created.
Since the “Super Hoodie” doesn’t have a SKU, the importer will look for a product with the same name or create a new one.
- “Product:Short Description”: the short description of the product.
- “Product:Long Description”: the long description of the product.
- “Product:Warranty Info”: the warranty information of the product.
- “Product:Shipping Notes”: the shipping notes of the product.
- “Parent Identifier:SKU” / “Parent Identifier:Name”: you can also create or update child products by targeting their parent’s SKU or Name in this column. You should use either “Parent Identifier:SKU” or “Parent Identifier:Name”, not both. If you are creating or updating children products then you will need to put the columns for options in the CSV as well: “Option Set”, “Option Option Type:Option Name”
- “Option Set”: the name of an option set that is going to be assigned into the product. The importer will try to locate it by name, if not found it will create a new one.
- “Option Option Type:Option Name”: change “Option Type” for the type of the option, possible values: “Radio Buttons”, “Rectangles”, “Colour Swatch”, “Dropdown”. Change “Option Name” for the name of the option. As the previous columns, it will first try to locate and update while falling back to create if no previous option with the given name is found. Each value in this column is one value of the option.
In this example, “Best Hoodie D” and “Best Hoodie U” are children of the “Best Hoodie”, you can see it by looking at the “Parent Identifier:SKU” column. The parent has the Option Set “Color & Patch”. The options “Patch” and “Color” are going to be assigned into the “Color & Patch” option set, and each children will have the corresponding option value selected, “Dragon” and “Red” for “Best Hoodie D” and “Unicorn” and “Blue” for “Best Hoodie U”.
Super Hoodie does not have value on the “Parent Identifier” column, so it’s not a child, nor an option set, so it’s also not a parent.
- “Sort Order Option:Option Name”: in this column you can set the sort order of an option value. You need to change “Option Name” for the name of the option. If this column is not present the option values are going to be in alphabetical order.
Above you can see that the option value “Red” is going to receive the sort order “1”, while “Blue” is going to be “2”. The option values “Dragon” and “Unicorn” don't have a “Sort Order Option” corresponding column so they are going to be ordered alphabetically.
- "Attribute Sets": this column should be used to assign attribute sets into the product. You can pass many attribute sets by separating each with a comma. Attribute sets that don't exist won't be created.
- “Attribute:Attribute Name”: this column should be used to assign attribute values into the product. Change “Attribute Name” for the name of the attribute. If the attribute doesn’t exist the importer will create one with the given name, the type will be set to “text”. You can pass more than one attribute value by separating them with a comma, if the attribute itself is type “multiselect”.
“Materials” is an existing attribute type “multiselect” so you can pass more than one value by separating them with a comma.
- “Categories”: use this column to assign categories into products. You can set more than one category at once, separating them with a pipe character | . It’s important to note that you have to set each category by using it’s fully qualified name, for example if you want to put a product in a given “Category B”, which is a children of “Category A”, you should use “Category A > Category B” instead of just “Category B”. This column also works in a “create or update” way.
The product on the second line will be put into two categories, “Hoodies > Fantasy Hoodies” and “Hoodies > Fantasy Hoodies > Mystical Beast Hoodies”. The other one will be put only in “Hoodies > Casual Hoodies”.
- “Generic Entity:Generic Entity Name”: change “Generic Entity Name” for the name of the desired Generic Entity. Each value in this column is the name of a Concrete Entity from the Generic Entity specified in the header. Both the Generic Entity and the Concrete Entity are going to be created if no corresponding value is found or your Pim.
- “Channels”: you can enable a product in a given channel by writing it’s name on this column. You can enable it in more than one channel at once, by separating them with a comma. Channels are not created during the import process so nothing will happen if the name is wrong or doesn’t exist. Children products are not automatically enabled in the same channel as the parent one, you need to write the channel name in each record of your CSV file.
- “Sell Price:Base”, “Map:Base”, “Cost:Base”, “MSRP:Base”: with these columns you can set new prices for your product. Change “Base” for the price base of your choice. You don’t need to use all four columns together and you can also have more than one price base per CSV file.
Here you will see that the first product has both a CAD and a USD price, while the second one doesn’t. We also didn’t want to set the “Map” or the “Cost” so we left those columns out.
- “Related:Product Relation Type Name”: use this column if you want to establish a relationship between products. Change “Product Relation Type Name” for the name of the desired product relation type. The importer won’t create the product relation type if it doesn’t find it on your Pim. Each value in this column is the product SKU of which the product will relate to. If the relation type cardinality is “many-to-many” you can pass multiple product SKUs, use a comma to separate them.
- “Barcode:Type”: easily create new barcodes with this column. Change “Type” for the desired barcode type.
- “Main Image Url”: you can set a thumbnail image with this column, each value should be a publicly available image url.
- “Images Url”: use this column if you want to set non-thumbnail images on the product, you can pass more than one url to the importer, just separate them with a comma.
- “Sort Order Images”: if you want to specify the ordering of the images provided at the column “Images Url” then you need to set that on this column. Separate each value with a comma, if necessary.
- "Tags": use this column to provide a list of comma separated tags.
- "Override Shipping Price": this column will set the shipping "Override shipping price", you can use one of the following three options: "Do not ship free", "Always ship free" and "Do not override".
- "Shipping Price": set the shipping price.
- "Weight": use this column to set the weight of the product.
- "Height": set the height of the product.
- "Width": set the width of the product.
- "Length": set the length of the product.
- "Special Order": Use "true" or "false" to determine if it's a special order or not.
- "Pre-order": Use "true" or "false" to enable or disable the pre-order status.
- "Pre-order Release Date": set a date to the pre-order release date, the format should be YYYY-MM-DD.
- "Pre-order Message": set a pre-order message.
- "Pre-order Only": Use "true" or "false" to remove the pre-order status on the release date.