The same rules as adding stock by hand
- Every row is checked before anything is created. The import used to accept the sheet as-is: a blank tax category, a missing purchase price or an IMEI of 1 went straight into live stock, because only the Add Stock form enforced those rules. Both doors now share one rule set, so what the form rejects the spreadsheet rejects too
- Nothing is imported until the whole sheet passes. A bad row is named with its row number and what is wrong with it, rather than importing the good rows and leaving you to find the rest
- A computer row must carry its storage, since a computer's record is identified by it