Importing data
If you already keep your parts, bills of material or stock counts in a spreadsheet, you can load them in bulk from CSV files instead of typing them in one at a time. This is the quickest way to get a new company set up.
Permission
Importing needs the Edit parts, BOMs, inventory & imports permission. The Import menu item only appears for people who have it.
Import in this order
Each file loads one kind of data. Import them in this order, because each builds on the one before:
- Parts — every part number you use, including assemblies.
- BOMs — which parts go into which assemblies. Both must already exist as parts.
- Inventory — how much of each part you hold, and where. The parts must already exist.
Vendors, vendor sources and prices are not imported; add them afterwards (see Vendors & manufacturers and Parts & BOMs).
Preparing your file
On the Import page, the Expected columns table lists the columns for each kind of file. Click template beside one to download an empty CSV with the right header row, then fill it in with your spreadsheet program.
The first row must be the header row, with the column names spelled exactly as below (lower case, with underscores). Column order doesn't matter, and extra columns are ignored.
Parts file
| Column | Required | What it holds |
|---|---|---|
part_number |
Yes | Your part number. |
description |
Yes | One-line description. |
detail |
No | Longer notes. |
reorder_point |
No | Low-stock threshold, a whole number. Blank means 0 (not watched). |
If a part number already exists, that part is updated with the values in the file; otherwise a new part is created.
Updating existing parts overwrites them
When a row updates an existing part, a blank or missing detail clears the part's detail, and a blank or missing reorder_point resets it to 0. Include the current values for any part you don't mean to change, or leave those parts out of the file.
Parts can't be given a unit in the file: new parts are created with the unit ea. Change the Unit on the part's edit form afterwards for anything you count in metres, kilograms and so on (see Creating a part).
BOMs file
One row per BOM line.
| Column | Required | What it holds |
|---|---|---|
parent |
Yes | Part number of the assembly. |
part |
Yes | Part number of the component. |
quantity |
No | How many per assembly — a whole number, 1 or more. Blank means 1. |
Lines are added to the end of the assembly's BOM in the order they appear in the file. A line that already exists on the BOM is reported as an error rather than changed — edit existing quantities on the BOM edit page instead. Fractional quantities (such as 0.5 m) can't be imported; set them on the BOM edit page.
Inventory file
One row per part per location.
| Column | Required | What it holds |
|---|---|---|
part |
Yes | Part number. |
location |
Yes | Location name. A name that doesn't exist yet is created for you. |
quantity |
Yes | The quantity on hand, a whole number, 0 or more, in the part's unit. |
An inventory import is a stock-take: the quantity in the file replaces what BOMs Away holds for that part at that location. If the part has several stock rows there (one per receipt), they are combined into a single row holding the file's quantity. Parts and locations not in the file are left alone.
Tip
Because the quantity replaces the current stock, importing an inventory file twice doesn't double your stock.
Saving the file
Save as CSV UTF-8 (in Excel: File ▸ Save As ▸ CSV UTF-8 (Comma delimited)). Files up to 5 MB are accepted. Blank rows are skipped.
Running an import
- Click Import in the top menu.
- Under What are you importing?, choose Parts, BOMs or Inventory.
- Under CSV file, choose your file.
- Tick Dry run (validate only — save nothing) to check the file first. Recommended.
- Click Import.
A dry run checks every row exactly as a real import would, then throws the result away. If it passes you see what would happen:

When the dry run is clean, choose the file again, untick Dry run and click Import. The page confirms how many records were created and updated (and, for inventory, how many new locations were made).
When a file has errors
An import is all or nothing. If even one row has a problem, nothing at all is saved — so you never end up with half a file loaded and have to work out which rows went in.
Instead, BOMs Away checks every row and lists every problem it found, with the line number in your file (the header is line 1):

Fix all the listed rows in your spreadsheet, save it again, and re-upload. Common problems:
| Message | What to do |
|---|---|
| Missing required column(s): … | Check the header row spelling; download the template if in doubt. |
| part '…' or parent '…' does not exist. | Import the parts first, or correct the part number. |
| part '…' does not exist. | Same, for an inventory row. |
| quantity '…' is not a whole number. | Use whole numbers only; no units or decimals. |
| BOM entry already exists for this part. | The line is already on the BOM — remove the row, and change the quantity on the BOM edit page if needed. |
| … is a component of … | The line would make an assembly contain itself. Check parent and part aren't swapped. |
| File is not valid UTF-8 text — export it as CSV UTF-8. | Re-save the file as CSV UTF-8. |
| Duplicate column headers in the file. | Remove or rename the repeated column. |
| row has more values than columns. | A cell probably contains an unquoted comma; re-save from your spreadsheet program. |
Related pages
- Getting started — the overall order for setting up a new company.
- Parts & BOMs — editing parts and BOMs after import.
- Inventory & locations — adjusting stock after import.