What kind of barcodes are supported by the Point of Sale ?

What standard is used to encode products barcodes in the Point of Sale ? Is it possible to encode price or weight in the barcodes ? Thanks !

1 Comment

I am new to OpenERP , started learning OpenERP 7.0 from last 2 months for my requirement . I have some Question , Please clarify it . 1.) From the post i can understand that , The Point of Sale only supports the EAN13 Barcode Encoding ( Can u please suggest the exact Brand Name for Bar Code Scanner ) 2.) If i correct , it just like plugin (or) Is there any software to be installed for barcode scanner working ? 3.) Also , Is there any module available (apps ) available to make Barcode scanner work ? Please help me ..

2 Answers
Best Answer

The Point of Sale only supports the EAN13 Barcode Encoding. Wich means that products are identified by a 13 digit number. These numbers can be used to encode much more than the ID of a product. Here is how it works.


The first two (from the left) or three numbers of the barcode are used to tell the point of sale what kind of data / action is associated with the barcode. Any barcode not matching any prefix is assumed to be a product identifiying barcode.



The barcodes starting by 21 and with the following format : 21 XXXXX WWWWW C can be used to encode a product with a specific weight or quantity. The quantity is encoded as a 5 digit number with three decimals in the WWWWW part of the barcode. For the product to be identified it must have an EAN13 barcode matching the 21 XXXXX part of the barcode used to encode weight, the rest is ignored. For your information, C is the checksum used to prevent decoding errors and depends of the 12 previous digits.


The barcodes starting by 23 and with the following format : 23 XXXXX PPPPP C can be used to encode a product with a specific price. It works exactly the same as the Weight barcodes except PPPPP encodes the prices as a 5 digit number with two decimals.


The barcodes starting by 22 and with the following format : 22 XXXXX DDDDD C can be used to encode a percentage discount that will be applied on the previously ordered product, if the identified product match the product encoded in the discount barcode. The discount is encoded as a 5 digit number with two decimals, and should be between 0.00 and 100.00. Discount barcodes are activated by default. If you use the Point of Sale in self checkout mode, a client with this knowledge could forge discount barcodes and cheat the system. So you may want to disable them in those cases.


Barcodes starting with 041 will log any Employee with a matching EAN as the current cashier for the transaction. Cashier badges can also be used in Self-Checkout mode to go back to regular mode and solve any issues.


Barcodes starting with 042 will log any user with a matching EAN as the current Client for the transaction.

Customizing Actions

If this doesn't work for you and you want to change the prefixes, or disable some kind of barcodes, you will have to change the javascript code of the point of sale by extending and overriding the parse_ean() method of the point_of_sale.BarcodeReader class located in addons/point_of_sale/static/src/js/devices.js

I advise you to do this in a new module.


Is there any way to use customized barcode in pos.....


Where and how does this barcodes impact in Odoo POS and Core???

Best Answer

My doubt is: How do set an EAN13 with prefix 23 on the product form if require validation? I tried "23 0000 1" but no sucess.