Bulk Import Products Using CSV
Bulk import is the fastest way to add many products at once. Instead of creating products individually, you fill out a CSV file (using Excel or Google Sheets) and upload it to the system.
Required Fields for Successful Product Import
Important: The following fields must be filled for a product to import successfully. If any of these are missing, the import will fail.
Mandatory Fields
Product Name
- Selling Price
- Cost Price
- Product Category
Product ID (Product.ID)
What this column is
The Product.ID column must remain blank.
The system will automatically generate and assign a unique product ID for each item during import.
Product Name (Product.Name)
What this column is
The name of the product exactly as customers will see it in your store.
Rules
- Required
- Plain text only
- One product per row
Example
"Silk Slip Dress"
Description (Product.Description)
What this column is
A short description explaining the product.
Rules
- Optional
- Text only (no HTML required)
Example
"Elegant satin slip dress with adjustable straps and a minimalist silhouette."
SKU (Product.SKU)
What this column is
A unique product identifier used internally for inventory tracking and reporting.
SKU values can be empty, but cannot be duplicated.
Rules
- Optional but recommended
- Must be unique
Example
"DRESS-SILK-BLK-001"
Price Compare (Product.Price.Compare)
What this column is
Displays the original price crossed out when running a promotion or sale.
Customers will see something like:
$120.00 $89.99
Rules
- Must be higher than the selling price
- Numeric values only (no currency symbols)
Example
Selling Price: 89.99
Compare Price: 120.00
If you do not want to show a discount comparison, leave this field blank.
Min Quantity / Max Quantity (Product.Min.Max.Quantity)
What it does
Controls how many units of a product a customer can add to their cart in a single order.
- Min Quantity = minimum number of items required per order
- Max Quantity = maximum number allowed per order
Example
- Min Quantity: 1Max Quantity: 3
- This means a customer can purchase up to 3 dresses in one order.
Base Price (Product.Price.Selling)
What this column is
The base selling price of the product before any add-ons or customization options.
Rules
- Numeric value only
- No currency symbols
Example
89.99
Cost Price (Product.Price.Cost)
What this column is
The internal cost of the product. This is used only for reporting and profit tracking.
Rules
- Optional
- Numeric value
Example
40
Tax Percent (Product.Tax_Percent)
What it does
Applies a tax percentage to the product price.
If your catalog uses a fixed tax for all items, it's recommended to configure Global Tax through Custom Charges. If tax varies by product, use this field instead.
How to fill it
- Enter the number only
- Do not include the % symbol
Example
Tax Percent: 8
This means 8% tax will be applied.
Status (Product.Status)
What this column is
Controls whether the product is visible in your store.
- Allowed values
- active
- inactive
Inventory (Product.Inventory)
What it does
Defines how many units of the product are available for sale.
Example
- Inventory Quantity: 50
- This means 50 units of the product are available in stock.
Labels (Product.Labels)
What it does
Labels highlight products or allow filtering in the store.
Examples
- Best Seller
- New Arrival
- Trending
- Limited Edition
Category (Product.Category)
What this column is
The category where the product will appear in your store.
Example
"Dresses" category for "Silk Slip Dress"
Other examples could include:
- Skincare
- Makeup
- Shoes
- Accessories
Tags (Product.Tags)
What it does
Tags help organize products internally and improve search or filtering.
Examples
- Summer
- Vegan Beauty
- Luxury
- Organic Skincare
Image URL (Product.Images)
What this column is
A publicly accessible image URL for the product.
Rules
- Must be a valid public link
- HTTPS recommended
Example
https://example.com/images/silk-slip-dress.jpg
Product Options / Variants
Product options allow customers to choose variations such as size, color, or finish.
Each option is defined first, and its variants are defined afterward in a specific CSV format.
Option Name (Option1.Name)
Defines the customer choice.
Example
- "Size"
- Other examples
- Color
- Shade
- Fabric
Option Type (Option1.Type)
Defines how many options the customer can select.
Allowed values
Single → customer can select only one option
Multiple → customer can select multiple options
Option Enable Range (Option1.Enable_Range)
Determines whether minimum or maximum selection limits apply.
Allowed values
- YES
- NO
Option Range (Option1.Range)
Used only when Enable Range = YES.
Example:
1,2
This means customers must select at least 1 option and up to 2 options.
If Enable Range = NO, use:
0,0
Option Required (Option1.Required)
Defines whether customers must choose an option before checkout.
Allowed values
- YesNo
Option View (Option1.View)
Controls how options appear in the app interface.
Allowed values
LIST
CARD
Basic Variant Structure (Option1.Variants)
Each variant follows this structure:
VariantName,Price,MinQty,MaxQty,Description,ImageURL { nested_addons }
Multiple variants must be separated with a semicolon.
Example (Size variants)
Small,0,0,5,Small size,https://example.com/img-small.jpg
;
Medium,5,0,5,Medium size,https://example.com/img-medium.jpg
;
Large,10,0,5,Large size,https://example.com/img-large.jpg
Multi-Level Add-ons (Nested Options)
Nested options allow deeper customization such as color, finish, or accessories.
Nested options are placed inside curly brackets {}.
CSV Rules for Nested Add-ons
If you do not want to define a value in multi-level variants (such as price, description, or image), leave it blank but keep the commas.
Commas (,) separate values within a variant.
Semicolons (;) separate multiple variants.
Curly brackets { } define nested add-ons.
Every opening { must have a closing }, or the import will fail.
Understanding the Syntax
Symbol
Meaning
,
Separates values within a variant
;
Separates multiple variants
{ }
Indicates nested options
( )
Contains child variants
Nested Option Structure
option_name, type, required, range, view, list {
variant1
(variant2
...)
};
Example (Color Options Inside Size)
{
Color,single,no,"[0,0]",no,list(
Black,0,0,,;
Beige,0,0,,;
Red,0,0,,
)
}
Example: Size → Fabric (2 Levels)
Small,89.99,40.00,,,"" {
Fabric,single,no,"[0,0]",yes,list (
Satin,0,0,,,"";
Cotton,5.00,0,,,""
)
}