Bulk Upload Products with CSV
Updated 9 hours ago
Adding products one by one can take time, especially if you already have a catalog ready. Zepio lets you upload all your products at once using a CSV file.
Step 1: Download Sample CSV
Download the sample CSV template from Admin Dashboard > Products > Bulk Upload.
The template is generated for your store, so it already contains the right columns for the features you use. Stores on multivendor get a commission column, digital stores get the digital delivery columns, and so on. Always download a fresh copy instead of reusing an old file.
Each row in the CSV represents one product.
Step 2: Prepare Your Product Data
Only three columns are mandatory: name, selling_price and category_ids. Every other column is optional. Leave it blank and Zepio uses the same default the Add Product form uses.
Basics
- name: Product name (required)
- description: Product description (valid HTML is supported)
- selling_price: Price at which you will sell the product (required)
- original_price: MRP or compare-at price. Must be equal to or higher than selling_price
- images: Comma-separated URLs of product images (required for displaying a product image)
- category_ids: ID(s) of categories to assign the product to, comma-separated if multiple (required)
-
is_active:
1to make the product live,0to keep it inactive. Defaults to1
Inventory
-
track_quantity:
1if you want Zepio to track stock,0if not - unit_quantity: Stock quantity (only if track_quantity = 1)
- low_stock_alert: Get alerted when stock falls to this number (only if track_quantity = 1)
- sku_code: Product SKU. Leave blank and one is generated for you. Must be unique
-
barcodes: One or more barcodes, written as
type:valueand separated by|. For exampleean:8901234567890|custom:AB-1. Valid types aregtin,upc,ean,isbn,asinandcustom. A plain value with no type is saved ascustom. Up to 20 per product -
unit_label: The unit you sell in.
piece,kg,packetc. - min_quantity: Minimum purchase quantity
- max_quantity: Maximum purchase quantity
Tax
- tax_id: Tax rule ID (if applicable, can be blank)
- hsn_code: HSN code for GST invoices
Shipping & weight
-
consider_weight_for_delivery_charge:
1to include this product's weight when calculating delivery charges - unit_weight: Product weight
-
weight_unit:
kgorgm. Defaults tokg - width, height, length: Dimensions for shipping
Media
- video_url: Product video URL
- glb_file: URL of a 3D (.glb) model file
Storefront
-
is_recommended:
1to mark the product as recommended -
veg_non_veg_egg:
veg,non_vegoregg. Leave blank if it does not apply to your store - alternate_names: Comma-separated alternate names, so customers searching for those terms still find this product
-
product_attributes: Extra spec rows shown on the product page, written as
Name:Value|Name:Value. For exampleBrand:Acme|Material:Cotton - recommended_product_ids: Comma-separated product IDs to show as recommendations
SEO
- seo_title: Custom page title for search engines
- seo_description: Custom meta description
- seo_image: URL of the image used when the product link is shared
Returns & exchanges
-
is_returnable:
1if the product can be returned. Defaults to1 -
is_exchangeable:
1if the product can be exchanged. Defaults to1 - return_window_days: Number of days the customer has to raise a return
Only in some stores
These columns appear in your template only if the feature is enabled for your store. If you add them manually to a store that does not use the feature, they are ignored.
- commission_rate: Commission percentage for this product (multivendor stores). Leave blank to use the store's own rate
- erp_id: Your external ERP identifier (enterprise accounts)
-
digital_delivery_type:
download,external_linkorstream(digital stores) - digital_file_url: URL of the downloadable file
- external_link_url: Link the customer gets after purchase
- streaming_url: Streaming URL for video products
- custom_cta_text: Custom text for the buy button
Yes/No columns
Every yes/no column accepts 1, true or yes for Yes, and 0, false or no for No. Leave it blank to use the default.
⚠️ Important:
- Do not rename the column headers. Zepio matches columns by their header name.
- You can delete columns you don't need, and you can keep them in any order.
- Categories must belong to the store you are uploading to. Rows with category IDs from another store are skipped.
- Make sure images are public URLs (you can use Media Manager to upload the images and copy the URL).
- Prices must be numbers only (no symbols like ₹ or $).
- SKU codes must be unique. A row reusing an existing SKU is skipped.
- Maximum file size is 5MB.
Step 3: Upload the CSV
- Go to Admin Dashboard > Products > Bulk Upload
- If you run multiple stores, select the store you are uploading to
- Select your prepared file
- Click Upload CSV File
Step 4: Verify Products
Large files are processed in the background, so give it a few minutes.
When it finishes, Zepio sends you a notification (the bell icon in your dashboard) telling you how many products were imported. If any rows were skipped, the notification lists the reason for each one. For example "Row 3: selling_price cannot be greater than original_price". Fix those rows in your CSV and upload just them again.
Then open your Products list and check images, categories, and stock settings. Edit any product if you need to adjust details.