How can we help you?

Popup image
All Categories Product Management Bulk Upload Products with CSV

Bulk Upload Products with CSV

Written by Saurabh
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: 1 to make the product live, 0 to keep it inactive. Defaults to 1

Inventory

  • track_quantity: 1 if you want Zepio to track stock, 0 if 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:value and separated by |. For example ean:8901234567890|custom:AB-1. Valid types are gtin, upc, ean, isbn, asin and custom. A plain value with no type is saved as custom. Up to 20 per product
  • unit_label: The unit you sell in. piece, kg, pack etc.
  • 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: 1 to include this product's weight when calculating delivery charges
  • unit_weight: Product weight
  • weight_unit: kg or gm. Defaults to kg
  • width, height, length: Dimensions for shipping

Media

  • video_url: Product video URL
  • glb_file: URL of a 3D (.glb) model file

Storefront

  • is_recommended: 1 to mark the product as recommended
  • veg_non_veg_egg: veg, non_veg or egg. 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 example Brand: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: 1 if the product can be returned. Defaults to 1
  • is_exchangeable: 1 if the product can be exchanged. Defaults to 1
  • 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_link or stream (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

  1. Go to Admin Dashboard > Products > Bulk Upload
  2. If you run multiple stores, select the store you are uploading to
  3. Select your prepared file
  4. 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.

Did this answer your question?
Sad
Neutral
Happy

Not finding what you are looking for?

Chat with us or send us an email.


Stackcanyon Technologies LLP

© Zepio All rights reserved 2026