"Barcode Collector" (BCC) is barcode scanner designed to serve as Data Terminal in wide range of works where hardware laser scanner facilities usually engaged. BCC is a handy tool, ready for practical usage. It can help, for example, in different kind inventory tasks, for the creation of barcoded items lists, accounting goods in stock etc. It supports all the mainstream commodity barcode types:
EAN13, EAN8, CODE25, CODE39, CODE93, CODE128, QR and PDF417.
Barcode Collector v.3
1) What is BCC?
"Barcode Collector" (BCC) is barcode scanner designed to serve as Data Terminal in wide range of works where hardware laser facilities usually engaged.
2) Tasks.
All the works in this application are carried out in terms of "tasks" as an object of data storing and exchange.
Technically task is a data structure with name, date, barcode list and several supplementary attributes.
Its main part is a list of barcodes (possibly initially empty)
3) Work
The technique of usage is quite intuitive and follow simple logic. When user press the button this start new scanning for current task. When barcode recognized - we have an option to accept or reject the result. Each acceptance adds new item in task's barcode list or increments quantity if the item is already present in task. When scanner reads a code, it looks up for this code in current task's list and in main directory. Each variant of lookup result produce different sound signal, that gives operator the reason to accept result depending on particular situation. For example, if we have comprehensive main directory and we know, that extra barcodes shouldn't happen - signal of unknown barcode should be a warning to double check if recognition is correct. In other scenario we may have to count some items from predefined list ignoring all the others. In this case we should to accept codes that is found in the current task. In either case there is one more means of control : we can tune settings to forbid accept result that is not found in lookup.
So the result of task - list of scanned goods is the main product of this application. And there is one more useful option: we can add images to the list. For this purpose there is embedded photography module that allows easy to attach one or more image to each item. You can set image size as you need to provide necessary quality. Keep in mind thought that extra size consumes an extra storage room and more traffic spending while exporting. If that ordinary photography does not meet your special needs - you can set an option to use some dedicated app that is default photography program in your device.
4) Exporting results
When the work is done and we have filled list of items, we can get practical use from this by exporting data for different kinds accounting systems.
Export files include images optionally. You can change this in settings
5) Input / output format.
Data are exported in a form of XLS, XML, CVS or JSON file with a simple structure. This format is exactly the same for import too. File may contain main directory part, or tasks part, or both of them. Files are additionally zipped for export. When importing - both: zipped XLS (XML,CSV,JSON) or raw XLS (XML,CSV,JSON) is acceptable. After initial acquaintance, when passing to real practical work - it's a good idea - to start with a filling of main directory from locally engaged accounting system. Template XLS (XML,CSV,JSON) file may be obtained by command from menu. When importing tasks - only barcode field is mandatory for each item, task name is any arbitrary text. Main directory import requires barcode and item name - all other fields are optional. Main directory can be replenished as well from the current tasks by the items having names.
When exporting or importing data user could customize field names to accommodate to other data systems. This is done by field mapping schemes (managed in preferences), and provides one more convenience option for cooperation with different third party industrial applications like ERP etc.
6) Working with Odoo ERP
BCC preferences contains preset tunning for export data to Odoo ERP system (formerly known as OpenERP). This is a convenience feature that is implemented by field mapping schemes and provides output in form exactly suitable for import to Odoo. By means of this you can easy accomplish some tedious routine operations like input initial stock balance or inventory adjustment. Basically - procedure as simple as following: assuming that you have collected data in current "task" you have:
a) Press button "Work with Odoo" in preferences to tune export for Odoo
b) Press "share" from left navigation drawer - this actually export data file by means of your choice - the most convenient, probably E-mail or cloud storages.
c) In Odoo workplace: unpack received archive in any place from where it could be imported by standard Odoo import.
d) Go to Inventory section and from menu choose "Product variants"
e) In opened list view press button "Actions(gear icon) / import records" ("Favorites / import records" - for v.16) and upload CSV file obtained before from archive
Column names already correspond to those needed for Odoo - so right tunings must be set by default
f) Press "Test" button to ensure that it's OK
g) If no problem arrived - press "Upload"
This replenish yous product catalog. Second import operation allows you to make initial entry of stock balance
a) In same Inventory section - choose menu / Operations / Physical Inventory (Inventory Adjustments)
b) Import the same CSV - this time other column are in use: "Counted Quantity" and the same "External ID" in CSV (-important - don't forget please:) now should correspond to "Product/External ID" in "Inventory Adjustment" records.
One could easy taste this in Odoo online demo base. This way you may obtain opening stock in Odoo (tested versions -16, 17). Described procedure assumes that you use product variants and each variant item have phisically attached barcode. In practice there often could be other situation - globally registered EAN13 barcodes rather corresponds to notion called "Product template" in Odoo. So, if you plane to use variants of this products, you probably have to import product templates (with global EAN13), and develop by means of Odoo procedure of migration to variants with reassignment of barcodes. This process can vary considerably and is out of this application (BCC) scopes.
Odoo is a registered trademark of Odoo S.A.
7) Some suggestions.
Any file exported is aligable to import, so you can use it as a template for creating a file to import data. You just need to fill new data preserving the same file structure. This way you can fill the main directory, that highly increase reliability of work, presenting the result of recognition to operator right at once. Also you can load new task with barcode list to count certain items or to proceed paused work (inventory , for example) on new place. If you try to load (may be unintentionally) again EXACTLY same data, it will be ignored for the main directory, but for tasks there is two possible case depending on settings : task could be skipped or a new copy of task be created beside the existing one (Settings/Data & sync/Skip import task if newer exists).
Other detail worth explanation concern to export with images. When using "plane" table format (XLS, CSV) there arrive multiple rows for same item different only by reference to other image file. The quantity is the same too. This may be or may not be suitable depending on used technique of destination software (ERP etc.). For example, if you open XLS spreadsheet page and would like to estimate the the total quantity in respective column - result will not be correct. To address this problem there is special preference setting allowing the option to write quantity only once for the same item (Settings/Data & sync/Item quantity in each row).
Field RowCnt, containing row count in task or main directory is used for visualization of loading process and is not essential for data import itself . You may omit this column or leave it empty.
One of the main condition for correct data exchange is synchronisation - i.e. we need some stable unique identifier to bind loaded records to correct position in database. In BCC such field is barcode. But in Odoo barcode is not mandatory, there is special field called "External ID" for this purpose. It is generated at export stage and must be kept intact if we need to upload data back after modification. This could be the case for example if we already have products in Odoo base and want to attach images to it. External IDs is kept in BCC in technological field "ExtId" that is not visible to user. This field is populated foloving simple rool: if it is empty in BCC - it is filled with barcode at export. At import it is filled by correspondent loaded data defined by field mapping scheme. This approach provides correct synchronization.