Who we are

About IT Horizon

A boutique technology house engineering enterprise systems with the precision of a luxury maison.

Our story
Odoo Partner

Comprehensive Odoo

End-to-end Odoo 20 Enterprise, implemented, customized, integrated and supported by our own senior team.

Become a client
Odoo apps

Every app, configured for the Gulf

Finance, sales, supply chain, HR, marketing and services apps implemented with the local tax, payroll and language rules each country needs.

All Odoo apps
What we do

Beyond ERP

Strategy, product engineering and customer-experience work that turns systems into advantage.

Talk to us
Sectors

Industry depth

Domain fluency across the sectors that define the GCC economy, and the regulations behind them.

Discuss your sector
Learn · grow · succeed

Insights

Real-world ideas, case studies and sessions to help your business work smarter with Odoo.

Browse the blog
Contact usالعربيةBook a consultation
Home/Blog/Odoo 20 · How-to
Odoo 20 · How-to · 7 min read

How to set up a Zebra barcode scanner for Odoo 20

Odoo reads a barcode scanner as if it were a keyboard: it expects each scan as typed keys, ending with Enter. This guide sets up both kinds of Zebra device for the Odoo 20 Barcode app, the Android handheld and the USB or cordless scanner, and covers the settings that decide whether a scan lands or does nothing.

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

DeviceZebra modelsWhere it fitsWhat to set for Odoo
Android handheld (mobile computer)TC22, TC27, TC53e, MC3400Receiving, picking, transfers and stock counts on the floorA DataWedge profile for the Odoo app and Chrome
Corded handheld scannerDS2208, DS4608Counters, packing desks and back officesUSB keyboard mode, keyboard layout, Enter suffix
Cordless scannerDS2278, DS4678, DS8178Desks where staff walk to the shelf or the cartonThe same as corded, paired to its cradle
Presentation scannerDS9308Shop counters that scan items and phone screensThe 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

  1. In Inventory → Configuration → Settings, Barcode section, turn on Barcode Scanner. This installs the Barcode app, which is part of Odoo Enterprise.
  2. 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.
  3. 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.
  4. If you use storage locations, give each location a barcode and label the shelves, so staff scan the shelf as well as the item.
  5. 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.

  1. Install the Odoo app from Google Play, or open your Odoo address in Chrome. The Barcode app works in either.
  2. Open DataWedge on the device, the app with the light blue barcode icon.
  3. 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.
  4. Under Associated apps, add both the Odoo app and Chrome, so the profile applies whichever one the team opens.
  5. Find Keystroke output (Keyboard output on some versions) in the profile and enable it.
  6. Open Key event options and, under Characters, tick Send Characters as Events. Without it the device beeps on every scan and Odoo receives nothing.
  7. 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 identifierWhat it holdsWhere Odoo puts it
(01)The product’s GTIN, 14 digitsThe product’s Barcode field
(10)Batch or lot numberLot
(21)Serial numberSerial number
(17)Expiry date, as YYMMDDThe lot’s expiration date
(30) or (37)QuantityThe 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 seeLikely causeWhat to do
The handheld beeps and nothing appears in OdooSend Characters as Events is off, or the profile does not include the app in useFix the DataWedge profile and add both the Odoo app and Chrome to it
Odoo reports an unknown barcode that contains lettersThe PC’s keyboard layout differs from the scanner’s, often Arabic is activeSwitch the PC to English, or match the scanner’s layout setting
The scan appears but waits for EnterNo Enter suffix after the barcodeScan the carriage return suffix barcode in the scanner’s guide
A barcode on a phone or monitor will not readSome scanners cannot read codes on screens, 1D codes above allPrint the barcode, or use a scanner that reads screens, such as the DS9308
The product exists but is not foundThe barcode is on the product template, not the variantMove the barcode to each variant
A GS1 carton code is read as one long numberThe nomenclature is still the default oneSelect 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

  1. 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.
  2. Set up one device with the steps above and test it on a copy of your database before you change the live one.
  3. Ask us for a Zebra quotation with the devices set up for Odoo, or book a consultation to plan scanning across your warehouses.
FAQ

Common questions

Yes. Odoo reads any scanner that types like a keyboard and ends each scan with Enter, which covers Zebra’s USB, cordless and Android devices once they are set up. Odoo’s documentation recommends Zebra’s Android handhelds for mobile scanning.

No. The Barcode app also runs in Chrome on the device. The DataWedge profile must include whichever app your team opens, so add both the Odoo app and Chrome.

The scan reaches Android as one block of text instead of key presses. In DataWedge, enable keystroke output and tick Send Characters as Events in the profile used by the Odoo app or Chrome.

No. The Barcode app, with its receiving, picking and counting screens, is part of Odoo Enterprise. On Community, a USB scanner can still type a barcode into fields such as the product search.

Yes, with GS1 barcodes. Select Default GS1 Nomenclature in Inventory settings and turn on Expiration Dates; a GS1-128 or GS1 DataMatrix code then fills in the product, the lot and the expiry date from one scan.

Need help with your Odoo project?

Tell us what you are working on. A senior consultant will reply with how we would approach it.

Phone
+965 5015 3388
WhatsApp
Message us
Email
[email protected]
Office
Salem Al Mubarak Street, Salmiya, Kuwait
Hours
Sunday to Thursday, 8:00 to 19:00