Skip to main content

Import types

The Data Import Hub in the portal additionally exposes store, product, category, and product-image imports; see the user guide for that workflow. Each import runs in an ImportBatch record tracking row counts and per-row errors. Employee, rule set, opening-balance, stock-level, production-batch, replenishment, store, and product imports accept large JSON request bodies (up to 20 MB) so multi-thousand-row files upload cleanly. Category and product-image imports use the standard request size limit.

Row caps

Files above a cap return the row-cap error rather than a generic upload failure, so an oversized file is rejected by validation with a clear message:
  • Opening-balance imports cap at 50,000 data rows. See Entitlement engine for the opening-balance rule details.
  • All three stock imports (stock levels, production batches, replenishment orders) also cap at 50,000 data rows.
  • Employee and rule set imports have no explicit row cap and are bounded only by the 20 MB request size limit.
A file above its cap returns the error message “Split the file and retry”: split the file into smaller parts and run them as separate imports.

Employee import

CSV columns

The parser accepts common header aliases (for example Staff No, Personnel Number, Full Name) in addition to the canonical names above.

Import flow

Partial failure tolerance

  • Valid rows are imported; invalid rows are skipped with a per-row error message
  • Existing employees are updated (upsert by employee number); new employees are created
  • Imports are not rolled back on partial failure
  • Missing stores can be auto-created when the option is enabled in the import dialog

Scoping

The importer extracts the client from the user’s roles, assigns every imported employee to that client, and validates store references against the client’s stores. Admins may pass an explicit clientId to narrow the target client; it can never widen their scope.

Rule set import

CSV columns

Rows are grouped by client code and rule set name, so one rule set spans multiple rows, each contributing one allocation item. Criteria are not part of the CSV import; they are configured in the Entitlement Rules UI after import.

Validation