> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://support.easystore.co/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Bulk upload products using CSV

### In this article:

1. [Introduction](#1-1-introduction)
2. [Download import template](#1-2-download-import-template)
3. [Notes to prevent import error](#1-3-notes-to-prevent-import-error)
4. [Insert product details](#1-4-insert-product-details)
5. [Import products](#1-5-import-products)

# 1. Introduction

In this article, you will find out how to mass upload your products using Excel or CSV file. This function is especially useful for you if you have a wide range of products. It could tremendously save your time and absolutely accurate. Let's see how to do it:

It is recommended that you get ready the following basic product details before start:

* Product name
* Product description
* Product images
* Product weight and dimension (if shipping rate based on weight)
* Product selling price
* Product stock quantity (optional)

# 2. Download import template

2.1 Go to [__EasyStore Admin__](https://admin.easystore.co/login) > Products > click on the 3-dot menu > **Import products**.

![](https://storage.crisp.chat/users/helpdesk/website/-/b/3/4/7/b34797d9594d3000/image_pz87vc.png =800x240)

2.2 Click **CSV template file** to download the products import template.

![](https://storage.crisp.chat/users/helpdesk/website/b34797d9594d3000/image_iihfz6.png =600x236)

# 3. Notes to prevent import error

**⚠️ Important:**

* Do not add, delete or move columns.
* **Handle** must be filled for all rows.
* All variants under the same product must have the same **Handle.**
* For rows with option name, must fill in the corresponding option value.
* No duplicated variants.

📌 **About image link:**

* You can upload the images to external host like [imgur.com](https://imgur.com/) first > copy it’s direct link > insert the link into the spreadsheet.
* Image link must be web address in supported format: `.jpg`, `.jpeg` or `.png`.
* Example: [https://i.imgur.com/mzMexWm.png](https://i.imgur.com/mzMexWm.png)
* `.webp` is supported by EasyStore but not by marketplaces like TikTok, Shopee and Lazada.
* Local file path in your device like *C:\Users\astrid\Desktop\image.jpg* can't be used.

| 💡 Tips: Or you can mass upload products without image and description first, after that add them by editing single product.

# 4. Insert product details

4.1 Open the CSV file:

* Popular apps used to edit spreadsheet: MS Excel or **WPS**
* Or, upload the file to Google drive > open and edit using **Google Sheets** (web version)

![](https://storage.crisp.chat/users/helpdesk/website/-/b/3/4/7/b34797d9594d3000/gif3_1seuruf.gif =900x154)

4.2 Insert your product details into the file by referring to table below.

| Field | Description | Required format, if any | Required / Optional |
| ---- |
| Handle | Last part of product link (example: “blue-shirt” in https://easystore.co/products/blue-shirt), must be different for each product. | Lowercase letters, numbers or hyphens only (no spaces). | Suggest make it same as Title (product name) and let system auto-convert to Handle format. |
| Title | Product name |  | Required |
| Description | Product meta description to show in Google search results. | Plain text only (no line breaks), up to 250 characters. | Optional |
| Body (HTML) | Product description | HTML codes for rich text (line breaks, font styles, bullets, images etc.). If not, plain text only. | Optional |
| Published | Product publish date and time | Yes / No / YYYY-MM-DD HH:MM:SS for schedule publish | Unpublished if left blank |
| Taxable | Is this a taxable product? | Yes / No | Yes if left blank |
| Free Shipping | Is this product shipped free? | Yes / No | No if left blank |
| Track Inventory | Set stock quantity for this product? | Yes / No | No if left blank |
| Image1 | Link to 1st product image | Refer note 3 above about image link | Optional |
| Image2 | Link to 2nd product image | Refer note 3 above about image link | Optional |
| Image3 | Link to 3rd product image | Refer note 3 above about image link | Optional |
| Collection1 | Product category 1 |  | Optional |
| Collection2 | Product category 2 |  | Optional |
| Collection3 | Product category 3 |  | Optional |
| Tags | Filter products by tags in admin panel (not shown on website) |  | Optional |
| Brands | Brand of this product (not shown on website) |  | Optional |
| Vendor | Supplier of this product (not shown on website) |  | Optional |
| Seller Note | Internal remark for this product |  | Optional |
| Option1 Name | 1st variant name (example: Size) |  | Optional |
| Option1 Value | 1st variant choices (example: S, M, L) |  | Optional |
| Option2 Name | 2nd variant name (example: Color) |  | Optional |
| Option2 Value | 2nd variant choices (example: Blue, Red) |  | Optional |
| Option3 Name | 3rd variant name (example: Material) |  | Optional |
| Option3 Value | 3rd variant choices (example: Cotton, Silk) |  | Optional |
| SKU | Item code |  | Optional |
| Barcode | Item barcode |  | Optional |
| Weight | Item weight | Number, up to 2 decimals. | 0 if left blank |
| Weight Unit | Item weight unit | g, kg, oz, or lb only | g if left blank |
| Length | Item length in cm | Number, up to 2 decimals. | 0 if left blank |
| Width | Item width in cm | Number, up to 2 decimals. | 0 if left blank |
| Height | Item height in cm | Number, up to 2 decimals. | 0 if left blank |
| Price | Item selling price | Number, up to decimals of [default currency](https://admin.easystore.co/settings/currency). | 0 if left blank |
| Cost Price | Item cost price | Number, up to decimals of [default currency](https://admin.easystore.co/settings/currency). | 0 if left blank |
| Inventory | Stock quantity | Number, no decimal. | 0 if left blank |
| Inventory Policy | “Continue to sell after out of stock”? | deny / continue | deny if left blank |
| Compare At Price | Item “crossed price” on website | Number, up to decimals of [default currency](https://admin.easystore.co/settings/currency). | 0 if left blank |
| Enabled | Is this variant available? | Yes / No | Yes if left blank |

# 5. Import products

5.1 Once done,  save the file in **.XLSX** or **.CSV** format.

![](https://storage.crisp.chat/users/helpdesk/website/b34797d9594d3000/image_1r4pa1q.png =600x487)

5.2 Go back to EasyStore admin panel > Products > click on the 3-dot menu > **Choose File** and select the file.

![](https://storage.crisp.chat/users/helpdesk/website/b34797d9594d3000/image_1hhk9wz.png =600x238)

5.3 The system fields should have been mapped over to your file columns automatically. Now click **Import**.

![](https://storage.crisp.chat/users/helpdesk/website/-/b/3/4/7/b34797d9594d3000/image_jr5h76.png =500x450)

5.4 Products are created successfully.

![](https://storage.crisp.chat/users/helpdesk/website/-/b/3/4/7/b34797d9594d3000/image_6butob.png =500x209)


---