- Home
- Apps
- Multichannel & PIM Tools
- Stock Product Labels for Odoo
Illustrative previewA made-to-order Odoo module that prints custom product and barcode labels straight from stock transfers,
receipts and warehouse operations.
ECOSIRE builds it to your label stock, symbology and workflow, then installs and supports it on Odoo 17/18/19.
What is Stock Product Labels for Odoo?
A made-to-order Odoo module that prints custom product and barcode labels straight from stock transfers, receipts and warehouse operations. ECOSIRE builds it to your label stock, symbology and workflow, then installs and supports it on Odoo 17/18/19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Warehouse teams lose real time at the label printer. When a receipt lands, an internal transfer moves, or a manufacturing order finishes, someone still has to identify each product, figure out how many labels to run, drop in the right barcode, and reprint the ones that came out crooked or unscannable. Odoo core does print product barcode labels from the Products screen and offers basic label formats, but it stops well short of the shop floor: you cannot easily trigger the exact label you need from the stock.picking you are actually processing, the built-in layouts are fixed, and there is no clean way to bind a specific label template to a warehouse, an operation type, a customer, or a product category. Off-the-shelf apps.odoo.com modules narrow the gap but hard-code a template, a paper size, or a symbology that rarely matches the label roll and scanners you already own.
This is a build-to-order module. We design and build a stock.product.label capability around your operations: a QWeb-based label report (label paper, thermal roll, or A4 sheet), a configurable label.template model so layouts are data-driven rather than baked into code, and print actions that fire directly from stock transfers, receipts, delivery orders, internal moves, and manufacturing outputs. Technically it is a proper Odoo addon — a __manifest__.py declaring the report, models extending stock.picking / stock.move / product.product, a compute layer (@api.depends) that resolves quantity-to-print from move lines, lots/serials, or packaging, and QWeb templates that render the barcode via Odoo's barcode widget in your chosen symbology (Code128, EAN-13, GS1-128, QR, or a DataMatrix render where your scanners need it). Security is wired through ir.model.access.csv and, where you run multiple warehouses or companies, record rules so warehouse operators only see and print their own labels. Optional automated actions (base.automation) can queue a label print the moment a transfer is validated, and everything is reachable over the XML-RPC / JSON-RPC API for label kiosks or external print servers.
We build against your real constraints: the physical label dimensions and margins, how many labels per unit versus per lot versus per package, which fields belong on the face (internal reference, sales description, lot/serial, expiry, weight, price, customer part number), and whether print happens per line, per picking, or batched across a wave. Community and Enterprise are both supported — the module targets the standard stock and product models, so it runs on Community; where you are on Enterprise we integrate cleanly with the barcode app and Studio-added fields rather than fighting them. Built and validated for Odoo 17.0, 18.0 and 19.0, pinned to the version you actually run.
Build-to-order delivery works in the open: a short scoping call to confirm label formats, trigger points, symbology and volume, then a fixed written quote and timeline. Typical delivery is one working week from confirmed scope, and you receive the installable source, staging UAT with a rollback plan, and a support window after go-live. Pricing starts from $999 (indicative, single-company base scope); multi-warehouse and multi-company record-rule work, extra label templates and symbologies, thermal/print-server integration, and localization depth increase the quoted scope. You get a firm number before any build begins — never a surprise.
What you get
- Installable Odoo module source code for your pinned version (17.0, 18.0 or 19.0), built to your label media and workflow
- Installation and configuration on your environment, including label templates, symbology and trigger-point setup
- Technical documentation: model/field reference, `__manifest__.py` notes, QWeb template guide and record-rule map
- End-user guide plus a live training session for warehouse operators and admins
- UAT on a staging database with a documented rollback plan before any production change
- Post-go-live support window for defect fixes and configuration adjustments
- Git repository handover with full commit history and tagged release
- Configuration export of label templates and print rules so the setup is reproducible across databases
Who this is for
Warehouse / Inventory Manager
Runs receipts, transfers and dispatch on Odoo and needs the right label to print from the transfer being processed, in the exact size and symbology their existing scanners and thermal printers expect.
Operations / Supply Chain Lead
Wants labelling standardized across multiple warehouses and operation types, with each dock automatically printing the correct format and full lot/expiry traceability on the label face.
Odoo Administrator / IT Manager
Owns the Odoo instance and wants a clean, upgrade-safe addon with proper access rules and API hooks rather than a brittle Studio hack, plus source code and a git handover they can maintain.
Manufacturing / Quality Lead
Needs finished-goods and lot/serial labels printed at MO completion with mandatory traceability fields, so every unit leaving the line carries a scannable, compliant barcode.
How Stock Product Labels for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Print from a stock transfer | Print actions on receipts, transfers and move lines | Possible but you build the trigger logic yourself | Often limited to product screen or a fixed picking type | Prints from the Products screen, not the transfer you are on |
| Label layout flexibility | Data-driven `label.template` records sized to your media | Whatever you code, no reuse across projects | Hard-coded template and paper size | Fixed built-in formats only |
| Barcode symbology | Code128, EAN-13, GS1-128, QR, DataMatrix as needed | You implement each symbology by hand | Usually one or two baked-in symbologies | Standard barcode widget, limited options |
| Lot / serial & expiry on label | Pulls `stock.lot` fields including expiry and dates | Custom compute logic required | Varies, often not lot-aware | Not surfaced on the standard label |
| Multi-company / multi-warehouse rules | Enforced via `ir.model.access.csv` + record rules | You design and test the security layer | Rarely handled, single-company assumptions | No dedicated label-level isolation |
| Automation & API triggers | Automated actions + XML-RPC/JSON-RPC print endpoints | Built from scratch per integration | Seldom exposes API-driven printing | No automated label triggering |
| Ownership & maintainability | Full source, git handover, docs, tagged release | You own it but carry all the build cost | Vendor-locked, black-box updates | No custom code to own |
| Support & version fit | Pinned to 17/18/19 with a post-go-live support window | Self-supported unless separately contracted | Generic support, upgrade timing not guaranteed | Covered by base Odoo support only |
Frequently Asked Questions about Stock Product Labels
Is this an existing app I can download and install today?
No. This is a build-to-order module. We design and build it to your label media, symbology and warehouse workflow, then install and support it. It is a productized service, not an instant apps.odoo.com download, which is why it is scoped and quoted per customer rather than sold as shelf software.
How long does delivery take?
Typical delivery is one working week from confirmed scope. After the scoping call we send a fixed quote and timeline; once you approve, we build on a branch, validate on your staging database, run UAT with a rollback plan, then deploy to production.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base-scope figure. We hold a short scoping call to confirm label formats, trigger points, symbology and volume, then send a firm fixed quote before any build begins. Multi-warehouse/multi-company rules, extra templates and symbologies, print-server integration and localization increase the quoted scope.
What about support and future Odoo updates?
Every build includes a post-go-live support window for defect fixes and configuration tweaks. Because we hand over the git repository and source code, the module is yours to maintain, and we can quote a version migration (for example 18.0 to 19.0) as a separate scoped engagement when you upgrade.
Does it work on Odoo Community or only Enterprise?
Both. The module targets the standard `stock` and `product` models, so it runs on Community. On Enterprise we integrate cleanly with the barcode app and any Studio-added fields rather than conflicting with them. We build and validate against Odoo 17.0, 18.0 and 19.0, pinned to the version you run.
Can it print from a specific transfer instead of only the product screen?
Yes. That is the core of the build. Print actions fire from `stock.picking` and individual move lines, with the quantity-to-print computed from received or moved quantities, packaging, or per-lot/serial counts, so operators label exactly what they are processing.
Can external thermal printers or label kiosks trigger prints?
Yes. The module exposes its print actions over the XML-RPC / JSON-RPC API, so external kiosks, thermal print servers or line PLCs can request and stream labels. We scope any such integration explicitly since it affects the timeline and quote.
Related Modules

