Running a programme · For a brand's operations team
Uploading batches from a spreadsheet
When a brand orders twenty-five batches at once, typing them into a form is where mistakes happen. The upload path takes a spreadsheet in three steps, and each step exists to stop a specific mistake.
Three steps #
Template
- What it does
- An Excel file downloaded from the product's own Bulk upload tab. Its
productdropdown holds that one product, andbatch_kindis a dropdown too. - What it stops
- A typed product name that matches nothing — and a batch generated for the wrong product.
Preview
- What it does
- Parses the file, validates every row, resolves the products and prices the file against the credit balance. It writes nothing.
- What it stops
- A surprise.
Commit
- What it does
- Asks you to retype the label total, the way a bank asks you to retype an amount.
- What it stops
- A mis-click.
After the commit the background worker writes the batches — always the worker, never the request, because twenty-five rows of 10,000 labels is a quarter of a million labels.
The columns #
product, quantity, batch_kind, programme, lot_number, batch_name, scan_limit, hidden_code_format, mfg_date, expiry_date, offer_end_date, discount_price_rupees, fact1_name, fact1_value, fact2_name, fact2_value
Only product and quantity are required. product takes the product's id or its exact name (capitals do not matter) — and it has to be the product whose page you uploaded from: a row for any other product is rejected by name. Only Excel (.xlsx) is accepted; a CSV is refused with a sentence saying so.
Limits and formats #
- A file holds up to 1,000 rows and 2 MB.
- Dates are
YYYY-MM-DDand nothing else. A date means the end of that day, IST. discount_price_rupeesis a whole number of rupees. The verdict page shows it as Special price.batch_kindtakes a value from the template's dropdown. The values are not listed on this page on purpose: they are the console's own list, and the template always carries the current one.- The expiry date, the offer end date and the special price take three of the verdict page's five fact slots, so a row has two left for facts you name. A
fact3_namecolumn you add is read, but a sixth fact is rejected with that reason. - The dropdowns are typing help, not a gate: a pasted value skips them. Every row is checked again on upload.
When a row is rejected #
The preview names the row and the reason. Fix the file and preview again; nothing was written, so there is nothing to undo.
The preview also prices the file against your balance and shows any shortfall in red before you commit. If you commit a file the balance cannot cover, the rows are generated one by one until the credits run out, and the report lists the rest as failed. A row is never half-generated, and the balance never goes below zero.
Uploading again #
- The same file uploaded twice generates nothing twice, and spends nothing the second time.
- Change one row and upload the file again, and only that row is generated again, as a new batch. The batch the old row made stays as it was.
- Two identical rows in one file are rejected, because they would be generated once. Give each its own lot number.
Last reviewed 19 Oct 2026 · Something wrong? connect@avrascan.com