I am able to answer only point number 1 for the reception to automatically read all information from DataMatrix such as product code, batch number, expiry date, and serial number.
This applies to Odoo v16 (I haven't checked for other versions)
1. Makes sure "Barcode Scanner" is enabled in "Inventory Settings" and Default nomenclature is "GS1"
2. "Activate Developer mode" from General Settings
3. Select Configuration --> Barcode Nomenclatures (from the menu in the inventory module)
4. Click on "Default GS1 Nomenclature" to open the list of Rules
5. Depending on how the data is encoded on the barcode you can add or modify the rules.
To check your Barcode just open an excel sheet and scan your barcode to see how the data is received from the scanner. For example, when I scan my barcode in excel it appears like this
- (01)53582910080355(17)210415(10)9S444
6. To read this type of barcode in Odoo I use the following rules in GS1 Nomenclature
- Rule name: GTIN, Type: Unit Product, Barcode pattern: (\(01\))(\d{14}), GS1 Content-TypContent-Type: Numeric Identifier
- Rule name: Expiry, Type: Expiration Date, Barcode pattern: (\(17\))(\d{6}), GS1 Content-TypContent-Type: Date
- Rule name: Batch, Type: Lot, Barcode pattern: (\(10\))([!"%-/0-9:-?A-Z_a-z]{0,20}), GS1 Content-TypContent-Type: Alpha-Numeric Name
- Rule name: SerialNo, Type: Lot, Barcode pattern: (\(21\))([!"%-/0-9:-?A-Z_a-z]{0,20}), GS1 Content-TypContent-Type: Alpha-Numeric Name
Note: Move the rules to the top of the list
7. Save it
8. Test it in the Barcode Module
9. Select a receipt that has the product you want to scan
10. Just scan the DataMatrix and Odoo will automatically identify the correct product and fill in the lot number, and expiry date in the fields.
11. Validate
Once it is working correctly you can deactivate developer mode from General Settings.