Multiple Barcodes for different UOMs

Good Day To All.
I am working in a Retail shop, and the Items that I sell are sold by Piece or Box or any other type of UOM.
Every UOM type of the same Item has a different Barcode.
Is there a way for an Item to have multiple Barcodes, and each of those Barcodes represents its own UOM type and Price Rate?
It will make the POS a lot easier.

Thank You

1 Like

It will also be nice if each UOM could have a specific price and not just a multiple of the base price. In most situation the bulk price is cheaper per item than the unit price

1 Like

@olamide_shodunke, @Mhmd_Bosaqir
Have a look at Product Bundle

That’s what I currently use but it’s not as convenient to use as using UOM and applying separate pricing and Barcodes to UOM.

Steps for using and maintaining product bundles too many and too cumbersome

Getting same scenario, using bundles too but not the desired scenerio.

In my case:

I have a pen with a barcode and also boxes with dozens with a different barcode. I will be helpful this feature because for inventory purposes, buys, and sell that will be awesome.

Seems like a tiny feature, but I know is not, hopefully the community get behing this.

1 Like

This feature is still not implemented. Further discussion/requests can be found here:

I actualy make a customized doctype for my POS to get price by UOM. The problem with this is only work in my POS and not the ERP. This is very important feature becuase some customer used UOM meaure to set wholesale or reatil price.

The puzzling thing is, if you check barcode table in version 13, there is a UOM field besides the
barcodes, but it does not work.

Someone started work on it and forgot to conclude it?

@youssef you think this will add value in POS Awesome??

Yes this would be great to have. my client does not used the build in POS becuase for them POS must be offline. however i can share how i achive this in my POS and may be ERPNext can make in the POS for you.

  1. Create a item in ERP with multiple barcode, on this new item setup your unit of measure in your case “Box and Piece” make sure the box include the correct conversion factore. Example 10 in one box.
  2. Set the smallest quantity as your default UOM

This is where i make my customization and how ERPNext can include in base product.
In Item Price i create create a custom doctype for additional price. This doctye should be a child table if your are usning version 13.

On our POS it would look like this when i select/scan that product.

In the ERPNext
If you are using multiple barcode for the same item in the ERP you should also get the smae display.

When a product is sold with one of the UOM the ERP will deduce the amout of stock from inventory base on the UOM conversion factor. Example 1 box of RUM & RAISIN would dudect 60 each (smallest) from inventory.

There are lots of other thing we used UOM for.
This is just one example.

1 Like

After made the following changes, it works

  1. add custom link field uom into Item Barcode doctype via customize form
  2. retrieve the newly added uom from Item Barcode in search_for_serial_or_barcode_number
  3. set the uom field in scan_barcode when it fetches from Item Barcode
  4. pass uom to python in get_item_details

tested in purchase order form


The puzzling thing is, if you check barcode table in version 13, there is a UOM field besides the barcodes, but it does not work.

UOM Field in Item Barcodes in your particular case was added by POSAwsome. Its not In V13 By default.
See here.

If you enable Show Barcode Field in Stock Transactions in stock transactions and scan a barcode on anything else It uses the Default Unit of Measure | Default Sales Unit of Measure | Default Purchase Unit of Measure Depending on the Document Type

Honestly the original PR seems really pointless without the UOM but according to the Original Feature Request it was meant to track supplier barcodes that differ from company barcodes. [FEATURE REQUEST]: Multiple barcode per Item not different UOM`s

From what I can tell, it should be simple to fix in all documents that can scan barcodes by modifying erpnext/ at 77e00403c82ea0d15caab65e81659dc10de73bed · frappe/erpnext · GitHub to return UOM along with the Item code and Using the UOM in erpnext/transaction.js at de4450aee9a68eadf3d806003f42cd55bb4df804 · frappe/erpnext · GitHub

  1. set the uom field in scan_barcode when it fetches from Item Barcode

You might want to modify the existing_item_row find statement on line 405 to include the UOM as it will replace the UOM every time. Example. purchasing 1 box and 2 items. scanning the box barcode will create a new item, scanning a single item barcode afterwards will update the existing item to 2 items instead of 1 box and 1 item.

Try by enabling Batch for the item. As each batch can have a different Selling Price.

Did you submit a pull request, adding this feature into core? This is a must IMO.

Thank you! :slight_smile:

Hey @szufisher the proposed solution seems accpetable. Can you send a PR for this?

I’ve created issue for tracking progress here: UOM specific barcodes · Issue #30777 · frappe/erpnext · GitHub

1 Like

This is merged now and should be part of upcoming v14 :grimacing:

1 Like