A Zebra scanner works with Odoo 20 once it sends each scan the way Odoo reads it. On a Zebra Android handheld such as the TC22, TC27 or TC53e, that means a DataWedge profile for the Odoo app and Chrome, with keystroke output on and Send Characters as Events ticked. On a USB or cordless scanner such as the DS2208, DS4608 or DS9308, it means a keyboard layout that matches the computer and an Enter key after every scan. The rest happens inside Odoo: barcodes on products and locations, and the right barcode nomenclature.
Which Zebra device for which job
| Device | Zebra models | Where it fits | What to set for Odoo |
|---|---|---|---|
| Android handheld (mobile computer) | TC22, TC27, TC53e, MC3400 | Receiving, picking, transfers and stock counts on the floor | A DataWedge profile for the Odoo app and Chrome |
| Corded handheld scanner | DS2208, DS4608 | Counters, packing desks and back offices | USB keyboard mode, keyboard layout, Enter suffix |
| Cordless scanner | DS2278, DS4678, DS8178 | Desks where staff walk to the shelf or the carton | The same as corded, paired to its cradle |
| Presentation scanner | DS9308 | Shop counters that scan items and phone screens | The same as corded |
Odoo’s documentation recommends Zebra’s Android line for mobile scanning and names the TC21 and TC26. Zebra has replaced those two with the TC22 and TC27, which take the same DataWedge settings.
Prepare Odoo before you touch the scanner
- In Inventory → Configuration → Settings, Barcode section, turn on Barcode Scanner. This installs the Barcode app, which is part of Odoo Enterprise.
- In the same section, choose the Barcode Nomenclature: Default Nomenclature for retail EAN-13 codes and your own codes, or Default GS1 Nomenclature if your suppliers’ cartons carry GS1 codes with lots and expiry dates.
- Put a barcode on every product, in the Barcode field of the product form’s General Information tab. Products with variants take the barcode on each variant, not on the product template, or a scan will not find the variant.
- If you use storage locations, give each location a barcode and label the shelves, so staff scan the shelf as well as the item.
- Print the command sheet: Print barcode commands and operation types, in the same Barcode section, gives a page of barcodes for commands such as Validate and for each operation type, so a storekeeper can work without touching the screen.
Set up a Zebra Android handheld
An Android handheld reads a barcode and, by default, hands the whole text to the app in one piece. The Odoo Barcode app listens for key presses instead, so the scan has to arrive as keystrokes. Zebra’s DataWedge app controls this.
- Install the Odoo app from Google Play, or open your Odoo address in Chrome. The Barcode app works in either.
- Open DataWedge on the device, the app with the light blue barcode icon.
- Create a new profile and name it, for example, Odoo. Do not use the demo profile Zebra ships (DWDemo): Odoo notes that it does not work in every case.
- Under Associated apps, add both the Odoo app and Chrome, so the profile applies whichever one the team opens.
- Find Keystroke output (Keyboard output on some versions) in the profile and enable it.
- Open Key event options and, under Characters, tick Send Characters as Events. Without it the device beeps on every scan and Odoo receives nothing.
- Open the Barcode app, start a receipt or an inventory count and scan a product you know is in Odoo. It should appear on the screen at once.
Where staff should use the handheld only for Odoo, Zebra’s Enterprise Home Screen locks it to the Odoo app and Chrome. Lock the device after scanning works, so you test with the full settings first.
Set up a USB or cordless Zebra scanner
A scanner plugged into a PC types each barcode as if someone pressed the keys. Two settings decide whether Odoo reads it correctly.
- Keyboard mode and layout. The scanner should run as a USB keyboard (HID) with the same keyboard layout as the computer. Each Zebra model’s guide has barcodes you scan to set the mode and the language.
- Enter after each scan. Odoo treats the Enter key as the end of a barcode and then waits for the next one. Most Zebra scanners add Enter by default. If a scan only lands after someone presses Enter, scan the carriage return suffix barcode in the guide.
- Cordless models. The DS2278, DS4678 and DS8178 pair with their cradle, and the cradle plugs into the PC by USB. The same two settings apply.
Odoo also leaves a short pause between scans, 100 milliseconds by default, so one pull of the trigger is not counted twice.
Arabic keyboards: the fault offices in Kuwait meet most
Most PCs in Kuwait have both the Arabic and the English keyboard layout installed, and a USB scanner types through whichever one is active. If a cashier or storekeeper switched to Arabic to type a customer’s name, the next scan comes out in Arabic characters and Odoo finds nothing. Barcodes that contain letters, such as location codes, lot numbers and internal references, fail first, which makes the fault look random.
- Keep PCs used for scanning on the English layout, and remove the Arabic layout from PCs that are only used for scanning.
- When a scan fails, check the language indicator in the taskbar before anything else.
- Arabic product names are not affected: the barcode is read, and Odoo shows the product in the user’s language.
Lots, serial numbers and expiry dates from one scan
Food, cosmetics and pharmaceutical suppliers often print GS1-128 or GS1 DataMatrix codes on cartons. One such code carries the product’s GTIN, the lot or serial number and the expiry date together. With Default GS1 Nomenclature selected, Odoo reads them all from a single scan:
| GS1 application identifier | What it holds | Where Odoo puts it |
|---|---|---|
| (01) | The product’s GTIN, 14 digits | The product’s Barcode field |
| (10) | Batch or lot number | Lot |
| (21) | Serial number | Serial number |
| (17) | Expiry date, as YYMMDD | The lot’s expiration date |
| (30) or (37) | Quantity | The quantity received or counted |
Expiry dates need Expiration Dates turned on in Inventory settings and the product tracked by lots. To make staff scan the lot rather than type it, open Inventory → Configuration → Operations Types, choose the operation, and in the Barcode App tab set Lot/Serial to Mandatory Scan. Reading a GS1 DataMatrix needs a 2D imager, and every Zebra model in this guide has one.
When a scan does nothing
| What you see | Likely cause | What to do |
|---|---|---|
| The handheld beeps and nothing appears in Odoo | Send Characters as Events is off, or the profile does not include the app in use | Fix the DataWedge profile and add both the Odoo app and Chrome to it |
| Odoo reports an unknown barcode that contains letters | The PC’s keyboard layout differs from the scanner’s, often Arabic is active | Switch the PC to English, or match the scanner’s layout setting |
| The scan appears but waits for Enter | No Enter suffix after the barcode | Scan the carriage return suffix barcode in the scanner’s guide |
| A barcode on a phone or monitor will not read | Some scanners cannot read codes on screens, 1D codes above all | Print the barcode, or use a scanner that reads screens, such as the DS9308 |
| The product exists but is not found | The barcode is on the product template, not the variant | Move the barcode to each variant |
| A GS1 carton code is read as one long number | The nomenclature is still the default one | Select Default GS1 Nomenclature in Inventory settings |
How we set up Zebra devices for Odoo
We supply Zebra mobile computers and barcode scanners in Kuwait and set them up in our office before delivery: the Odoo app and the DataWedge profile on handhelds, keyboard mode and suffix on scanners, and a test with your own barcodes on a copy of your database.
If you already own Zebra devices, the steps above are all most sites need. When scanning is part of a wider change, such as moving to lots and expiry dates or opening a second warehouse in Odoo Inventory, it belongs in an implementation project with its own scope.
What to do next
- List where your team scans today, such as receiving, picking, the counter and stock counts, and the barcodes on your goods: EAN-13, your own codes, or GS1 codes from suppliers.
- Set up one device with the steps above and test it on a copy of your database before you change the live one.
- Ask us for a Zebra quotation with the devices set up for Odoo, or book a consultation to plan scanning across your warehouses.
