Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Artificial Intelligence
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
    • Meet an advisor
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Pricing
  • Help
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
odoo accounting v14 pos v15
About this forum
Help

How to Set Up Windows Virtual IoT with a Zebra Printer on Odoo 19

Subscribe

Get notified when there's activity on this post

This question has been flagged
windowsprinterbarcodelabelzebraVirtualIoTodoo19zplIoT
864 Views
Avatar
Samson Mai (samai)

How to Set Up Windows Virtual IoT with a Zebra Printer on Odoo 19

After setting up Virtual IoT + Zebra printers across several client implementations, I noticed the official documentation for Odoo 19 is missing some critical steps (firewall configuration, PostgreSQL, ZPL printing, and more). More importantly, the existing forum threads cover bits and pieces, but there’s no single end-to-end guide.

This post consolidates everything I’ve learned from hands-on setups and working with our functional experts. Hope it helps.

What Is a Virtual IoT Box?

A Virtual IoT box is a Windows-based application that turns a standard Windows PC into the equivalent of a physical Odoo IoT box. The PC runs a local Odoo server (IoT service only), detects connected devices like printers and scanners, and makes them available to your Odoo database over the local network.

Key point: The Virtual IoT is Windows-only. Mac and Linux are not supported. You can run a Windows VM on Mac/Linux, but Odoo does not support that configuration and won’t troubleshoot it.

Prerequisites

Before you start, make sure you have:

  • Windows 10 or 11

  • Odoo 19 SaaS or Odoo.sh database with an active IoT subscription

  • IoT administrator access on the Odoo user performing the setup (Settings → Users → select user → IoT section → set to Administrator)

  • Zebra printer connected to the Windows machine with drivers already installed — verify it appears in Windows Settings → Printers & Scanners before touching Odoo

  • Internet access on the Windows machine (for initial setup and HTTPS certificate generation)

  • Local network access if other computers need to reach the IoT box

Important Notes on Prerequisites

  • Printer drivers are a hardware prerequisite, not an Odoo one. If the printer doesn’t show in Windows Printers & Scanners, contact the printer manufacturer’s support. Odoo cannot detect a printer that Windows itself doesn’t see.

  • Only genuine Zebra printers are supported. Non-Zebra label printers that claim ZPL compatibility via emulation are unreliable and unsupported.

  • The IoT app must be installed on your Odoo database, and your user must have IoT admin rights.

Step 1: Download the Correct Installer

This is where v19 differs from v17/v18 — don’t use the wrong installer.

Database Version

What to Download

Odoo 19

Dedicated IoT installer from odoo.com/page/download — scroll to the Virtual IOT section

Odoo 17 / 18

Odoo Community Windows installer → select "Odoo IoT" from the install type dropdown during setup

For v19, there’s a separate standalone installer. It is NOT the same as the Community installer with an IoT option in the dropdown. If you use the wrong one, the service may not start correctly.

Step 2: Install the Windows Virtual IoT
  1. Run the .exe installer. Follow the standard prompts. Accept the license agreement.

  2. Change the destination folder (critical). Do NOT use the default Program Files path. Instead, create and select C:\ODOO as the destination.

DANGER:  Never install into C:\Users\... or C:\Program Files\... — this will prevent the Nginx server from initializing and block HTTPS certificate generation. Always create a new folder at C:\ODOO and install there.

  1. Install the sub-modules. The installer will prompt you to set up two additional components:

Sub-Module

What It Does

GPL Ghostscript

Translates print commands into rendered images and text. Used on every print job.

Sumatra PDF

Parses and processes PDF files for printing to standard (non-label) printers.

Click Next / Install / Finish through each.

  1. PostgreSQL installation. The installer will prompt you to install PostgreSQL. This is required — proceed with the install. The Virtual IoT runs a local Odoo server that uses PostgreSQL as its database engine. You don’t need to configure or interact with PostgreSQL after installation.

