Skip to main content
Batchlane imports CSV files by filename. Upload one or more supported files, run Validate / dry run, fix every reported row error, then queue the import. Dry runs do not create jobs, documents, lots, items, customers, or audit events. The first data row is row 2 because row 1 is the header row.

Import rules

  • Owners and admins can import core data.
  • File names matter. Unsupported file names are rejected.
  • Referenced records must already exist or be included in the same import bundle.
  • Dry-run errors should be fixed in the source CSV, not worked around inside the app.
  • Queued import jobs store their source bundle as an import document for audit history.

Core data files

Upload these files from Settings > Import / Export.
FileRequired columnsOptional columns
items.csvsku, nametype, unit, storage, reorder_point, standard_cost, shelf_life_days, allergens
lots.csvinternal_lot, sku, quantitysupplier, supplier_lot, location, unit, cost, status, received_at, expiry
recipes.csvcode, output_sku, yield_quantityname, version, yield_unit, status
recipe_components.csvrecipe_code, component_sku, quantityversion, unit, component_type
orders.csvorder_number, customer, item_sku, quantityunit, status, requested_ship_date, billing address columns, shipping address columns
Core imports are validated and applied in this order: items, lots, recipes, recipe components, then orders.

Accepted values

FieldAccepted values
Item typeraw_material, packaging, wip, finished, finished_good
Lot statusavailable, hold, quarantined, consumed, shipped
Recipe statusdraft, active
Order statusdraft, allocated, partially_allocated
DatesYYYY-MM-DD
Blank item type defaults to raw material. Blank lot status defaults to available. Blank recipe status defaults to draft. Numeric quantities and yields must be greater than zero. Costs and reorder points must be zero or greater.

Address book files

Upload these files from Address Book > Import / Export. See Address book for operating context.
FileRequired columnsOptional columns
customers.csvnamecustomer_code, code, contact_email, phone
customer_addresses.csvcustomer, line1label, line2, city, region, postal_code, country, contact_name, phone
suppliers.csvnamecode, contact_email, phone, approved
supplier_addresses.csvsupplier, line1label, line2, city, region, postal_code, country, contact_name, phone
Customer names must be unique within customers.csv. Supplier names must be unique within suppliers.csv. Address labels must be unique per customer or supplier in the same address file. Blank address labels default to Default. Blank country values default to US.

Examples

Example items.csv:
sku,name,type,unit,storage,reorder_point,standard_cost,shelf_life_days,allergens
RM-TOMATO-PASTE,Tomato paste,raw_material,lb,Ambient,25,12.50,365,milk;soy
Example lots.csv:
internal_lot,sku,quantity,supplier,supplier_lot,location,unit,cost,status,received_at,expiry
LOT-0001,RM-TOMATO-PASTE,120,Acme Ingredients,A-7781,Receiving dock,lb,12.50,available,2026-06-17,2027-03-31
Example orders.csv:
order_number,customer,item_sku,quantity,unit,status,requested_ship_date,ship_to_line1,ship_to_city,ship_to_region,ship_to_postal_code,ship_to_country
SO-1001,Corner Market,FG-SAUCE-12OZ,24,case,draft,2026-06-24,100 Market St,Raleigh,NC,27601,US

Validation report

The dry-run report lists row counts and validation errors before anything is queued. Error locations use file row N; for example, items.csv row 2 points to the first data row in items.csv. Fix all reported errors before queueing the import. If a queued import later fails, the job history keeps row-level validation details. Related pages: Implementation checklist, Settings and roles, Common errors, Reports.