Skip to main content
POS Barcode & Label Printing Studio — A build-to-order Odoo module that lets you design custom label templates and bulk-print — 1/1Illustrative preview

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.

What is POS Barcode & Label Printing Studio?

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 $999.00 USD; request a quote for a scoped proposal.

Key Features

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
Print wizard to choose template, quantity-per-product or one-per-unit-received, and target printer size before rendering
Dedicated shelf-edge and price-tag layouts alongside standard die-cut A4 sheet formats
Multiple label-printer and media-size support via per-template paper formats, with ZPL/ESC-POS routing for thermal units where required
`@api.depends` compute layer binding printed price to the same field the POS reads, preventing stale-price labels
Optional automated action to queue a relabel batch when a product price changes
Role-based control via `ir.model.access.csv` plus record rules on template editing and bulk print triggers
Label requests exposed over XML-RPC/JSON-RPC so scales, WMS, or scheduled jobs can print programmatically
Support for Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise editions

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 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

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.

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 one working week 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.

What you get

  • Installable module source code for your confirmed Odoo version (17.0, 18.0, or 19.0), with a clean `__manifest__.py` and pinned dependencies
  • Installation and configuration on your environment, including label template setup and printer/media mapping
  • Technical documentation: models, QWeb report templates, security rules, and the XML-RPC/JSON-RPC label endpoints
  • End-user guide plus a live training session for your labeling and receiving staff
  • UAT pass on a staging database with a documented rollback plan before any production change
  • Post-go-live support window for fixes and questions after launch
  • Git repository handover with full commit history and tagged release

Who this is for

Grocery & supermarket operators

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.

Multi-SKU retailers

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.

Store & inventory managers

Want branded, consistent price tags and shelf labels across locations, role-locked template editing, and an audit-safe relabel trigger tied to price updates.

Odoo administrators & IT leads

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.

How POS Barcode & Label Printing Studio Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Custom label layoutsReusable `label.template` layouts (price tag, shelf-edge, A4 sheet) via QWebPossible, but you design and maintain the QWeb from scratchA few fixed templates, limited restylingHard-coded name-price-barcode sheet, no design control
Weighed-item EAN-13 embedded priceBuilt to the `2`-prefix PLU/weight convention with check digitFeasible if your dev knows the encoding rulesRarely covered or sold as an add-onNot supported
Print from PO receiptPrint exact received quantities off `stock.picking` in one passExtra scope on top of base labelingUsually product-list onlyNot available
Price accuracy`@api.depends` binds label price to the POS price fieldDepends on how carefully it's wiredReads price but no update triggerReads price at print time only
Printer & media supportMultiple sizes; ZPL/ESC-POS routing for thermal unitsWhatever you budget to buildOften browser-dialog onlyBrowser print dialog, standard sheets
Security & access control`ir.model.access.csv` + record rules on templates and bulk runsMust be designed and reviewed by youBasic or generic accessInherits generic product access
API / automationXML-RPC/JSON-RPC endpoints + optional price-change triggerBuild the endpoints yourselfRarely exposedNo dedicated label API
Support & handoverInstall, training, support window, git repo handoverTied to your internal team's availabilityTicket-based vendor support onlyNo vendor; community forums

Frequently Asked Questions about POS Barcode & Label Printing Studio

How long does delivery take?

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 one working week from confirmed scope, including a UAT pass on staging before we touch production.

Is this an existing app I can download from apps.odoo.com?

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.

How do you handle support and updates after go-live?

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.

Does it work with my thermal label printer?

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.

Can it print embedded-price barcodes for weighed items?

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.

Does it work on both Odoo Community and Enterprise?

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.

Can external systems trigger label printing?

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.

Request a quote

POS Barcode & Label Printing Studio

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.

  • 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

Request a Quotation

Tell us about your POS Barcode & Label Printing Studio requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.