When you want to make many changes to your products or inventory, or when you switch to Portmoni from another platform, importing products into your Portmoni store using a CSV file (comma-separated values) can be useful.
When you import products, the data from your CSV file is converted into products in your online store. When a product does not exists, this process will create a new product. When a product already exists, the process will update the existing product using the data from the CSV the file.
In this guide, we will cover the following:
- How to export products from your online store
- How to import products into your online store
- Description of the products CSV file
- Sample products CSV file
- Import products from another store
- How to convert your Shopify products CSV to import in Portmoni
Let’s dive into it!
How to export products from your online store
To export your products from your online store, follow the steps below. A CSV file with your exported products will be created automatically, and you will be able to download it and save it to your device.
Steps:
- From your Portmoni site editor at https://builder.portmoni.com , go to the “Account” tab
- In the “Account” tab, go to the “Import / export your data” section
- Click on “Import / Export data from your site”
- In the “Products” section, click on “Export Products”
- You are prompted to select a location to save it on your device. Once done your export file is created and saved to the selected location.
You can find below the description of the format of the product CSV file.
How to import products into your online store
To import products into your online store, follow the steps below. You can find below the description of the format of the product CSV file that you should use to import your products.
Warning: before you start an import, make sure that you have a backup of your data. Importing a CSV file that has errors might cause your products data to be deleted or corrupted. In that case a backup will allow you to restore your products easily and quickly.
Steps:
- From your Portmoni site editor at https://builder.portmoni.com , go to the “Account” tab
- In the “Account” tab, go to the “Import / export your data” section
- Click on “Import / Export data from your site”
- In the “Products” section, click on “Import Products”
- Click “Choose file”, and then select the CSV file that you want to import
- Click “Upload file and continue”
- Your file is uploaded and checked for any errors. If there are errors, a screen is displayed with the error details so that you can fix them and upload the file again.
- If the file is correct, a confirmation screen is displayed with the details about the import. Review the details, then if you are satisfied click on “Import Products”
- The products are being created and updated. When the process is complete, a confirmation is displayed.
Description of the products CSV file
The first line of your CSV file is the column headers that describe the content of each column. Each column is separated by a comma. The first line should look like this:
Handle,Name,Description (HTML),Is Visible,Price,Compare At Price,SKU,Weight (in kg),Quantity In Stock,Has Variants,Are All Variants Options Automatically Available,Option 1 Handle,Option 1 Name,Option 1 Value,Option 2 Handle,Option 2 Name,Option 2 Value,Option 3 Handle,Option 3 Name,Option 3 Value,Show Additional Details Field,Custom Additional Details Label
The following lines (or records) in the file contain data of your site using the same columns in that exact same order. A line would look like this (and you can find more examples in the products CSV file example and in the sections below):
product-example,Product Example,"<p>Description of the product</p>",TRUE,25,35,SKU-001,1.25,12,FALSE,,,,,,,,,,,FALSE,
Here is the description of the different columns:
# | Column name | Column description |
1 | Handle |
Handles are unique names for each product. They can only contain lowercase letters, dashes and numbers, but no spaces, accents or other characters, including periods. Handles are used in the URL of each product. When a handle in the CSV file matches a handle in your online store, the data in the CSV file is used to update the matching product. When a handle in the CSV file does not match any handle in your online store, the data in the CSV file is used to create a new product. This means that for new products, you should provide a unique handle, different from the existing ones. Every line of the CSV file that starts with a different handle is considered as a different product, except the manual variants of a product. To create multiple variants of a product, you will add one line per variant, using the same handle as the product. The format to use for the variant is described in the section Example of products with manual variants. If by mistake you use the same handle for different products in the CSV file, the data of the last line using that handle is used to update the product. Should be a string, max 50 characters. This field is required. |
2 | Name |
The name of your product, for example “Dress Shirt”. Should be a string, max 100 characters. This field is required. |
3 | Description (HTML) |
The description of the product in HTML format. If it contains commas, it should be inside quotes to avoid any import issue. For instance: “<p>This is a sample description for a product, check it out!</p>” Should be a text in HTML format. This field can be empty. |
4 | Is Visible |
If TRUE, the product is visible in your online store. If FALSE, it is hidden in your online store. Should be TRUE or FALSE. This field is required. |
5 | Price |
The price of the product. For instance, a price can be “9.95” For a product variant, if at least one variant has a “Price” specified, then the box “All variants use the same price as the product” in your site editor is automatically unchecked. Should be a number (float). This field can be empty. |
6 | Compare At Price |
If the product is on sale, this price is displayed crossed next to the product price. For instance, a compare at price can be “14.95” For a product, if a “Compare at Price” is specified, the box “This product is on sale” in your site editor is automatically checked. For a product variant, if at least one variant has a “Compare At Price” specified, then the box “All variants use the same price as the product” is automatically unchecked, and the box“Add a discount for one or more variants” is automatically checked. Should be a number (float). This field can be empty. |
7 | SKU |
The Stock Keeping Unit (SKU) for a product or for a variant. For instance, a SKU can be “REF-001”. For a product variant, if at least one variant has a “SKU” specified, then the box “Add a SKU (Stock Keeping Unit) for the variants” in your site editor is automatically checked. Should be a string, max 255 characters. This field can be empty. |
8 | Weight (in kg) |
The weight of the product, in kg. For instance, it can be “1.25”. Should be a number. This field can be empty. |
9 | Quantity In Stock |
The quantity in stock of the product or product variant. For instance, the quantity in stock can be “12”. For a product, if the “Quantity in Stock” is specified, the box “Track quantity in stock” in your site editor is automatically checked. For a product variant, if at least one variant has its “Quantity in Stock” specified, then the box “Track the quantity in stock of each variant” in your site editor is automatically checked. Should be a positive integer. This field can be empty. |
10 | Has Variants |
If TRUE, this product has variants, i.e. options for this product, like different sizes or colors. If FALSE, this product does not have variants. Should be TRUE or FALSE This field is required. |
11 | Are All Variants Options Automatically Available |
Automatically make available the combination of all the choices of all the options selected. All options will be available, and use the same price as the product. Should be TRUE or FALSE. This field is required if “Has Variants” is TRUE. If “Has Variants” is FALSE, it should be empty. |
12 | Option 1 Handle |
The handle of the first option for this product. It should match the handle of an existing product option available in your online store. For instance, the handle can be “size”. To see the full list of available product options handles, you can export the list of product options from your site. Here is the guide on how to do that. Should be a string, max 50 characters. .This field is required if “Has Variants” is TRUE. If “Has Variants” is FALSE, this field should be empty |
13 | Option 1 Name |
The name of the product option. For instance, it could be “Size”. Note that this field is provided for your information only. It is not used to update the name of the product option (it is ignored during the import). Should be a string, max 30 characters. This field can be empty. |
14 | Option 1 Value |
The value for the first option for this product. It should match an existing choice available in your online store for the product option specified in the “Option 1 Handle” field. For instance, it could be “XL”. Should be a string, max 30 characters. If “Are All Variants Options Automatically Available” is FALSE and “Option 1 Handle” is specified, this field is required. If “Are All Variants Options Automatically Available” is TRUE, this field should be empty. |
15 | Option 2 Handle |
The handle of the second option for this product. It should match the handle of an existing product option available in your online store. For instance, the handle can be “color”. To see the full list of available product options handles, you can export the list of product options from your site. Here is the guide on how to do that. Should be a string, max 50 characters. This field can be empty. |
16 | Option 2 Name |
The name of the product option. For instance, it could be “Color”. Note that this field is provided for your information only. It is not used to update the name of the product option (it is ignored during the import). Should be a string, max 30 characters. This field can be empty. |
17 | Option 2 Value |
The value for the second option for this product. It should match an existing choice available in your online store for the product option specified in the “Option 2 Handle” field. For instance, it could be “Red”. Should be a string, max 30 characters. If “Are All Variants Options Automatically Available” is FALSE and “Option 2 Handle” is specified, this field is required. Else it should be empty. |
18 | Option 3 Handle |
The handle of the third option for this product. It should match the handle of an existing product option available in your online store. For instance, the handle can be “fabric”. To see the full list of available product options handles, you can export the list of product options from your site. Here is the guide on how to do that. Should be a string, max 50 characters. This field can be empty. |
19 | Option 3 Name |
The name of the product option. For instance, it could be “Fabric”. Note that this field is provided for your information only. It is not used to update the name of the product option (it is ignored during the import). Should be a string, max 30 characters. This field can be empty. |
20 | Option 3 Value |
The choice for the third option for this product. It should match an existing choice available in your online store for the product option specified in the “Option 3 Handle” field. For instance, it could be “Coton”. Should be a string, max 30 characters. If “Are All Variants Options Automatically Available” is FALSE and “Option 3 Handle” is specified, this field is required. Else it should be empty. |
21 | Show Additional Details Field |
Include a box where visitors can enter additional details for this product when they order. Should be TRUE or FALSE. This field is required. |
22 | Custom Additional Details Label |
Specify a custom label for the additional details field (optional). By default the text “Additional details” is displayed. Should be a string, max 100 characters. This field can be empty. |
Note: If you use Excel to edit your CSV, then check Excel’s export settings when you export the CSV to ensure that your file uses commas between values.
Example of product (without variants)
A product without variants is defined by a row in your CSV files that has the field “Has Variants” set to FALSE.
Here is the example of a row in a CSV file that defines a product without variants:
product-example,Product Example,"<p>Description of the product</p>",TRUE,25,35,REF-001,1.25,12,FALSE,,,,,,,,,,,,
This translates to the following fields:
- Handle: product-example
- Name: Product Example
- Description (HTML): “<p>Description of the product</p>”
- Is Visible: TRUE
- Price: 25
- Compare At Price: 35
- SKU: REF-001
- Weight: 1.25
- Quantity In Stock: 12
- Has Variants: FALSE
- Are All Variants Options Automatically Available: (empty)
- Option 1 Handle: (empty)
- Option 1 Name: (empty)
- Option 1 Value: (empty)
- Option 2 Handle: (empty)
- Option 2 Name: (empty)
- Option 2 Value: (empty)
- Option 3 Handle: (empty)
- Option 3 Name: (empty)
- Option 3 Value: (empty)
- Show Additional Details Field Custom: FALSE
- Additional Details Label: (empty)
Example of product with automated variants
A product with automated variants is defined by a row in your CSV files that has the field “Has Variants” set to TRUE, the field “Are All Variants Options Automatically Available” set to TRUE, and at least the field “Option 1 Handle” set to the handle of an existing product option is your site editor. Optionally, the “Option 2 Handle” and “Option 3 Handle” can also be specified.
As all combinations are automatically made available by the platform, the columns “Option 1 Value”, “Option 2 Value” and “Option 3 Value” should remain empty.
Here is the example of a row in a CSV file that defines a product with automated variant:
product-example-automated-variants,Product Example For Automated Variants,"<p>Description of the product</p>",TRUE,10,,, , ,TRUE,TRUE,size,Size,,color,Color,,,,,TRUE,More details
This translates to the following fields:
- Handle: product-example-automated-variants
- Name: Product Example For Automated Variants
- Description (HTML): “<p>Description of the product</p>”
- Is Visible: TRUE
- Price: 10
- Compare At Price: (empty)
- SKU: (empty)
- Weight: (empty)
- Quantity In Stock: (empty)
- Has Variants: TRUE
- Are All Variants Options Automatically Available: TRUE
- Option 1 Handle: size
- Option 1 Name: Size
- Option 1 Value: (empty)
- Option 2 Handle: color
- Option 2 Name: Color
- Option 2 Value: (empty)
- Option 3 Handle: (empty)
- Option 3 Name: (empty)
- Option 3 Value: (empty)
- Show Additional Details Field Custom: TRUE
- Additional Details Label: More details
Example of product with manual variants
A product with manual variants is defined by several rows following each other that use the same product handle. The first line defines the product and product options, and the first variant. The following lines define the additional variants.
The first line should have the field “Has Variants” set to TRUE, the field “Are All Variants Options Automatically Available” set to FALSE, and at least the field “Option 1 Handle” set to the handle of an existing product option is your site editor. Then, it should also include the field “Option 1 Value” that defines the product option value for the first variant. If options are specified for option 2 and option 3, the relevant values should also be specified.
Then, the following lines should define the product option values for each variant, as well as relevant parameters. The following fields can be specified when you specify a variant:
- Handle: it should be the same as the product.
- Price: you can specify a price (optional). If at least one variant of this product has a “Price” specified, then the box “All variants use the same price as the product” in your site editor is automatically unchecked. In that case, it is recommended to specify a “Price” for each variant, because if the field is left empty the price will appear as “0”.
- Compare At Price: you can specify a “Compare At Price” (optional). If at least one variant of this product has a “Compare At Price” specified, then the box “All variants use the same price as the product” in your site editor is automatically unchecked, and the box “Add a discount for one or more variants” is automatically checked. In that case, it is recommended to specify a “Price” for each variant, because if the field is left empty the price will appear as “0”.
- SKU: you can specify a “SKU” for the variant (optional). If at least one variant has a “SKU” specified, then the box “Add a SKU (Stock Keeping Unit) for the variants” is automatically checked.
- Quantity In Stock: you can specify a quantity in stock for the variant (optional). If at least one variant has its “Quantity in Stock” specified, then the box “Track the quantity in stock of each variant” in your site editor is automatically checked.
- Option 1 Value: you should specify a value for the option 1 (required). It should match an existing choice for this product option in your online store.
- Option 2 Value: if the option 2 is specified in the product, you should specify a value for the option 2. It should match an existing choice for this product option in your online store.
- Option 3 Value: if the option 3 is specified in the product, you should specify a value for the option 3. It should match an existing choice for this product option in your online store.
- All the other columns should be empty
Here is the example of the specification of a product with manual variant in a CSV file. The first line defines the product and the first variant, the second line defines an additional variant:
product-example-manual-variants,Product Example,"<p>Description of the product</p>",TRUE,25,,,,,TRUE,FALSE,color,Color,Blue,size,Size,L,,,,FALSE, product-example-manual-variants,,,,15,,,,,,,,,Blue,,,XL,,,,,
This translates to the following fields, for the product (first line):
- Handle: product-example-manual-variants
- Name: Product Example
- Description (HTML): “<p>Description of the product</p>”
- Is Visible: TRUE
- Price: 25
- Compare At Price: (empty)
- SKU: (empty)
- Weight: (empty)
- Quantity In Stock: (empty)
- Has Variants: TRUE
- Are All Variants Options Automatically Available: FALSE
- Option 1 Handle: color
- Option 1 Name: Color
- Option 1 Value: Blue
- Option 2 Handle: size
- Option 2 Name: Size
- Option 2 Value: L
- Option 3 Handle: (empty)
- Option 3 Name: (empty)
- Option 3 Value: (empty)
- Show Additional Details Field Custom: FALSE
- Additional Details Label: (empty)
And for the additional product variant (second line):
- Handle: product-example-manual-variants
- Name: (empty)
- Description (HTML): (empty)
- Is Visible: (empty)
- Price: 15
- Compare At Price: (empty)
- SKU: (empty)
- Weight: (empty)
- Quantity In Stock: (empty)
- Has Variants: (empty)
- Are All Variants Options Automatically Available: (empty)
- Option 1 Handle: (empty)
- Option 1 Name: (empty)
- Option 1 Value: Red
- Option 2 Handle: (empty)
- Option 2 Name: (empty)
- Option 2 Value: XL
- Option 3 Handle: (empty)
- Option 3 Name: (empty)
- Option 3 Value: (empty)
- Show Additional Details Field Custom: (empty)
- Additional Details Label: (empty)
Considerations about products update
When you import a CSV file, when the handle in the import CSV file matches an existing product handle in your online store, the values in the CSV file overwrite the values in the existing product. When the handle does not match an existing product, a new product is created.
Warning: updating a product that has variant will delete the existing variants, and create new ones based on what you define in the CSV file.
Note: CSV files can’t be used to delete products in bulk. They can only be used to create or update products in bulk.
Sample products CSV file
You can download a sample products CSV file to use a template. Alternatively, you can also export a products CSV file from your online store and use it as a template.
If you use the sample file, then be aware that it contains examples of products and variants. If you use the sample file to create your own import file, then make sure that you remove all the examples from the file.
Import products from another store
If you have a CSV file that was exported from another store or came from another source, then verify that it matches the file format required by Portmoni for the import.
If the format does not match, the import will fail. You would need to fix the file so that it matches the required format, or create a new one based on the CSV file sample provided by Portmoni and add your existing data to it.
How to convert your Shopify products CSV file to import to Portmoni
The format of the Shopify export CSV file is similar to the one of Portmoni, with some differences in the name of the columns and how it is organized.
Here is how to convert a Shopify products CSV file into the format used by Portmoni:
Shopify column name | Portmoni column name |
Handle | Handle |
Title | Name |
Body (HTML) | Description (HTML) |
Vendor | (not used) |
Product Category | (not used) |
Type | (not used) |
Tags | (not used) |
Published | (not used) |
Option1 Name | Option1 Name |
Option1 Value | Option1 Value |
Option2 Name | Option2 Name |
Option2 Value | Option 2 Value |
Option3 Name | Option 3 Name |
Option3 Value | Option 3 Value |
Variant SKU | SKU |
Variant Grams | Weight (in kg) [don’t forget to convert from grams to kg] |
Variant Inventory Qty | Quantity in Stock |
Variant Inventory Policy | (not used) |
Variant Fulfillment Service | (not used) |
Variant Price | Price |
Variant Compare At Price | Compare At Price |
Variant Requires Shipping | (not used) |
Variant Taxable | (not used) |
Variant Barcode | (not used) |
Image Src | (not used) |
Image Position | (not used) |
Image Alt Text | (not used) |
Gift Card | (not used) |
SEO Title | (not used) |
SEO Description | (not used) |
Google Shopping / Google Product Category | (not used) |
Google Shopping / Gender | (not used) |
Google Shopping / Age Group | (not used) |
Google Shopping / MPN | (not used) |
Google Shopping / Condition | (not used) |
Google Shopping / Custom Product | (not used) |
Google Shopping / Custom Label 0 | (not used) |
Google Shopping / Custom Label 1 | (not used) |
Google Shopping / Custom Label 2 | (not used) |
Google Shopping / Custom Label 3 | (not used) |
Google Shopping / Custom Label 4 | (not used) |
Variant Image | (not used) |
Variant Weight Unit | (not used) |
Variant Tax Code | (not used) |
Cost per item | (not used) |
Included / United States | (not used) |
Price / United States | (not used) |
Compare At Price / United States | (not used) |
Included / International | (not used) |
Price / International | (not used) |
Compare At Price / International | (not used) |
Status | (not used) |
In addition, the following columns are not specified in the Shopify CSV file, and need to be added for your Portmoni CSV file:
- Option 1 Handle
- Option 2 Handle
- Option 3 Handle
- Has Variants
- Are All Variants Options Automatically Available
- Show Additional Details Field,Custom
- Additional Details Label
We hope this helps, and please do not hesitate to contact us if you have any question!
Related articles
- Find all our help resources in the Help Center
- Start your website and online store