- Home
- Apps
- Multichannel & PIM Tools
- Dynamic Product Labels
Illustrative previewA made-to-order Odoo module that generates fully customizable barcode and QR-code product labels driven by dynamic fields you choose.
ECOSIRE designs, builds, installs, and supports it on your Odoo 17/18/19 database.
What is Dynamic Product Labels?
A made-to-order Odoo module that generates fully customizable barcode and QR-code product labels driven by dynamic fields you choose. ECOSIRE designs, builds, installs, and supports it on your Odoo 17/18/19 database. 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 and retail teams running Odoo constantly hit the same wall at print time: the stock label is a fixed layout. The built-in product barcode and reception labels print a barcode and a name, but the moment you need a QR code that encodes a lot number, a shelf-life date pulled from expiration_date, a variant attribute value, a two-currency price, a supplier reference, or your own GS1 Application Identifiers, Odoo native runs out of road. Teams end up exporting to a spreadsheet, hand-designing labels in a third-party tool, and re-printing whenever a field changes — which breaks traceability and wastes hours every week. Community edition compounds this because some label and report tooling differs from Enterprise, so what a colleague demoed may not exist on your build at all.
Dynamic Product Labels is a build-to-order Odoo module that ECOSIRE designs and develops specifically for your data model. At its core it adds a label.template model (with label.template.line element rows) that lets you compose a label from any field reachable from product.product, product.template, stock.lot, or stock.quant — including related and @api.depends computed fields you already maintain. Each placed element is a text block, a 1D barcode (Code128, EAN-13, UPC-A, ITF-14), or a 2D code (QR or DataMatrix), and its content is a safe evaluated expression such as object.lot_id.name or a formatted price, so a label always reflects the live record. Rendering is a QWeb report (ir.actions.report) at an exact physical size in millimetres, so output lands on your Zebra/Brother/Dymo stock without manual scaling.
Technically, the build stays inside Odoo conventions so your team can own it afterwards. Barcodes and QR codes reuse Odoo's own /report/barcode/ image controller (backed by python-barcode/qrcode) rather than a bundled binary, security is enforced through ir.model.access.csv plus record rules so warehouse users can print but only managers edit templates, and a Print Labels action is wired onto the relevant list/form views via XML so it appears exactly where operators expect it. Optional automation — an ir.actions.server or automated action that auto-prints a label when a lot is created or a transfer is validated — is scoped per project. Everything is exposed over the standard XML-RPC/JSON-RPC API, so an external scale, WMS, or line printer can trigger a label render programmatically.
Because this is made to order, delivery is a short collaboration rather than a download. After a scoping call we confirm exact fields, label dimensions, symbologies, and printer models, then build against your Odoo 17.0, 18.0, or 19.0 (Community or Enterprise) database, validate on a staging copy through UAT, and deploy with a rollback plan. Pricing starts from $999 (indicative, single-company base scope); the number of distinct label templates, symbology and localization depth (GS1 AIs, RTL/CJK text, multi-currency pricing), auto-print automation, and multi-company or multi-warehouse rollout increase the quoted scope. You receive the final fixed quote after the scoping call, never a surprise on delivery.
What you get
- Installable, version-matched module source code for your Odoo 17.0, 18.0, or 19.0 build (Community or Enterprise)
- Installation and configuration on your environment, including report/paper-format setup for your label stock and printers
- Technical documentation: `__manifest__.py` overview, model/field reference, security matrix, and expression-syntax guide
- End-user guide plus a live training session for warehouse and admin staff on building templates and printing
- UAT on a staging copy of your database with a documented rollback plan before any production change
- A defined post-go-live support window for defect fixes and configuration questions
- Git repository handover with full commit history so your team owns and can extend the code
- Sample label templates seeded for your top SKUs/lots as a working starting point
Who this is for
Warehouse & Inventory Manager
Runs receiving, put-away, and picking in Odoo Inventory and needs scan-reliable barcode/QR labels that carry lot, expiry, and location data — not just a product name — so traceability holds end to end.
Retail / E-commerce Operations Lead
Prints shelf and price labels across many variants and currencies and wants label content to update automatically from the product record instead of being re-designed in an external tool each time prices change.
Compliance & Quality Officer
Sells into retailers or regulated categories and needs GS1-128 / DataMatrix labels encoding GTIN, batch, and best-before dates that pass third-party scan and audit checks.
Odoo Administrator / Internal IT
Owns the Odoo instance and wants a maintainable, ORM-native module with clean security rules and a git handover, callable over XML-RPC, that they can extend rather than a black-box binary.
How Dynamic Product Labels Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Label content | Any field on product/variant/lot/quant via safe expressions | Whatever you scope and code yourself | Preset field set, limited to what the module ships | Product name and barcode only |
| 2D codes (QR/DataMatrix + GS1) | QR, DataMatrix and GS1-128 AIs built to your compliance need | Possible but you build the GS1 payload logic | Often QR only; GS1 AIs rarely complete | No dynamic QR/DataMatrix on stock labels |
| Odoo 17/18/19 + Community/Enterprise | Built and tested against your exact version and edition | Depends on your developer's coverage | Depends on vendor's supported versions | Ships with core but layout is fixed |
| Printer/paper sizing | QWeb report sized in mm for your thermal stock | You configure paper formats yourself | Generic sizes, may need manual tuning | Fixed report dimensions |
| Security model | Print-only vs editor roles via access CSV + record rules | As designed, if designed | Basic group, often all-or-nothing | Inherits core inventory access |
| Auto-print automation | Optional server/automated action on lot or transfer events | Buildable at extra effort | Usually manual print only | Manual print only |
| Ownership & handover | Full source + git repo handed over | You own it by definition | Licensed binary, limited edit rights | Core code, not app-specific |
| Support & version migration | Post-go-live window + optional upgrade retainer | Your team or contractor | Vendor SLA varies; upgrades may re-buy | Community forums / your partner |
Frequently Asked Questions about Dynamic Product Labels
How long does delivery take?
Because this is built to order, typical delivery is one working week from confirmed scope. After the scoping call we lock the exact fields, dimensions, symbologies, and printers, then build, run UAT on a staging copy, and deploy. Very large multi-company or heavy GS1/localization scopes can run longer and we tell you that in the quote.
Is this an existing app I can download and install right now?
No. It is not an off-the-shelf apps.odoo.com download. ECOSIRE builds it specifically for your data model, Odoo version, and printers, then installs and supports it. You get the full source and git repository at handover, so there is no black box.
How does pricing and scoping work?
Pricing starts from an indicative $999 for a single-company base scope. On a short scoping call we confirm the number of label templates, symbologies, automation, localization depth, and rollout footprint, then send a fixed written quote. You approve the fixed price before any build work begins.
What about support and future updates?
Every build includes a defined post-go-live support window for defect fixes and configuration questions. Beyond that we offer optional support and version-migration retainers — for example carrying the module forward when you upgrade from Odoo 17 to 18 or 19, which we handle as a scoped upgrade rather than a silent auto-update.
Will it work on Odoo Community, or do I need Enterprise?
It works on both. We build against your target — 17.0, 18.0, or 19.0, Community or Enterprise — and handle the ORM, view, and report-tooling differences between editions during the build so the module behaves the same on your specific instance.
Can labels encode lot numbers, expiry dates, and GS1 data for retailer compliance?
Yes. Elements can bind to `stock.lot` fields such as the lot name and `expiration_date`, and QR/DataMatrix or GS1-128 content can encode GTIN (01), batch/lot (10), and expiry (17) Application Identifiers so labels pass retailer and audit scan checks. Exact AIs and symbology are confirmed during scoping.
Can our other systems trigger a print automatically?
Yes. Label rendering is exposed over the standard XML-RPC/JSON-RPC API, and we can add an automated action or server action that auto-prints when a lot is created or a transfer is validated, so a scale, WMS, or line printer fires labels without manual clicks.
Related Modules

