A build-to-order Odoo module that renders your product and warehouse labels as native ZPL and streams them straight to Zebra thermal printers — no PDF download, no manual re-print. ECOSIRE scopes, builds, installs, and supports it for Odoo 17.0/18.0/19.0. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
Manifesto do app
Feito em torno do seu fluxo de trabalho
A build-to-order Odoo module that renders your product and warehouse labels as native ZPL and streams them straight to Zebra thermal printers — no PDF download, no manual re-print. ECOSIRE scopes, builds, installs, and supports it for Odoo 17.0/18.0/19.0.
Sem configuração por conta própria — um app funcional criado, instalado e com suporte da ECOSIRE.
Comece com um preço único de desenvolvimento. Definimos o escopo com você no início.
A ECOSIRE cria, configura e instala no seu Odoo.
Você entra no ar em cerca de 2–4 semanas, com um período de suporte pós-lançamento.
Warehouse and shop-floor teams lose real minutes on every label. Odoo's stock and product labels ship as QWeb/PDF reports: an operator clicks Print, the browser downloads a PDF, they open it, choose the right printer, fight the scaling dialog, and only then does a label emerge — often shifted a few millimetres off the die-cut because a raster PDF was rasterized again by the printer driver. At scale — hundreds of putaway, pick, pack, or GS1 shipping labels a day — that click-download-open-print loop is both slow and error-prone, and it leaves label quality at the mercy of whatever driver is installed on each workstation. Odoo core has no concept of speaking a thermal printer's native page-description language, so barcodes drift, text blurs at 203/300 dpi, and there is no clean way to fire a label from an automated action or an external system.
Product Label & ZPL Report Direct Print is the module we build to close that gap. Instead of a PDF report, we author your labels as native ZPL (Zebra Programming Language) templates rendered through a QWeb-driven text report, so the printer receives crisp vector text, native ^BC/^BQ barcodes (Code128, GS1-128, QR, DataMatrix), and pixel-exact positioning at the printer's true dpi. The module adds a zpl.printer model (models.Model with fields for host, port, dpi, darkness, and default label size), plus a print-transport layer that sends the generated ZPL directly to the device — raw TCP to the printer's 9100 socket, a CUPS/IPP queue, or a lightweight local print agent for USB-attached units — chosen during scoping to match your network. A compute/@api.depends layer resolves the correct template and printer per product, per operation type, and per warehouse, so a pick label and a shipping label route to the right device automatically.
Technically it is a clean, upgrade-safe addon: a proper __manifest__.py declaring dependencies on stock/product, ZPL templates stored as versioned QWeb views you can edit without touching Python, ir.model.access.csv plus record rules so only warehouse roles manage printers and templates, and OWL/XML views that add a "Print to Zebra" action on products, stock moves, transfers, and lots/serials. Because printing is exposed as a server-callable method, we can wire it into Odoo automated actions (label on validation of a receipt), scheduled actions, or trigger it over the external XML-RPC/JSON-RPC API from a WMS, scale, or conveyor controller. It respects multi-company and multi-warehouse boundaries, logs every print for traceability, and degrades gracefully — if a printer is unreachable the job is queued and surfaced, never silently lost. It runs on Odoo Community and Enterprise alike; where Enterprise-only models are in play (e.g. certain barcode-app flows) we adapt the integration to your edition during scoping, and we deliver against Odoo 17.0, 18.0, or 19.0.
Because this is made to order, nothing is downloaded from an app store and installed blind. We start with a short scoping call, confirm your printer models, label stock, dpi, and the exact operations that need labels, then build and test against a staging copy of your database. Typical delivery is 2 to 4 weeks from confirmed scope, followed by UAT sign-off, production install, and a support window. Pricing starts from $249 (indicative, single-company base scope); additional printer families, multi-company or multi-warehouse routing, GS1/regulatory label layouts, and integration with external systems over the RPC API increase the quoted scope. You receive a fixed quote after the scoping call.
Runs high-volume putaway, picking, and shipping in Odoo and needs labels to print in one click straight to the Zebra units on the floor — no PDF downloads, no per-workstation driver drift, and consistent barcode quality that scanners read first time.
Owns the Odoo instance and wants a clean, upgrade-safe addon with proper access rules and multi-company scoping, plus a documented way to route different label types to different printers without customizing core stock reports.
Needs to fire labels automatically from receipt validation, a scale, or an external WMS. Values the server-callable print methods and `XML-RPC`/`JSON-RPC` entry points so labelling becomes part of the automated flow, not a manual step.
Requires accurate GS1-128 shipping and lot/serial labels for traceability and carrier acceptance, and wants every print logged so a label can be audited and reprinted exactly.
| Critério | ECOSIRE | Construção personalizada | Concorrente | Odoo nativo |
|---|---|---|---|---|
| Delivery model | Built to order for your printers and workflows, installed and supported by us | You spec and build it in-house or via a freelancer | Generic off-the-shelf download, one-size-fits-all defaults | |
| Print output | Native ZPL streamed to the printer at its true dpi | Whatever you code — often another PDF path | Usually a fixed ZPL template with limited layout control | |
| Printer routing | Per product / operation / warehouse via `@api.depends` compute | Hand-wired logic you must design and maintain | Typically a single default printer or manual selection | |
| Barcodes | Native `^BC`/`^BQ` Code128, GS1-128, QR, DataMatrix | Depends on effort; easy to get scaling/quiet-zone wrong | Common symbologies, less flexibility on GS1 layouts | |
| Automation / external triggers | Server-callable + `XML-RPC`/`JSON-RPC` for WMS, scales, PLCs | Possible but you build every integration point | Rarely exposes a clean automated print API | |
| Security & multi-company | `ir.model.access.csv` + record rules, company-scoped printers | Only what you remember to implement | Basic access, multi-company support varies | |
| Odoo version support | 17.0 / 18.0 / 19.0, Community or Enterprise, upgrade-safe | Whatever you target and keep maintaining | Depends on vendor's version coverage and update cadence | |
| Ownership & support | Full git handover + defined support window | You own it and all future maintenance | Vendor-controlled updates, shared support queue |
No. This is a build-to-order module. ECOSIRE scopes it to your printers, label stock, and Odoo workflows, then builds, tests, and installs it for you. It is not an instant apps.odoo.com download — the value is that it fits your exact devices and operations rather than a generic default.
Typical delivery is 2 to 4 weeks from confirmed scope. After a short scoping call we build against a staging copy of your database, run UAT with you, then install to production and begin the support window. Complex multi-warehouse or external-integration scopes can extend the timeline, which we confirm before starting.
Pricing starts from $249 as an indicative from-price for a single-company base scope. The final number depends on how many printer families, whether multi-company/multi-warehouse routing is needed, GS1 or regulatory label layouts, and any external-system integration. You get a fixed, written quote after the scoping call — no surprises.
It targets Zebra printers using native ZPL, over raw TCP (socket 9100), CUPS/IPP, or a local agent for USB units — confirmed to your exact models during scoping. It is built for Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise; edition-specific integration points are adapted during the build.
Odoo's labels are QWeb/PDF reports that get rasterized and re-scaled by each workstation's print driver, which shifts alignment and blurs barcodes on thermal media. Rendering native ZPL sends the printer vector text and native `^BC`/`^BQ` barcodes at its true dpi, so labels are pixel-exact, scanner-reliable, and print with one action — no download-open-print loop.
Yes. The print action is exposed as a server-callable method, so you can fire a label from an Odoo automated action (for example on receipt validation), from a scheduled action, or externally over the `XML-RPC`/`JSON-RPC` API from a WMS, scale, or conveyor controller. We wire the specific triggers you need during the build.
You get a post-go-live support window for fixes and configuration tweaks, plus the full git repository so you own the code. Because it is a clean, upgrade-safe addon, moving it to a newer Odoo version is straightforward; we can quote an upgrade or a longer support/maintenance arrangement separately when you need it.

A build-to-order Business Central AL extension that maps your 3PL warehouses into native sales and purchase flows — sending fulfillment orders, ingesting ASN and shipment confirmations, and reconciling on-hand quantities against each 3PL's stock balances.

A build-to-order ERPNext app that lets 3PL operators bill each client for storage, handling, and value-added services with strict multi-owner inventory segregation and automated periodic invoicing. ECOSIRE builds, installs, and supports it for your warehouse.
A build-to-order Odoo module that renders your product and warehouse labels as native ZPL and streams them straight to Zebra thermal printers — no PDF download, no manual re-print. ECOSIRE scopes, builds, installs, and supports it for Odoo 17.0/18.0/19.0.