Bulk Edit Products in a Spreadsheet or CSV
Change prices, stock, barcodes, rack IDs and more for many products at once, in a spreadsheet inside Zepio or by exporting and importing a CSV.
Updated 27 Oct 2026 3 min read
On this page
Bulk edit shows your whole catalog as a spreadsheet, so you can update many products in one go instead of opening each one. Use it for products you already have. To add new products, use Bulk upload.
Open bulk edit
- Go to Admin Dashboard > Products
- Click Bulk edit
- If you run multiple stores, select the store whose products you want to edit
Each product is one row. Variants and add-ons appear as rows right below their product.
A laptop or desktop works best because the sheet has many columns. On a phone you can export a CSV instead, or tap Edit here anyway.
Option 1: Edit in the sheet
- Click a cell and type to change it
- Paste a block of cells straight from Excel or Google Sheets
- Drag the corner of a selection down to copy a value to the rows below
- Press Ctrl+Z to undo
- Use the search bar to find products by name or SKU
Edited rows are highlighted. When you are done, click Save and confirm. Only the cells you changed are saved.
Option 2: Export, edit and import a CSV
- Click Export CSV. You get a file of everything in the sheet
- Open it in Excel or Google Sheets and make your changes
- Save it as CSV
- Back in bulk edit, click Import CSV and choose the file
- The changes are filled into the sheet and highlighted. Check them, then click Save
Importing a file does not save anything by itself. You always see the changes before you save.
⚠️ Important:
- Always export a fresh CSV from bulk edit. Rows are matched by the row_type, id and product_id columns, so do not change or delete those columns
- You can delete other columns you do not need. Missing columns are left as they are
- The CSV from Bulk upload is a different file and cannot be imported here
What you can edit
Products
- product: Product name
- sku_code: Product SKU
- 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 - rack_id: Where the product sits in your shop or warehouse, so pickers can find it. For example
A-12. Up to 50 characters - selling_price and original_price: Prices, numbers only
- track_quantity, unit_quantity, low_stock_alert: Stock settings
- min_quantity, max_quantity, unit_label: Purchase limits and the unit you sell in
- tax_id, hsn_code: Tax rule and HSN code
- consider_weight_for_delivery_charge, unit_weight, weight_unit, width, height, length: Weight and dimensions
- is_active, is_recommended, veg_non_veg_egg: Storefront settings
- alternate_names: Comma-separated alternate names for search
- product_attributes: Spec rows written as
Name:Value|Name:Value - is_returnable, is_exchangeable, return_window_days: Returns and exchanges
- seo_title, seo_description: Search engine text
- commission_rate (multivendor stores) and erp_id (enterprise accounts) appear only when the feature is on
Variants
A variant row can change its own sku_code, barcodes, selling_price, original_price and stock (unit_quantity). Its name comes from its options and cannot be edited here.
Once a product has variants, its prices come from the variants. The product's own price cells are empty and locked.
Add-ons
An add-on row can change its price in the selling_price column.
Clearing a value
An empty cell means "no value". If you clear the barcodes, alternate_names or product_attributes cell of a product and save, all of its barcodes, alternate names or attributes are removed. Clearing rack_id removes the product's rack ID.
If a row is rejected
Rows with a problem, such as a price that is not a number or a rack ID longer than 50 characters, are not saved. They are marked in red and listed below the sheet with the reason. Every other row is still saved. Fix the rejected rows and click Save again.