TIP:  If the PostgreSQL checkbox appears greyed out, it usually means a previous Odoo or PostgreSQL installation left behind registry keys. Uninstall any old programs, open Registry Editor (regedit), search for “PostgreSQL,” delete all remaining entries, restart the computer, and re-run the installer.

  1. Complete the setup. Ensure the “Start Odoo” checkbox is selected, then click Finish. The IoT homepage will automatically open at http://localhost:8069. Installation takes about 5 minutes.

Step 3: Configure the Windows Firewall

This step is required if any other computer on the network needs to access the IoT box (which is the typical setup). Without it, the IoT will only work from the same machine it’s installed on.

  1. Open Windows Defender Firewall with Advanced Security (search “Windows Firewall” in Start)

  2. Click Inbound Rules in the left panel

  3. Click New Rule on the right

  4. Select Port as the rule type → Next

  5. Leave TCP selected. In “Specific local ports,” enter: 8069, 80, 443

  6. Select “Allow the connection” → Next

  7. Check all three profiles (Domain, Private, Public) → Next

  8. Name the rule ODOO → Finish

Port

Purpose

8069

Odoo server port (primary IoT communication)

80

HTTP

443

HTTPS


NOTE:  An outbound rule is NOT needed. The IoT box only receives inbound connections from devices on the local network.

Step 4: Connect the Virtual IoT to Your Odoo Database
  1. Verify the IoT homepage loads. On the same machine, open http://localhost:8069. You should see the IoT box interface with a pairing code. From another machine on the same network, try http://[local-IP]:8069 to confirm remote access.

  2. Find the local IP. It’s displayed on the IoT homepage. Or open Command Prompt and run: ipconfig

  3. Open the IoT app in your Odoo database. Navigate to IoT → IoT Boxes → click Connect.

  4. Enter the pairing code. On v19, the system may auto-detect the IoT box. If not, click “Use Pairing Code” and enter the code from the IoT homepage.

  5. Wait for devices to populate. After connecting, the IoT box will pull all detected devices from Windows Printers & Scanners. This can take up to 5 minutes. Refresh periodically.

TIP:  If no devices appear after 5 minutes, restart the Odoo IoT service. Search “Services” in the Start menu, find “Odoo IoT” or “Odoo IoT 19,” right-click, and select Restart.

Step 5: Print with the Zebra Printer
ZPL Format — The Key Thing to Know

Zebra printers connected via IoT only accept ZPL (Zebra Printing Language) format reports. Standard PDF reports (delivery slips, invoices, pick lists) will NOT print to a Zebra. When selecting a report, always look for options labeled “ZPL” in the name.

Print a Test Label
  1. In the Inventory app, open a product that has a barcode assigned

  2. Click the gear/action icon → Print Labels

  3. Select a ZPL format report from the list

  4. When prompted, assign the correct printer (this is a per-user setting)

  5. Click Print — the label should print immediately

TIP:  Users can check “Do not ask me again” to suppress the printer selection prompt. To change the printer later, go to IoT → Devices and reassign it.

Where ZPL Reports Are Triggered

Manual printing (from the Inventory app):

  • Product form → gear icon → Print Labels → ZPL option

  • Inventory → Products → Lots/Serial Numbers → select rows → Print → ZPL

Automatic printing (on operation validation):

  • Inventory → Configuration → Operations Types → select an operation → Hardware tab → enable Product Labels and/or Lot/SN Labels → select a ZPL format

  • Once configured, labels auto-print whenever that operation is validated — whether from the Inventory app or the Barcode app

Carrier/shipping labels:

  • Delivery orders validated with a third-party carrier (FedEx, UPS, etc.) set to ZPL2 label format

What Does NOT Print to Zebra:

  • Any PDF report

  • ZPL prints 1 label per job — no native batch printing

NOTE:  The Barcode app does NOT have a print button. It only triggers ZPL printing indirectly by validating operations that have auto-print configured on the operation type.

Step 6: Barcode Scanner (Optional)

