Skip to main content
Odoo Community Association

POS Printing QZ

Alpha License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

This module provides a pure-software alternative to the Odoo IoT Box for thermal receipt printing in the Point of Sale, using [QZ Tray](https://qz.io/) as the print driver.

It extends base_report_to_printer_qz — which adds QZ Tray backend support to printing.printer — and brings that functionality into the POS, allowing users to select a printer with backend = qztray directly from the POS configuration.

Key features:

  • Cash drawer support: the cash drawer open command (ESC p) is sent automatically after each receipt print.

  • No IoT Box required: designed as a software-only alternative for setups where deploying IoT infrastructure is not desirable.

Table of contents

Installation

This module requires the following non-Python dependency:

  • [QZ Tray](https://qz.io/) must be installed and running on the client machine that operates the POS.

Odoo module dependency (must be installed first):

  • base_report_to_printer_qz — provides the QZ Tray printer backend and the printing.printer model with backend = qztray support.

Python dependencies (installed automatically via external_dependencies):

  • python-escpos

Configuration

To configure this module, you need to:

  1. Install and launch the [QZ Tray](https://qz.io/) desktop application on the machine where the thermal printer is connected.

  2. In Odoo, go to Point of Sale > Configuration > Settings.

  3. Select your POS configuration and enable QZ Tray Printing.

  4. Optionally select a QZ Tray Printer from the list — only printers with backend = qztray (managed by base_report_to_printer_qz) are shown. If left empty, QZ Tray will use the system default printer.

  5. Save the settings and open the POS session.

To extend or customise the receipt template, inherit PosEscposController in your own module and override the relevant _get_* methods (e.g. _get_header, _get_order_lines). No frontend changes are required.

Usage

To use this module, you need to:

  1. Open a POS session that has QZ Tray Printing enabled.

  2. Make sure the QZ Tray desktop application is running on the POS machine.

  3. Process a sale and click Payment to print the receipt.

The receipt is sent directly to the thermal printer via QZ Tray. Receipt HTML is rendered to PNG and converted to ESC/POS format server-side before sending following native Odoo logic. The cash drawer is opened automatically after each print if enabled.

No IoT Box or network printer configuration is required.

Known issues / Roadmap

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • APSL Nagarro

Contributors

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

miquelalzanillas

This module is part of the OCA/pos project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Metadata

Release files for odoo-addon-pos-printing-qztray 19.0.1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for odoo-addon-pos-printing-qztray 19.0.1.0.1
File Interpreter ABI Platform Actions
odoo_addon_pos_printing_qztray-19.0.1.0.1-py3-none-any.whl Python 3 none any Details for odoo_addon_pos_printing_qztray-19.0.1.0.1-py3-none-any.whl

Release files / odoo_addon_pos_printing_qztray-19.0.1.0.1-py3-none-any.whl

Download URL odoo_addon_pos_printing_qztray-19.0.1.0.1-py3-none-any.whl
Size 43.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce02b8547391d03dddbebcfa0192abcca86fde78cf623bca15c174a6b79d3e00
BLAKE2b-256 checksum
How to use checksums
b83640356e17396c237c0496de16183a4936caf83f85be5900ccba5d25ed1786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for odoo-addon-pos-printing-qztray 19.0.1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page