DPD Shipping Connector for Odoo
Custom-built Odoo DPD connector: API labels, live rates, Predict notifications and tracking sync. Built and supported by ECOSIRE in one working week.

Dropship Automation & Vendor Routing for Odoo
Build-to-order Odoo module that auto-creates dropship POs, routes each line to the best vendor, and syncs tracking back to the customer.

eMAG Marketplace Connector (CEE)
Sync eMAG Romania, Bulgaria and Hungary offers, orders, AWB labels and RMA returns with Odoo 17/18/19. Built and installed by ECOSIRE.
Dynamic Product Labels
A made-to-order Odoo module that generates fully customizable barcode and QR-code product labels driven by dynamic fields you choose. ECOSIRE designs, builds, installs, and supports it on your Odoo 17/18/19 database.
- A `label.template` model with `label.template.line` element rows so a single label is composed from many placed fields, not one hard-coded report
- Bind any element to a field reachable from `product.product`, `product.template`, `stock.lot`, or `stock.quant`, including related and `@api.depends` computed fields
- Safe expression evaluation per element (for example `object.lot_id.name`, `object.list_price`, or a formatted date) using Odoo's `safe_eval`, never raw `eval`
- 1D symbologies Code128, EAN-13, UPC-A and ITF-14 rendered through Odoo's native `/report/barcode/` controller
