Import items & BOM — bulk-load your product catalogue
If your products already live in a spreadsheet or another system, Brytebuild's Data Import lets you load your entire catalogue from a single Excel file in minutes. Once imported, set up Bills of Materials for your assemblies directly in the app.
Section 01
Before you start
2 minutes to read
Brytebuild has three separate importers, all accessible from the same screen. This guide covers Products — the others work identically.
Products
Your full product catalogue — names, IDs, pricing, barcodes and stock levels.
Customers
Customer company names, contacts, addresses and account details.
Suppliers
Supplier company names, contacts, countries and postal codes.
Use import when you have more than 15–20 products to load, or when migrating from a spreadsheet or another system. For smaller catalogues, adding products manually through Products → Inventory → + New is quicker. You can mix both — import in bulk first, then add individual products manually.
Key rules before you start
If any single row fails validation, the entire import is rejected and nothing is saved. All errors are reported by row so you know exactly what to fix. This protects you from ending up with a half-loaded catalogue.
- Always export the template first — never start from a blank file. The exported file contains the correct column headers, valid field values and your existing records pre-filled.
- The ID column is a UUID — leave it blank for new records. For updates, keep the existing UUID exactly as exported. Changing it creates a duplicate instead of updating.
- Status must be lowercase —
activeorinactive, notActive. - Numbers must be plain decimals — no currency symbols (£, $) and no commas. Write
49.99not£49.99. - BOMs are not in the import file — Bills of Materials are set up inside the app after importing. See Section 05.
Section 02
Get the template
2 minutes
Always start by exporting from Brytebuild. The exported .xlsx file gives you the correct column structure, valid field values, and — if you already have products — your existing records pre-filled so you can update them.
An .xlsx file downloads immediately. Open it in Excel. It contains a single worksheet called products with one row per product and 17 columns. If your account has no products yet, you'll see the header row only — that's expected for a first-time import.
Section 03
Fill in the Products sheet
5 minutes
Each row represents one product. Fill in as many columns as you have data for. Only name, product_id, status and unit are strictly required.
Column reference
| Column | Required? | Format & notes |
|---|---|---|
id |
Auto | UUID assigned by Brytebuild (e.g. 0dd8b99a-866c-41ea-afc8-6bdefbf5451a). Leave blank for new records. Keep it exactly as exported when updating existing records — do not alter it. |
product_id |
Required | Your internal part number or reference code. Can be letters, numbers or a mix — e.g. CSS-040 or 456. Must be unique within your account. |
name |
Required | The product name your team uses — e.g. Carbon Steel Shaft 40mm. |
description |
Optional | Free-text notes about this product. Can be left blank. |
status |
Required | active or inactive — lowercase only. Active products appear in order and inventory screens. |
unit |
Required | Unit of measure. Common values: ea, pcs, kg, g, ml, m, cm, in. Check your exported template for the full accepted list. |
price |
Optional | Sale price charged to customers. Plain decimal: 49.99. No currency symbols or commas. |
cost |
Optional | Your purchase or production cost. Same format as price. |
tax_rate |
Optional | VAT or tax rate as a decimal: 20.00 for 20% VAT. Leave blank to use account default. |
sku |
Optional | Stock Keeping Unit code — e.g. SKU-Assembly-3. Alphanumeric. |
ean |
Optional | EAN-13 barcode — exactly 13 digits. Format this column as Text in Excel before entering values, or Excel will strip leading zeros. |
upc |
Optional | UPC barcode — exactly 12 digits. Same Excel Text formatting tip applies. |
minimum_stock_level |
Optional | Triggers a low-stock alert when stock falls below this quantity. Decimal format: 15.000000 or simply 15. |
max_stock_level |
Optional | Upper stock limit for replenishment planning. |
reorder_quantity |
Optional | Default quantity to order when stock falls below minimum. |
costing_method |
Optional | Cost accounting method. Leave blank to use account default. |
revenue_account_code |
Optional | Accounting integration code (e.g. for Xero or Sage). Leave blank if not using accounting integrations. |
What a filled sheet looks like
Here's what real data from a Brytebuild export looks like. Existing records have UUIDs in the id column — leave it blank for new ones.
| id | product_id | name | description | status | unit | price | cost | sku | ean | minimum_stock_level | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 0dd8b99a… | 456 | 040424 | 040424 | active | ea | 50.00 | 20.00 | 321 | 3333333333333 | 15.000000 |
| 3 | aa2f98c4… | 32 | 061123 | 061123 | active | ea | — | — | — | 323232 | 0.000000 |
| 4 | f4c4e689… | 230424 | 230424 | 230424 | active | in | 50.00 | 10.00 | asd2-32d-as | — | 6.000000 |
| 5 | (blank) | NEW-PART-01 | New Product | Brand new item | active | pcs | 25.00 | 8.50 | — | — | 50.000000 |
Row 5 shows a new product — the id column is blank, so Brytebuild creates it fresh and assigns a UUID. Rows 2–4 have existing UUIDs so they are updated, not duplicated.
When you re-import with existing UUIDs in the id column, Brytebuild updates those records with whatever values are in the file. Any fields left blank in the file will clear the corresponding field in the database — so include all data you want to keep, not just the fields you're changing.
Section 04
Run the import
Under 2 minutes
Select your filled file
Click Import from Excel, browse to your .xlsx file and select it. Brytebuild reads the products worksheet.
Validation runs automatically
Before saving anything, Brytebuild checks every row. Two outcomes:
- All rows pass — records are created or updated. A success message confirms how many rows were processed.
- Any row fails — the entire import is rejected. An error list shows exactly which rows failed and why. Nothing is saved.
Verify in Inventory
Go to Products → Inventory and confirm your products are listed correctly with the right names, IDs, pricing and stock levels.
Your catalogue is now in Brytebuild. Re-run the import any time to update records — export first to get current UUIDs, edit your values, then import back. For assemblies, continue to Section 05 to add their Bills of Materials.
Section 05
Set up Bills of Materials in the app
2–3 minutes per assembly
The product import file contains a single products sheet — there is no BOM column or BOM sheet in the import. Bills of Materials are configured directly inside each Assembly in the app after importing.
Make sure all Items (raw materials and components) that go into an Assembly are already in Brytebuild before you build the BOM. Import your Items first, verify they appear in Inventory, then set up your Assembly BOMs.
How to build a BOM in the app
Adding components to an Assembly
Open the Assembly from your Inventory list and click the Bill of Materials tab.
The top table shows your full Item Catalogue. Use Search to filter. Set the Quantity for each component, then tick Choose Items to add it.
Selected components appear in the Selected BOM Items table below. Review quantities. Click Remove to take a component out.
When all components are added and quantities confirmed, click Save BOM. Brytebuild uses this BOM to calculate material requirements for every production job that uses this Assembly.
Every BOM quantity error causes Brytebuild to miscalculate material requirements for every production job that uses this Assembly. Double-check quantities before saving — a shaft that needs 2 bearings listed as 1 will result in half the bearings being allocated on every job.
Section 06
Common import errors & fixes
Reference
When an import fails, Brytebuild shows a list of errors with the row number and a short message. Here are the most common ones.
| Error | Cause | Fix |
|---|---|---|
| Required field missing: name | The name column is empty on this row. | Add a product name. |
| Required field missing: product_id | The product_id column is blank. | Add your internal part number or reference code. |
| Invalid value for status | Status contains Active or ACTIVE instead of lowercase active. |
Change to exactly active or inactive — lowercase only. |
| Duplicate product_id: CSS-040 | Two rows share the same product_id, or the product already exists and the id (UUID) column is blank — creating a duplicate instead of updating. |
Either make the product_id unique, or fill in the existing UUID in the id column so it updates instead of creating. |
| Invalid number: price | Price contains a currency symbol or comma — e.g. £49.99 or 49,99. |
Remove all formatting. Enter 49.99. |
| EAN must be 13 digits | Excel stripped leading zeros (e.g. 0123456789012 became 123456789012) or the barcode is the wrong length. |
Format the ean column as Text in Excel before entering barcodes, then re-paste the values. |
| Invalid unit: pieces | The unit value isn't in Brytebuild's accepted list — e.g. pieces instead of pcs. |
Check the accepted values from the exported template or use a value visible in an existing row. |
The error list shows every failing row, not just the first one. Fix everything in your spreadsheet before importing again — there's no partial-fix benefit since the whole file is revalidated each time.