If you also have a USB barcode scanner, plug it into the Windows machine. It should be detected automatically via Plug and Play. Open the Barcode app in Odoo and scan a barcode to verify.

Note: barcode scanners may appear intermittently in the IoT device list, but they generally function correctly when connected.

Known Limitations

  • Customer displays are not supported on Windows Virtual IoT

  • MRP devices (cameras, measurement tools) are not compatible

  • Non-Zebra label printers claiming ZPL emulation are unreliable and unsupported

  • Devices must remain physically connected. If you unplug a printer, it disappears from the IoT device list

  • Label customization (custom layouts, industry-specific codes) requires custom development or a success pack

  • Mac/Linux: You can run a Windows VM, but this is unsupported by Odoo

Troubleshooting Quick Reference

Problem

Solution

IoT homepage doesn’t load at localhost:8069

Restart the Odoo IoT service via Windows Services

Devices don’t appear on the database

Wait 5 min, then restart the service. Verify printer appears in Windows Printers & Scanners

Can’t access IoT from another computer

Check firewall inbound rule for ports 8069, 80, 443. Verify both machines are on same network

Zebra printer doesn’t print

Confirm you selected a ZPL report (not PDF). Verify the printer driver is installed in Windows

PostgreSQL checkbox greyed out

Previous install left registry keys. Clean with regedit, restart, reinstall

“Connection to IoT Box failed”

Check IoT subscription is active. Try https://[IoT-IP] and manually accept the self-signed certificate

Service name unclear

On v19, look for “Odoo IoT” or “Odoo IoT 19” in Windows Services

Driver issues

Contact the printer’s hardware support (Zebra). Not an Odoo issue

Useful Links

  • Windows Virtual IoT documentation (v19): odoo.com/documentation/19.0/applications/general/iot/windows_iot.html

  • IoT system connection to Odoo: odoo.com/documentation/19.0/applications/general/iot/connect.html

  • Connect a printer: odoo.com/documentation/19.0/applications/general/iot/devices/printer.html

  • Zebra label configuration: odoo.com/documentation/19.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/zebra.html

  • Barcodes for lot and serial numbers: odoo.com/documentation/19.0/applications/inventory_and_mrp/barcode/setup/serial_numbers_lots.html

  • Auto-print settings on operations: odoo.com/documentation/19.0/applications/inventory_and_mrp/inventory/shipping_receiving/setup_configuration/print_on_validation.html

  • Labelary ZPL viewer (for testing label designs): labelary.com/viewer.html

Related Forum Threads

If you’re looking for answers to specific issues, these existing threads may help:

  • "How to install & connect my virtual IoT?" — v16/v17 focused but general concepts apply

  • "Virtual IoT Odoo 19" — confirms the separate v19 installer and nightly build URL

  • "What is the difference between the IoT box and the Virtual IoT?" — physical vs virtual comparison

  • "Label Code for ZD410 Zebra Printer" — ZPL code customization examples

  • "Connect your printer & modify ZPL format" — general printer + ZPL setup

Hope this helps someone avoid the headaches I went through. Happy to answer follow-up questions.

Samson Mai

Business Solutions Analyst, Odoo North America

1
Avatar
Discard
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Related Posts Replies Views Activity
Virtual IOT 17 not pairing, (No devices)
printer label IOT VirtualIoT
Avatar
0
May 26
428
Print custom label size
printer print barcode label labels
Avatar
Avatar
Avatar
2
Mar 23
10162
Virtual IoT Odoo 19 Solved
VirtualIoT IoT
Avatar
Avatar
Avatar
2
Nov 25
2420
Add Customer Name to ZPL Label
label zpl
Avatar
Avatar
1
Dec 24
1887
How to fix barcode error reader on Zebra mobile scanner device (And other mobile scanners) in Odoo 16. Solved
barcode zebra
Avatar
Avatar
Avatar
Avatar
Avatar
5
Oct 25
10324
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now