Importing Inventory
Bulk import assets from a CSV or Excel file: required columns, template download, duplicate handling, and import history.
Where to Import
Open Inventory from the sidebar. Next to Add Asset, click Import CSV to start the import. The import flow has three steps: Upload → Preview → Results.

Supported Files
- Formats: CSV (
.csv) or Excel (.xlsx,.xls) - Size limit: 10 MB
- First row: Must be headers. Column names are matched case-insensitively; spaces become underscores (e.g.
Total Quantity→total_quantity).
Step 1: Upload
- Click Import CSV on the Inventory page.
- Either drag and drop a file onto the upload area or click to choose a file.
- Optionally click Download template to get
inventory_import_template.csvwith the correct column headers and one example row. - After you select a file, Cura parses and validates it, then moves you to Preview.
Step 2: Preview
The preview step shows:
- New assets — Rows that will create new inventory items.
- Updates — Rows that match an existing asset by SKU or name; the existing asset’s quantity is increased (no duplicate asset is created).
- Errors — Rows that failed validation (e.g. missing name). These are not imported.
You can review the list and fix your file if needed, then run the import again. When ready, confirm to run the import.
Step 3: Results
After the import runs, you’ll see how many assets were created and how many were updated, and any errors by row. You can then close the dialog or run another import.
Required and Optional Columns
| Column | Required | Notes |
|--------|----------|--------|
| name | Yes | Asset name. Rows without a name are skipped with an error. |
| sku | No | SKU/code. Used with name to detect duplicates. |
| category | No | Category label. |
| description | No | Free-text description. |
| condition | No | One of: excellent, good, fair, poor. Invalid values default to excellent. |
| color | No | Color. |
| material | No | Material. |
| total_quantity | No | Integer ≥ 1. Invalid or missing defaults to 1. |
| status | No | One of: available, committed, deployed, partially_deployed, unavailable, retired. Invalid values default to available. |
| location_name | No | Must match an existing location name (case-insensitive). Create locations under Settings → Locations first if needed. |
| length, width, height | No | Numbers (e.g. inches). Invalid values are skipped. |
| purchase_price, price_per_job, replacement_value | No | Numbers. Only applied if your role can edit financials. Invalid values are skipped. |
| purchase_date | No | Date in YYYY-MM-DD format. Invalid format is skipped. |
| tags | No | Comma-separated; # is added automatically if missing (e.g. staging, premium → #staging, #premium). |
| url, affiliate_link | No | Valid URLs; invalid values are skipped. |
Duplicate Handling
- Duplicate = an existing asset with the same SKU (if provided) or the same name (case-insensitive).
- For duplicate rows, Cura adds the row’s quantity to the existing asset; it does not create a second asset.
- Rows that are not duplicates create new assets.
Tips
- Use the template — Download the CSV template and fill it in so headers and formats match.
- Locations — Add locations in Settings → Locations before importing if you use
location_name. - Financial columns — Purchase price, price per job, and replacement value are only applied for users with permission to see/edit financial data.
- Import history — Use the Import History button on the Inventory page to see past imports and details.
Related
- Adding Assets — Add a single asset manually.
- Settings → Locations — Create locations so
location_namein your file can be resolved.