Square POS Connector for Odoo
A build-to-order Odoo integration that pulls Square POS orders into Odoo, keeps catalog and stock aligned in both directions, and turns Square payouts into reconcilable accounting entries. ECOSIRE scopes, builds, installs and supports it for your database.

Stock 3D View
A build-to-order Odoo module that renders your warehouses and internal locations as an interactive 3D scene, letting operators see occupancy, product placement, and capacity at a glance. ECOSIRE designs, builds, installs, and supports it against your real `stock.location` hierarchy.

Supplier / Vendor Catalog Import & EDI Bridge
Ingest supplier price/stock feeds and EDI docs (CSV/Excel/XML/EDIFACT) to keep Odoo dropship and reseller catalogs current — built, installed and supported by ECOSIRE.

TCS Courier Connector for Odoo
A build-to-order Odoo integration that connects TCS courier (Pakistan) to your sales and delivery flow — booking consignments, printing AWB/load-sheet labels, tracking parcels and reconciling COD directly from Odoo. Built, installed and supported by ECOSIRE.
Stock Product Labels
A made-to-order Odoo module that prints custom product and barcode labels straight from stock transfers, receipts and warehouse operations. ECOSIRE builds it to your label stock, symbology and workflow, then installs and supports it on Odoo 17/18/19.
- QWeb label report rendering to label paper, thermal roll (e.g. 40x30/57x40), or A4 sheet layouts sized to your exact media dimensions and margins
- Data-driven `label.template` model so layouts, field placement and label size are configurable records rather than hard-coded XML you cannot change later
- Print actions fired directly from `stock.picking` (receipts, deliveries, internal transfers) and individual `stock.move` / move lines, not just the Products screen
- Quantity-to-print resolved by a compute layer (`@api.depends`) from received/moved quantities, packaging, or per-lot/per-serial counts