A build-to-order Odoo module that lets you design custom label templates and bulk-print product, shelf-edge, and weighed-item barcode labels straight from your product list or PO receipts. Built, installed, and supported by ECOSIRE for Odoo 17, 18, and 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $199.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module that lets you design custom label templates and bulk-print product, shelf-edge, and weighed-item barcode labels straight from your product list or PO receipts. Built, installed, and supported by ECOSIRE for Odoo 17, 18, and 19.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
Retailers and grocers live or die by their labels. Odoo core ships a basic "Print Labels" action on product.template that pushes a fixed 2x7 or 4x7 QWeb sheet of name-price-barcode tags, but it runs out of road fast: you cannot brand the layout, you cannot add a shelf-edge or price-tag format, you cannot generate EAN-13 embedded-price barcodes for weighed items, and there is no clean way to fire a batch of the right labels straight off an incoming purchase receipt. Teams end up exporting to spreadsheets, wrestling with third-party label software, or reprinting the whole product list just to relabel one shelf — every one of those is a place where prices drift out of sync with the POS.
Reusable `label.template` model storing element positions, visible fields, fonts, and physical media size, rendered through parameterized QWeb reports
Custom label designs combining price, barcode, product name, `default_code`/internal reference, UoM, and currency symbol
Server-side barcode generation for Code128, EAN-13, and EAN-8 with correct check-digit computation
EAN-13 embedded-price barcodes for weighed items (`2`-prefix + PLU + weight/price payload) that scan correctly at the register
Bulk 'Print Labels' server action wired into the `product.template`/`product.product` list view for multi-select runs
Print-from-receipt: generate exactly the received quantities off a `stock.picking` incoming PO in a single pass
POS Barcode & Label Printing Studio is a module we build to close that gap on your catalog and your hardware. At its core is a label.template model (models.Model) that stores reusable layouts — element positions, fonts, which fields to show (list_price, barcode, name, default_code, UoM, currency), and the physical media size — rendered through parameterized QWeb reports so the same template drives a 40x30mm price tag, a 100x50mm shelf-edge strip, or an A4 sheet of die-cut labels. Barcodes are generated server-side (Code128, EAN-13, EAN-8) with proper check-digit computation, and for weighed goods we implement the EAN-13 embedded-price convention (2 prefix + PLU + weight/price payload + check digit) so a scale-printed sticker scans correctly at the register. A compute layer (@api.depends on price and currency) keeps the printed price bound to the same field the POS reads, so a label can never quietly show a stale figure.
Operationally, the module adds a "Print Labels" server action wired into the product.template/product.product list view and, on request, onto the stock.picking receipt flow — select an incoming PO's move lines and print exactly the received quantities in one pass, no manual counting. A wizard lets the operator pick the template, quantity-per-product (or "one per unit received"), and the target printer size before rendering. We support multiple label printers and media sizes by mapping each label.template to a paper format and, where you use dedicated thermal units (Zebra/TSC/Brother), routing through your print server or ESC/POS/ZPL path rather than the browser dialog. Access is locked down with ir.model.access.csv plus record rules so only authorized roles can edit templates or trigger bulk runs, and an optional automated action can queue a relabel batch whenever a price changes. Everything is reachable over Odoo's XML-RPC/JSON-RPC API too, so an external scale, WMS, or scheduled job can request labels programmatically.
Because this is build-to-order, nothing is pre-listed on apps.odoo.com — we scope it to your exact label stock, printer models, barcode conventions, and Odoo edition first. After a short scoping call we confirm the template set, the media sizes, and whether you need the PO-receipt and price-change triggers, then build against your target version (17.0, 18.0, or 19.0) on a staging database. Typical delivery is 2 to 4 weeks from confirmed scope. You get the installable source, a UAT pass on staging with a rollback plan, install and configuration on your environment, documentation, a training session, and a post-go-live support window — all delivered and maintained by ECOSIRE. Community and Enterprise are both supported; we flag anything that depends on Enterprise-only stock or barcode features during scoping so there are no surprises.
Need EAN-13 embedded-price labels for weighed produce and deli items, plus fast shelf-edge relabeling when prices change — all bound to the same POS price field so scans and receipts never disagree.
Label hundreds of products per receiving cycle and want to print exactly the received quantities straight off the PO instead of exporting to spreadsheets or reprinting the whole catalog.
Want branded, consistent price tags and shelf labels across locations, role-locked template editing, and an audit-safe relabel trigger tied to price updates.
Need a maintainable module with clean ORM code, `ir.model.access.csv` security, QWeb reports, and an XML-RPC/JSON-RPC path so scales or a WMS can request labels programmatically.
Buy the license on ecosire.com and download the POS Barcode & Label Printing Studio module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for POS Barcode & Label Printing Studio, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Custom label layouts | Reusable `label.template` layouts (price tag, shelf-edge, A4 sheet) via QWeb | Possible, but you design and maintain the QWeb from scratch | A few fixed templates, limited restyling | |
| Weighed-item EAN-13 embedded price | Built to the `2`-prefix PLU/weight convention with check digit | Feasible if your dev knows the encoding rules | Rarely covered or sold as an add-on | |
| Print from PO receipt | Print exact received quantities off `stock.picking` in one pass | Extra scope on top of base labeling | Usually product-list only | |
| Price accuracy | `@api.depends` binds label price to the POS price field | Depends on how carefully it's wired | Reads price but no update trigger | |
| Printer & media support | Multiple sizes; ZPL/ESC-POS routing for thermal units | Whatever you budget to build | Often browser-dialog only | |
| Security & access control | `ir.model.access.csv` + record rules on templates and bulk runs | Must be designed and reviewed by you | Basic or generic access | |
| API / automation | XML-RPC/JSON-RPC endpoints + optional price-change trigger | Build the endpoints yourself | Rarely exposed | |
| Support & handover | Install, training, support window, git repo handover | Tied to your internal team's availability | Ticket-based vendor support only |
Because this is a build-to-order module, we start from a short scoping call to confirm your label stock, printers, barcode conventions, and Odoo edition. Typical delivery is 2 to 4 weeks from confirmed scope, including a UAT pass on staging before we touch production.
No. ECOSIRE builds, installs, and supports this module specifically for your catalog and hardware. There is no instant download — you receive the installable source, configured on your environment, after we build against your target version.
Every engagement includes a post-go-live support window for fixes and questions, plus a full git repository handover so your team owns the code. We can also quote ongoing maintenance or a version migration (for example 17.0 to 19.0) as a separate scope when you upgrade Odoo.
Yes — we map each label template to a physical media size and, for dedicated thermal units like Zebra, TSC, or Brother, route through your print server or a ZPL/ESC-POS path rather than the browser print dialog. We confirm your exact printer models during scoping.
Yes. We implement the EAN-13 embedded-price convention (a `2` prefix, PLU code, and weight/price payload with a computed check digit) so scale-printed or shelf labels scan correctly and ring up the right amount at the POS.
Yes, and on Odoo 17.0, 18.0, and 19.0. The core barcode, QWeb, and printing logic runs on Community. If any part of your workflow depends on Enterprise-only stock or barcode features, we flag it during scoping so there are no surprises.
Yes. Label requests are exposed over Odoo's XML-RPC/JSON-RPC API, so an integrated scale, WMS, or a scheduled automated action can request a batch of labels programmatically without anyone opening the Odoo UI.
A build-to-order Odoo module that lets you design custom label templates and bulk-print product, shelf-edge, and weighed-item barcode labels straight from your product list or PO receipts. Built, installed, and supported by ECOSIRE for Odoo 17, 18, and 19.