BarSight
Overview Pricing Resources Community Register Login
Brewery

Importing Products and Pricing from the BC LDB Price List

If you sell through the BC Liquor Distribution Branch (LDB), you receive a wholesale price list as a CSV file, with a line for every SKU you sell. Instead of typing each product and price into BarSight, you can upload that file. The Import LDB Products tool reads it, shows you a preview, and either updates the prices on SKUs you already have or builds new products and package prices from the file.

Before You Start

  • Your account must be on a paid plan. The import is not available on a trial.
  • The import only appears on British Columbia accounts. You will find it in two places: the Import LDB Products button on Brewery → Recipes, and Import LDB Price List in the New Packaged Product menu on Brewery → Final Products. Both open the same window.
  • Have the CSV price list from the LDB. Use it exactly as you received it. The importer finds columns by their LDB headings, which are written in capital letters, so do not rename them.
  • Make sure your package groups exist for each way you sell, such as a 4-pack of 473 mL cans or a 50 L keg. You will match the file to them during the import. See Defining Packaging Groups.

Step 1: Look at Your File

An LDB price list has one row per SKU. If you want to try the import before you use your own file, download our sample. It is a made-up price list with the same columns and layout, and fake products and SKUs.

ldb_price_list_sample.csv Sample LDB wholesale price list with cans, kegs and bottles
Download Sample

The Columns BarSight Uses

Seven of the columns in the file are used. The rest are ignored.

LDB Column Used For
SKU The LDB's number for the product and package. It is how BarSight recognizes a product on later price lists.
DESCRIPTION The product name when creating products. It is written as SUPPLIER - PRODUCT NAME, and BarSight keeps what comes after the dash.
% ALCOHOL The alcohol percentage on the recipe BarSight creates for a new product.
CASE CONFIGURATION How the product is packed, such as 24(1 X 0.473 L) for 24 single cans or 6(4 X 0.473 L) for six 4-packs. In create mode it is what you match to a package group. In update mode it only affects the deposit and duty price, described below.
WHOLESALE PRICE PER SELLING UNIT The price saved on the package. A selling unit is one 4-pack, one can, or one keg, depending on the row.
CONTAINER DEPOSIT PER SELLING UNIT The container deposit saved on the package. It is usually 10 cents per can, so a 4-pack of cans is 40 cents.
DUTY PAID COST PER CASE Saved as the Duty Price for the product and package. It is the price used on orders for customers whose License Type is Government Retail Store, which are BC's government liquor stores.

These columns are ignored: STATUS, VQA, PRICING AGENT, SUPPLIER #, WHOLESALE EFFECTIVE PRICE DATE, WHOLESALE PROMOTION END DATE, PRIME COST PER CASE, DOMESTIC CHARGES PER CASE, PROMOTION AMOUNT and FINAL WHOLESALE PRICE PER SELLING UNIT. They show as -Unused- in the preview, which is normal.

Three Things the Import Does Not Look At

  • Effective dates. Some rows carry a price that starts in the future. BarSight ignores the date and applies the price straight away. Delete those rows from your copy of the file until their start date arrives.
  • Promotions. The import uses the wholesale price, not the final price after a promotion.
  • Status. Every row is imported, whatever its status, so delete any SKUs you do not want.

Check Your File Before You Upload

  • Do not rename any headings, and look for -Unused- in the preview. If one of the seven columns above shows -Unused-, stop. In update mode a missing price column sets the price of every matched SKU to $0.00.
  • Delete rows with a blank SKU. A blank SKU can match packages that have no SKU and change their price.
  • Delete rows with a blank DESCRIPTION or CASE CONFIGURATION. A blank description is skipped without a message in create mode. A blank case configuration creates a package group with no name.
  • Prices must not contain thousands commas. A $ sign is fine, but $1,234.50 would be read as $1.00. LDB lists do not normally have commas.
  • Save as a plain CSV. Use CSV (Comma delimited) and a file name ending in lower case .csv.

[SCREENSHOT: The sample CSV open in Excel showing the SKU, DESCRIPTION, CASE CONFIGURATION and price columns]

Step 2: Choose What You Want to Do

The import has two modes. You pick one in the upload window.

Import Mode Use It To
Update pricing for existing SKUs only Refresh prices, deposits and duty prices each time the LDB sends a new list. Only packages that already have the SKU are changed.
Create new products, recipes & pricing from CSV Set up your products for the first time, or add new products that are on the list. It creates what is missing and attaches each SKU, price and deposit.

Step 3: Upload the File

  1. Navigate to Brewery → Recipes and click Import LDB Products in the toolbar. Or go to Brewery → Final Products, open the New Packaged Product menu and choose Import LDB Price List.
  2. In the Update Prices from BC LDB window, choose your file under CSV File.
  3. Choose the Import Mode.
  4. Click Upload.

[SCREENSHOT: Recipes page toolbar with Import LDB Products highlighted, and the Update Prices from BC LDB window showing the Import Mode choice]

Step 4: Review the Preview

BarSight shows your file as a table before anything is saved. Each column heading shows the LDB name it was matched to, and columns it does not use say -Unused-. The preview only shows what is in your file. It does not tell you whether a SKU already exists in BarSight.

Matching Package Groups (Create Mode Only)

In create mode, the preview adds a section with one line for every different case configuration in your file. Pick the package group each one should use, or choose Create New to have BarSight add one. BarSight pre-selects the first group, in alphabetical order, whose name contains the volume in millilitres, such as 473. A keg group named 50 L is not pre-selected for a 50 litre keg, because it looks for 50000. Groups called 4 x 473mL Can and 473mL Can both contain 473, so both lines can start on the same one. Check every line and choose the group yourself.

