Importing Packaged Products (Final Products)
Packaged products are the finished beer you can sell: cases of cans, four-packs, kegs. If you already know what is on your shelves and in your cold room, you do not have to build each product by hand. The Import CSV tool on the Packaged Products page reads a simple file, shows you a preview, and then creates the products, their package groups, their prices and your opening stock counts. It can also update prices, deposits, SKUs and UPCs on products you already have.
Before You Start
- Your account must be on a paid plan or an active trial, and you need full access to the Packaged Products page. The import option only appears for people who have it.
- Switch to the right facility first. New stock counts are recorded at the facility you are working in when you import. See Brewery Facilities Explained.
- Count what you have on hand. The numbers in your file become your opening stock, so the count should be as accurate as you can make it.
- You do not need to create products or package groups first. Anything the import cannot match is created, but see What Gets Created below before you decide to skip setting up your package groups.
What the Import Does and Does Not Do
- It creates finished products ready to sell, with a stock count at your current facility.
- It does not use up any raw ingredients or packaging materials. The stock simply appears, which is what you want when you are loading what you already have.
- It does not create batches. Imported stock has no batch behind it and is recorded under the lot name
Imported. - It can update the price, deposit, visibility, SKU and UPC of products you already have, but it cannot change their stock counts. See Updating Existing Products.
- It does not import orders or customers. See Importing Brewery Orders for that.
Step 1: Prepare Your CSV File
The quickest way to get the format right is to start from our sample file. It holds nine fabricated products in cans and kegs, with prices, deposits and stock counts. The three beers match the ones in the sample file from the orders import guide, so you can try the two together.
Open it in your spreadsheet program, replace the example rows with your own products, and save it as a CSV again. Keep the first row as it is, because BarSight uses it to work out which column is which. Use one row for each product and package combination, so a beer sold as a keg, a case and a four-pack has three rows.
Columns BarSight Recognizes
Headings must be typed exactly as shown, including capital letters. Column order does not matter, and if two columns would map to the same field the one furthest left is used.
| Column Heading | Required? | What to Enter |
|---|---|---|
Product |
Yes | The beer's name, such as Prairie Pale Ale. BarSight looks for a product with exactly this name and creates one if there is none. If you leave out the Package column, see One Column for Both. |
Package |
Yes, unless the package is part of the Product text | The package group, such as 24 x 355ml - Can or Keg - 50L, spelled the same as your package group in BarSight. Container also works as a heading. Fill in every row, because a blank cell would create a package group with no name. |
Stock |
No, but you will want it | How many you have on hand right now, as a number such as 84. Available Count also works as a heading. A blank cell gives a stock of zero. |
Price |
No | The selling price for one, as a number such as 48.00. |
Deposit |
No | The container deposit charged for one, as a number such as 2.40. |
SKU |
No | Your stock-keeping code for the item, such as PPA-C24. In BC, the LDB price import finds your products by SKU, so enter the LDB SKU if you have it. |
UPC |
No | The barcode number. Keep it as text in your spreadsheet so a long number is not turned into 6.28E+11. |
Visible |
No | Whether customers can order it through the ordering portal. Type No (or false) to hide it. Anything else, or a blank cell, leaves it visible. |
Tax |
No | The tax for the product: one of your tax codes such as GST, a percent such as 5%, or 0 for none. A blank cell gives a new product your default tax. See How Tax Is Worked Out. |
Stock Id |
Only to update | The id of an existing stock record, which is how BarSight knows a row is an update and not a new product. You get it from Download CSV. Leave the column out of a file that only has new products. |
Any other columns in your file are ignored and shown as -Unused- in the preview, so you can leave extra columns in if they are useful to you.
[SCREENSHOT: The sample CSV open in Excel with the header row highlighted]
One Column for Both
If your file has no Package column, BarSight splits the Product text at the first hyphen. Everything before it is the product and everything after it is the package, so Prairie Pale Ale - 24 x 355ml - Can becomes the product Prairie Pale Ale in the package group 24 x 355ml - Can. A row with no hyphen goes into a package group called Unknown Package Group.
This only works when your beer names have no hyphen of their own. A name like Cedar-Smoke Stout would be cut in the wrong place. In that case, give the package its own column.
What Gets Created
For each new row, BarSight works through the same steps:
- The product. If no product has exactly that name, one is created. It gets the first beer style in your list, a random colour, and an abbreviation made from the first three letters of its name.
- A recipe called Imported. Every product needs a recipe for its stock to hang on, so BarSight adds an empty one with an ABV of 0. You can fill it in later, or merge it into a real recipe. See Merge Product Recipes.
- The package group. If no package group has exactly that name, one is created with only a name. It will not have the sizes, units or other settings a package group normally has, so open it afterwards and fill them in. It is quicker and safer to set up your package groups first. See Defining Packaging Groups.
- The price, deposit, SKU, UPC and visibility from your file.
- The tax from your Tax column, or your default tax when the cell is blank. See How Tax Is Worked Out.
- The stock. A stock record under the lot name
Imported, with your count at the facility you are working in.
Names are matched exactly. 6 Pack, 6-Pack and 6pk are three different package groups, so use the same spelling on every row.
How Tax Is Worked Out
Every product needs a tax, because it is copied onto each order line. BarSight reads the Tax cell like this:
- A tax code or name, such as
GST,GST+PSTorHST. It is matched to your own taxes, ignoring capital letters, spaces and punctuation, sogst + pstfindsGST+PST. The codes are the ones on your Taxes setup screen. - A percent, such as
5,5%or0.05. BarSight uses the tax you have set up at that rate. The rate is the combined rate, so12finds a GST + PST tax and not a separate PST. - Zero or
Nonemeans no tax. - Blank, or something BarSight cannot match. A new product gets your default tax, and an existing product keeps the tax it has. BarSight never creates a new tax during an import.
The preview shows a Tax Used column. A highlighted cell means your default tax will be used, either because the file had no tax or because the value was not recognized. A message above the table counts them, and hovering over a cell tells you why.
Step 2: Upload the File
- Navigate to Brewery → Packaged Products.
- Open the New Packaged Product menu in the toolbar and choose Import CSV.
- In the Import into Packaged Products window, choose your file under CSV File.
- Click Upload.
[SCREENSHOT: New Packaged Product menu open with Import CSV and Download CSV highlighted]
Step 3: Review the Preview
BarSight shows your file as a table before anything is saved. Each column heading shows the name it was matched to, and a column it could not match says -Unused-. If every heading says -Unused-, check that the first row of your file holds the headings.
- Rows that will be created as new products are highlighted.
- Rows with a Stock Id are updates, and are not highlighted. Their Stock cell is greyed out, because stock counts cannot be changed by an update.
The file needs a Product or a Stock column. If it has neither, you see "Invalid CSV Upload file" and nothing can be imported.
[SCREENSHOT: Import preview with the new rows highlighted and every column heading matched]
If anything looks wrong, close the window, fix your file and upload it again. Nothing has been saved yet.
Step 4: Import
- Click Import into Database at the top of the preview.
- BarSight creates the products and returns you to the Packaged Products page.
- Check a few products. Look at the price, the stock count and the package group.
You can run the same file of new products again without doubling anything. A product, package group and stock record that already exist are found again, the price, deposit, SKU and UPC are refreshed, and the stock count at your facility is set to the number in the file. It is not added to what is already there.
Updating Existing Products
The same tool can change prices, deposits, SKUs, UPCs and visibility for products you already have. This is quicker than editing them one at a time, for example when you raise your prices.
- On the Packaged Products page, open the New Packaged Product menu and choose Download CSV. The file lists your packaged stock, with the counts for your current facility, and includes a
Stock Idcolumn. Its extra columns, such as Recipe, Lot and Reserved, are ignored when you upload it again. - Change the
Price,Deposit,SKU,UPC,VisibleorTaxcells you need. Leave the Stock Id as it is. - Upload the file with Import CSV as before.
Some things to know before you rely on it:
- Stock counts are not changed. The Stock column is ignored when a row has a Stock Id. To correct counts, use the adjustments on the Packaged Products page.
- A blank cell means no change. Only the cells you fill in are updated, including the Tax. If you type a tax BarSight does not recognize, the product keeps the tax it has.
Moving From Another System
If you are switching from another brewery system, use its report of finished goods or packaged inventory. You need one row for each product and package, with a count. Rename the headings to match the table above, and delete rows such as totals. The sales exports from Ollie and Ekos list what was sold and not what is on hand, so build your stock file from your inventory report, or from a count of your shelves.
If you are also importing your sales history, either order works as long as the product names or SKUs agree between the two files. Otherwise the second import creates duplicates of what the first one made. See Importing Brewery Orders.
Tips and Best Practices
- Set up your package groups first. The ones the import creates have only a name.
- Use the exact same names every time. The product and package text decide whether you get one product or two.
- Count, then import. The numbers in the file are your opening stock, so count first and import on the same day.
- Use the LDB SKU in BC. It keeps your products matched to the LDB price list and the batch report. See Importing Products and Pricing from the BC LDB Price List.
- Prices and deposits can have a
$sign or commas.$1,200.00is read as 1200.00. Stock counts need plain numbers. - Keep the original file. You will want it if you need to check what you loaded.
Troubleshooting
Problem: I see "Invalid CSV Upload file (0 rows found), please try again."
Solution: The file is not a real CSV or is empty. Use Save As, choose CSV (Comma delimited), and make sure the name ends in .csv.
Problem: I see "Invalid CSV Upload file, the required Product Title and Stock columns ... was not found."
Solution: BarSight cannot find a Product or Stock heading. Check the spelling and capital letters of the first row.
Problem: Every column heading says -Unused-.
Solution: The first row is not the heading row, or the headings are spelled differently. Headings are case sensitive, so product does not match Product.
Problem: I ended up with two copies of the same product, or an odd package group.
Solution: The names in your file did not match the ones in BarSight exactly, so new ones were created. Merge them using Cleaning Up After an Import.
Problem: A product's name was cut in half, or it landed in "Unknown Package Group".
Solution: Your file has no Package column, so BarSight split the Product at the first hyphen. Add a Package column. See One Column for Both.
Problem: The stock count is zero after the import.
Solution: Check that the Stock column holds plain numbers and was matched in the preview. If the rows had a Stock Id they were updates, and updates do not change stock. Stock is also recorded at the facility you were working in, so check the facility picker.
Problem: A new product got my default tax and I wanted a different one.
Solution: The Tax cell was blank, or its value did not match one of your taxes. Hover over the Tax Used cell in the preview before you import. Use a code from your Taxes setup screen, or a percent that you have set up a tax for.
Problem: The prices are wrong.
Solution: Check that you used the Price column for the price of one, and not the price of a case. Currency symbols and thousand separators are removed for you.
Problem: A product I marked No is still visible in the ordering portal.
Solution: Type exactly No or false. Other words, including no in lowercase and 0, leave it visible.