Importing Brewery Inventory Items
Typing in every malt, hop and yeast you own one item at a time is slow. If your ingredients already live in a spreadsheet, or in another brewery system like Ollie or Ekos, you can bring them into BarSight in one upload. The Import CSV tool on the Inventory page reads your file, shows you a preview, then creates the items, their categories, their vendors and your opening stock counts in a single step.
Before You Start
- Your account must be on a paid plan or an active trial. File uploads are not available otherwise.
- Decide which facility the stock is in. Each facility counts its own inventory, and the whole file is imported into the facility you pick.
- Have your file saved as a
.csv. Excel, Google Sheets and Numbers can all export to CSV using File → Save As or File → Download. Choose plain CSV (Comma delimited). - You do not need to create categories or vendors first. Any the import does not recognize are created for you.
Step 1: Prepare Your CSV File
The quickest way to get the format right is to start from our sample file. It is a small ingredient list with malt, hops, yeast, water treatment and finings, including items that have more than one lot.
Open the sample in your spreadsheet program, replace the example rows with your own ingredients, and save it as a CSV again. Keep the first row as it is. BarSight uses that header row to work out which column is which.
Columns BarSight Recognizes
Column order does not matter, and you can leave out any column you do not need. A column with a heading BarSight does not recognize is ignored. Headings must be typed exactly as shown.
| Column Heading | Required? | What to Enter |
|---|---|---|
Title |
Yes | The item name. Name and Item also work as headings. |
Stock |
Recommended | The quantity on hand, as a number. On Hand, Quantity and Quantity On-Hand also work. |
UOM |
Recommended | The unit the item is counted in, such as kg. See the list of units below. Unit of Measure also works. |
Lot Number |
No | The lot or batch code from your supplier. Lot Code also works. Without the column, stock is entered under a lot called Imported. If you include the column, fill in every row. |
Category |
No | A label for filtering your list, such as Hops or Malt. Type and Ingredient Category also work. |
Brand |
No | The maker or maltster. |
Vendor |
No | Your preferred supplier. A vendor that does not exist yet is added to your vendor list. |
Vendor SKU |
No | The supplier's product code, which prints on purchase orders. SKU also works. |
Default Price |
No | What you normally pay, as a plain number such as 2.45. A leading $ is fine. Price also works. |
Price Per |
No | The unit the price is for, such as kg for a price per kilogram. For items counted by the each, enter ea. It must be the same kind of unit as UOM, weight with weight and volume with volume, or BarSight quietly treats it as each. |
Taxable |
No | Yes or No. Leave it out or blank and new items are marked taxable, the same as when you add an item by hand. An existing item keeps its setting unless you enter Yes. |
Tax |
No | The tax applied when you buy the item, as a code such as GST, a percent, or None. Leave it out or blank and new items get your default tax. See the notes on taxes below. |
Purchase UOM |
No | The unit you buy in, if different from UOM. Fill in every row or leave the column out, because a blank cell resets the item's purchase unit to each. |
Warn Level and Alert Level |
No | Quantities that flag the item when stock falls to them. See Set Inventory Warning & Alert Levels. |
Notes |
No | Anything you want kept on the item. |
You can also include a GL Account column. It must match an account you have already set up in BarSight, and anything that does not match is left blank.
The Tax column takes a tax code such as GST or GST+PST, a percent such as 5 or 5%, or 0 for none. Codes match your own taxes, ignoring capital letters, spaces and punctuation, and a percent matches the tax you have set up at that rate. A new item with a blank or unrecognized tax is marked taxable and gets your account's default tax. Enter None or 0 to create it as not taxable. An item that already exists keeps its tax unless the file names one. BarSight never creates a new tax during an import. The preview has a Tax Used column, and a highlighted cell shows where the default tax will be used. Hover over it to see why.
[SCREENSHOT: The sample CSV open in Excel with the header row highlighted and the quoted "Pale Malt, 2-Row" title visible]
Units of Measure
Use the short abbreviation. A few full names also work, such as kilogram, pound, gram and liter, but plurals and alternate spellings do not.
- Weight:
kg,lb,g,oz - Volume:
l,ml,hl,gl(gallon),qt,bbl - Count:
ea(each)
Words like kilos, pounds or liters are not recognized. An unreadable UOM shows in red in the preview, and the item is set up as each if you import it anyway. The same fallback happens to an unreadable Price Per or Purchase UOM, but those are not highlighted, so check them yourself.
Items With More Than One Lot
When you hold the same ingredient from two deliveries, give it one row per lot. Repeat the Title exactly, and use a different Lot Number and Stock on each row. In the sample file, Pale Malt, 2-Row has two lots and so does Centennial Pellets.
- BarSight creates the item once and adds each lot as its own stock.
- The price, vendor and warning levels belong to the item, not the lot. Repeat the same values on each row so there is no doubt which one applies.
- A title with a comma in it, like
Pale Malt, 2-Row, needs quotation marks around it. Your spreadsheet adds them for you when it saves the CSV.
Things to Leave Out
- Totals or summary rows. Any row with something in the Title column becomes an item.
- Blank lines and notes above the headings. The headings must be the very first row.
- Thousands separators in prices. Enter
1250.00, not1,250.00, or the price is read as zero.
Step 2: Upload the File
- Navigate to Brewery → Inventory.
- Click Import CSV in the toolbar.
- In the Import into Inventory window, choose the Location the stock is in.
- Choose the Inventory Type: Ingredient, Consumable or All. Every item in the file gets this type, and All imports the items as ingredients.
- Click CSV File, choose your file, and click Upload.
[SCREENSHOT: Inventory toolbar with Import CSV highlighted, and the Import into Inventory window showing Location, Inventory Type and the CSV File picker]
If the window says you do not have access, ask your account owner to give your access group permission to manage the brewery inventory.
Cleaning supplies, can lids and labels are consumables, so import them in their own file with Consumable selected. Containers (such as can sleeves and keg shells) and deposit items are not imported this way. Add those by hand so you can enter their volume and deposit details.
Step 3: Review the Preview
BarSight shows your file as a table before anything is saved. Check these things:
- Column headings show the name BarSight matched each one to. A column it could not match says -Unused- in red and will be ignored. If a column you wanted says -Unused-, fix the heading in your file.
- Rows highlighted in green are items BarSight already has, matched by title. They are updated instead of duplicated.
- Struck-through stock or lot cells on a green row mean that item already has stock, so its existing quantities will not be overwritten. A lot number BarSight has not seen before is still added, as described below.
- Red cells are a problem, usually a unit of measure BarSight does not recognize.
[SCREENSHOT: Import preview with a green existing-item row, a struck-through stock cell, a red unit cell and one -Unused- column heading]
If anything looks wrong, close the window, correct the file and upload it again. Nothing is saved until the next step.
Step 4: Import
- Click Import into Database at the top of the preview.
- When it finishes you are taken back to the Inventory page, where your new items are listed. Scan the list to confirm everything came in, since the import does not report rows it had to skip.
For each row BarSight:
- Creates the item, or updates it if one with the same title already exists.
- Adds any new category or vendor to your lists.
- Records your Stock as a manual count in the facility you chose, under the lot you gave it.
Importing Into Items You Already Have
You can import again at any time, and BarSight matches rows to existing items by title. What happens depends on the item:
- An item with no stock yet receives the quantity from the file.
- An item that already has stock keeps its current quantities. A Lot Number BarSight has not seen before for that item is still added as a new lot, so you can bring in a new delivery this way.
- Filled cells replace the saved price, vendor, brand, category and notes. Blank cells leave them alone.
- An existing item keeps its type and its unit of measure. An import never changes either, so correct them on the item itself.
To add many lots to a single item, open the item and use Import Lot Counts. It reads a serial or lot number and a quantity from each row of a file, shows you a preview, and skips serial numbers that are already on a keg tracked item. See Importing Lot Counts and Keg Serial Numbers.
Moving From Ollie or Ekos
If you are switching from another brewery system, export your raw materials to a CSV and import that file. Most columns line up on their own, and a few need a quick change in your spreadsheet first. Always check the preview for -Unused- headings, because exports from other systems can change over time.
From Ollie
An Ollie raw materials export has the columns Type, Name, Lot Code, Price, Price Units, On Hand, On Hand Units and Notes. Items held in more than one lot already come as one row per lot, which is the format BarSight wants.
| Ollie Column | What Happens |
|---|---|
Name, Lot Code, Price, On Hand, Notes |
Recognized automatically. |
Type |
Becomes the item Category, so values like Grain and Hop turn into categories. |
On Hand Units |
Not recognized. Rename the heading to UOM, then change the values: kilos to kg, pounds to lb, grams to g, liters to l. |
Price Units |
Not recognized. Rename the heading to Price Per, then change the values: per kilo to kg, per pound to lb, per gram to g, per liter to l. |
Ollie names often include the supplier, like Pale Ale Malt: Prairie Malt Co.. BarSight uses the whole name as the Title. If you would rather keep the maker in its own field, split it into a Brand column before you import.
From Ekos
An Ekos raw ingredients export has the columns Title, Item Class, Ingredient Category, Cost Center, UOM, Quantity On-Hand, Quantity Reserved, Quantity Available, Average Cost and Total Value.
| Ekos Column | What Happens |
|---|---|
Title, UOM, Quantity On-Hand |
Recognized automatically. Ekos units such as kg, g, l, ml and lb already match. |
Ingredient Category |
Becomes the item Category. |
Average Cost |
Not recognized. Rename the heading to Default Price to bring your costs across. The dollar signs are fine. |
| (new column) | Add a column headed Price Per and copy the UOM values into it. Ekos costs are per unit of measure, so this keeps your costing accurate. |
Item Class, Cost Center, Quantity Reserved, Quantity Available, Total Value |
Not used. Leave them in or delete them. Item Class shows as a matched heading in the preview, but its values are ignored. The Inventory Type you pick in the upload window is used instead. |
- Delete the last row. Ekos ends the file with a
Grand Totalsrow, which would otherwise be imported as an item. - There is no lot column. All stock is entered under a lot called
Imported. Add aLot Numbercolumn first if you want your real lot codes. - Items with zero on hand are still created, just without any stock.
[SCREENSHOT: Import preview of an Ekos file after renaming Average Cost to Default Price, with every column heading matched]
Ollie and Ekos are trademarks of their respective owners. BarSight is not affiliated with or endorsed by either company. Their names are used here only to describe which files this importer can read.
Tips and Best Practices
- Match titles exactly across lot rows.
Pale Malt, 2-RowandPale Malt 2-Rowbecome two separate items. - Check category and vendor spelling. Capital letters do not matter, but each new spelling creates a new entry, so
HopandHopsend up as two categories. - Count first, then import. The stock you import is recorded as received on the day you upload, so take your physical count before you import, not after.
- Set warning levels now. Adding
Warn LevelandAlert Levelcolumns saves a trip through every item later. - Keep your original export. If you need to redo the import, you will want the untouched file to start from.
Troubleshooting
Problem: I see "Invalid CSV Upload file (0 rows found)".
Solution: The file is not a true CSV. Use Save As in your spreadsheet program and choose CSV (Comma delimited). Files saved as .xlsx will not work.
Problem: I see an error about "the required Id or Title for inventory items".
Solution: BarSight cannot find a Title column. Rename the heading that holds the item names to Title. Check too that your file uses commas between columns, because files that use semicolons are read as a single column.
Problem: The first column heading says -Unused-, even though it is spelled correctly.
Solution: Some programs add an invisible marker to the start of the file when you save as CSV UTF-8. Save as plain CSV (Comma delimited) instead. If that column was Title, you will also get the error about the required Id or Title.
Problem: I fixed a wrong unit in my file and imported again, but the item still shows the old one.
Solution: Importing never changes the unit of an item that already exists. Edit the unit on the item itself.
Problem: A unit is red in the preview.
Solution: BarSight does not recognize it. Change it to an abbreviation from the list above, such as kg or lb.
Problem: Prices came in as zero.
Solution: The price cell contains something other than a plain number, such as a thousands comma or text. Remove it and import again.
Problem: The stock for an item I already had did not change.
Solution: That is by design. An item that already has stock keeps its quantities so an import cannot overwrite your counts. To correct a count, use Edit Stock Level on the item. See Adding Items to Your Inventory.
Problem: Everything was imported as an ingredient, but some of it is a consumable.
Solution: Every new item in a file gets the Inventory Type chosen in the upload window. For next time, put consumables in a separate file and import it with Consumable selected. Items that were already imported keep their type, so remove them or change them by hand, then import again.
Related Features
- Adding Items to Your Inventory, including units of measure and purchasing settings.
- Setup Raw Ingredients with Price Per Unit
- Set Inventory Warning & Alert Levels
- Fix Inventory Fast with Create Manual Inventory
- Activating the Brewery Inventory Module