Give each configuration its own package group. The sample file shows why. It has Prairie Pale Ale Can twice, as 6(4 X 0.473 L) and as 24(1 X 0.473 L). Both are 473 mL cans, so if you leave both on Create New, or choose the same group for both, they land on the same product and package. The second row then overwrites the first row's SKU, price, deposit and duty price. Create two groups beforehand, such as 4 x 473mL Can and 473mL Can, and match one to each.

[SCREENSHOT: Create mode preview with the case configuration list and the package group choices]

Step 5: Import

  1. Click Import into Database at the top of the preview.
  2. BarSight applies the file and takes you to the next page. In update mode that is Final Products. In create mode it is Recipes, with a message such as "Import complete: 8 new products, 2 new package groups, 12 SKUs linked."

What Update Mode Does

For every row, BarSight looks for packages that already have that SKU.

  • It sets the price on those packages, on both your product packages and your batch packages, so new orders use it.
  • It sets the deposit, which is the container deposit on cans and bottles. The deposit is only read for configurations that begin with a count, like 24(1 X 0.473 L). A configuration without a count, like (1 X 1.000 L), is set to $0.00.
  • It saves the Duty Price for that product and package. The DUTY PAID COST PER CASE is divided by the package group's SKU multiplier when the multiplier is above 1, since the LDB gives duty per case but you may sell in smaller units. A row with a duty of $0.00 replaces an existing duty price with zero.
  • It does not change existing orders. Only orders created afterwards use the new prices.
  • A SKU in the file that is not on any package is ignored without a message.

Set your SKU multipliers before you run update mode for the first time, because the duty price depends on them. Create mode saves the duty per case without dividing it, so the next update mode run changes the stored duty prices to the divided amounts.

What Create Mode Does

For each row, in order, BarSight:

  1. Finds or creates the product. The name is the text after the first space, dash, space in DESCRIPTION, converted from capitals to normal capitalization. A description with no dash is used whole. PRAIRIE BREWING - PRAIRIE PALE ALE CAN becomes Prairie Pale Ale Can. A product with exactly that name is reused, not duplicated.
  2. Creates a recipe if the product has none, using the % ALCOHOL from the file.
  3. Picks the package group you chose in the preview. For Create New, it reuses an existing group named after the volume, such as 473mL, or adds one with that name and a SKU multiplier of 1.
  4. Links the product to the package group with the SKU, price and deposit. If the link already exists it is updated. Any batch packages that already carry the same SKU get the new price and deposit too.
  5. Saves the Duty Price from DUTY PAID COST PER CASE, exactly as it appears in the file, when it is above zero.

Create mode does not add stock or ingredients. After it finishes, tidy up the new products:

  • Check the names. Capitals are converted, so IPA becomes Ipa and 50L becomes 50l. Edit any that need it. New products also get a random colour and default settings, and if you use QuickBooks they may be queued to sync.
  • Set the SKU multiplier on any package group BarSight created for you, for example 6 for a case of six 4-packs, so a full case prices correctly.
  • Add the rest of the recipe when you are ready. See Creating Products and Recipes.
  • Merge any duplicates. If a description did not match an existing product name exactly, you now have two products for one beer. See Cleaning Up After an Import.

Tips and Best Practices

  • Use create mode once, then update mode. Create mode builds your catalogue and attaches SKUs. Update mode keeps prices current from then on, and is the safer choice for routine price changes.
  • Remove future-dated rows first. Look at WHOLESALE EFFECTIVE PRICE DATE and delete any row that is not in effect yet.
  • Set up package groups before you import. With a group ready for every case configuration, you can choose the right one on each line and no two sizes share a group.
  • Check a few prices afterwards. Open View Price List on the Recipes page and compare several SKUs with the LDB file.
  • Keep every price list you receive. You can compare an old file with a new one to see what changed.

Troubleshooting

Problem: I don't see Import LDB Products.

Solution: The button only appears on British Columbia accounts. If yours is one, check that your access group includes the Recipes page to see the button and the Final Products page to upload. See Access Control.

Problem: I see "You need to upgrade to a paid plan in order to upload files."

Solution: This import needs a paid plan. It is not available during a trial.

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 lower case .csv. .CSV is not accepted.

Problem: I see "the required SKU and Price columns ... was no found" or "Could not find required SKU or DESCRIPTION columns".

Solution: The first message appears in the preview when BarSight cannot find the SKU heading. The second appears when you click Import and the SKU or DESCRIPTION heading is missing. The headings must be the LDB's own, in capitals. Open the file you received from the LDB, not a copy you saved from Excel as CSV UTF-8, because that adds an invisible marker that hides the first heading.

Problem: Update mode finished but the prices did not change.

Solution: The SKUs in the file are not on any of your packages. Run create mode first, or add each SKU to its package by hand, and then use update mode.

Problem: A product has the wrong price for one of its sizes.

Solution: Two sizes of the same product probably shared one package group in create mode. Create a package group for each size, run the import again, and match each case configuration to its own group. The earlier link still exists with a SKU on it, so contact support to remove it.

Problem: Every price became $0.00 after an update.

Solution: The file was missing the price column, or the heading was renamed, so no price was read. Upload the correct, unedited LDB file in update mode to put the prices back.

Problem: I see "Import file not found. Please re-upload and try again." or "Invalid filename".

Solution: BarSight can no longer find the temporary copy of your upload. Upload the file again. Create mode shows the first message and update mode shows the second.

Related Features