A build-to-order Frappe app that turns ERPNext into a full labeling system: Code128, EAN/UPC, QR, and DataMatrix labels for items, batches, serials, bins, and shipments, with bulk printing and native ZPL thermal output. ECOSIRE scopes, builds, installs, and supports it for you. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $199.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that turns ERPNext into a full labeling system: Code128, EAN/UPC, QR, and DataMatrix labels for items, batches, serials, bins, and shipments, with bulk printing and native ZPL thermal output. ECOSIRE scopes, builds, installs, and supports it for you.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Most ERPNext warehouses hit the same wall the moment they try to standardize labeling. Core ERPNext stores a barcode value on the Item (via the Item Barcode child table) and can render a QR/Code128 on a Print Format, but there is no coherent system for generating and printing labels at scale: no batch or serial label templates that pull from Batch and Serial No, no bin/location labels tied to the Warehouse tree, no bulk "select 400 rows and print" workflow, and — critically — no native path to a Zebra or TSC thermal printer, so teams fall back to PDF-on-A4 hacks that jam label stock and produce barcodes that scanners misread. GS1 encoding (Application Identifiers, FNC1, GTIN check digits) is left entirely to the user, which is where compliance problems start.
`Label Template` DocType: define symbology, dimensions, DPI, margins, and field bindings per label type without touching code
Code128, EAN-13, EAN-8, UPC-A, ITF-14, QR, DataMatrix, and PDF417 symbologies from a single generation engine
GS1-128 and GS1 DataMatrix encoding with correct Application Identifiers — `(01)` GTIN, `(10)` batch, `(21)` serial, `(17)` expiry — and FNC1 separators
Server-side generation via whitelisted methods using `python-barcode`, `qrcode`, and Zint/`treepoem` for verifier-grade quiet zones and check digits
GTIN check-digit computation and validation so malformed barcodes are caught before they reach the printer
Native ZPL output streamed to networked Zebra printers; optional EPL/TSPL for TSC and other thermal fleets
ECOSIRE builds a proper Frappe app — its own module, DocTypes, and hooks.py doc events — installed onto your ERPNext bench so labeling becomes a first-class part of your operation. At the center is a Label Template DocType where you define symbology (Code128, EAN-13, UPC-A, QR, DataMatrix, GS1-128, GS1 DataMatrix), physical dimensions, DPI, and the field bindings for whatever you're labeling. Generation runs server-side through whitelisted methods using proven libraries (python-barcode, qrcode, and treepoem/Zint for GS1 symbologies), so barcodes carry correct quiet zones and check digits rather than being drawn by a browser. A Label Print Job DocType captures bulk requests: select any set of Item, Batch, Serial No, Stock Entry, Delivery Note, or Warehouse records, choose a template, and the app fans out one label per unit — respecting qty on stock documents so a receipt of 50 units yields 50 serialized labels.
Output is where this stops being a print-format toy. The app generates native ZPL (and optionally EPL/TSPL) streamed straight to networked thermal printers, so a Zebra prints at its rated speed with crisp, scanner-grade bars — no PDF rasterization in between. For desktop and office printers we still produce pixel-accurate PDF label sheets via a Frappe Print Format. GS1-compliant encoding is handled properly: GTIN-14 with computed check digit, AI (01), (10) batch, (21) serial, (17) expiry pulled from the Batch expiry date, all assembled with the correct FNC1 separators so your labels pass a verifier and read on WMS and retail scanners. Client Scripts add "Print Label" buttons directly on the Item, Batch, Serial No, and Stock Entry forms; a hooks.py on_submit doc event can auto-queue labels when a Purchase Receipt or Stock Entry is submitted; and a scheduler event can batch-generate reprints overnight. Everything is permission-aware — access to templates, print jobs, and printer definitions is governed by dedicated Roles and standard ERPNext role profiles — and every label endpoint is exposed on the Frappe REST API so a scan gun app or MES can request a label programmatically.
Because this is build-to-order, we do not hand you a generic download. After a short scoping call we confirm exactly which documents you label, your symbology and GS1 requirements, your printer models and label stock, and your ERPNext version (we support Frappe/ERPNext v15 and v16). We then build the app against your target version, test it on a staging bench with your own item and batch data, run UAT with your warehouse team, and install it on production with a rollback plan. Typical delivery is 2 to 4 weeks from confirmed scope. You receive the full source code and git repository so you are never locked in.
Runs receiving, put-away, and picking and needs every item, bin, and batch labeled consistently so scanners work first time. Wants bulk printing tied to Purchase Receipts and a standard label stock across the whole warehouse.
Owns the bench and cares about a clean, upgradeable Frappe app rather than brittle Print Format hacks or unmanaged Custom Scripts. Needs source code, git handover, and version alignment with their v15/v16 upgrade path.
Responsible for GS1 and traceability requirements — GTIN, batch, serial, and expiry encoded correctly so labels pass retailer and regulatory verification. Needs the encoding handled by the system, not by operators keying values by hand.
Ships to retailers or 3PLs that mandate specific barcode symbologies and thermal label formats. Wants shipment and carton labels generated straight from Delivery Notes to networked Zebra printers at line speed.
Buy the license on ecosire.com and download the QR & Barcode Label Generator for ERPNext app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install QR & Barcode Label Generator for ERPNext and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Label templates | Dedicated `Label Template` DocType per item/batch/serial/bin | Whatever you hand-build, often hard-coded | Fixed templates, limited fields | |
| Symbology coverage | Code128, EAN/UPC, QR, DataMatrix, GS1-128/DataMatrix | Depends on chosen library and effort | Usually QR + Code128 only | |
| GS1 compliance | AIs, FNC1, GTIN check digits handled server-side | Must be implemented and verified yourself | Often partial or absent | |
| Thermal / ZPL output | Native ZPL/EPL/TSPL to networked printers | Buildable but rarely done well | PDF only, or add-on required | |
| Bulk printing | `Label Print Job` expands by stock qty | Ad-hoc scripts per project | Row-by-row or basic batch | |
| ERPNext integration | DocTypes, `hooks.py` events, REST API, roles | Varies with developer discipline | Bolt-on, weaker doc-event wiring | |
| Version support & upgrades | Pinned to v15/v16, tested on staging | Your team maintains upgrades | Depends on vendor cadence | |
| Ownership | Full source + git repo handover | You own it, you build it | Vendor-licensed, limited source |
This is a build-to-order app, not an instant download. Typical delivery is 2 to 4 weeks from confirmed scope. After the scoping call we agree the exact DocTypes you label, symbologies, GS1 rules, and printer models, then build against your ERPNext version, test on staging, run UAT with your team, and install on production. The timeline scales with how many label types and printer profiles you need.
We build and test against Frappe/ERPNext v15 and v16. We pin the app to your target major version so it installs cleanly on your bench and aligns with your upgrade path. If you're on an older version we'll discuss a supported upgrade route during scoping rather than shipping something that breaks on your next `bench update`.
Every engagement includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full source code and git repository, your own team can extend it too. Beyond the initial window we offer optional support and enhancement retainers — for example adding new symbologies, printer models, or label templates, or re-validating the app against a future ERPNext release.
Yes. The app generates native ZPL and streams it to networked thermal printers, so a Zebra prints at its rated speed with scanner-grade bars rather than a rasterized PDF. We can also emit EPL or TSPL for TSC and compatible fleets. During scoping we capture your printer models, IP/port setup, DPI, and label stock so we ship printer profiles tuned to your hardware.
Yes, when GS1 is in scope. We encode GS1-128 and GS1 DataMatrix with the correct Application Identifiers — `(01)` GTIN, `(10)` batch, `(21)` serial, `(17)` expiry — proper FNC1 separators, and computed GTIN check digits, generated server-side with verifier-grade quiet zones. The goal is labels that pass retailer and regulatory verifiers on the first scan.
ERPNext core can render a barcode or QR on a Print Format, but it has no label-template system, no batch/serial/bin label workflow, no bulk 'select many and print' job, no native thermal/ZPL output, and no GS1 encoding — you build all of that by hand. This app makes labeling a first-class module with its own DocTypes, doc events, and API instead of a stack of Custom Scripts you have to maintain.
You own it. We hand over the complete source code and the git repository with full commit history. It's a standard Frappe app on your bench, so your administrators or any Frappe developer can maintain and extend it. There's no license server, no runtime phone-home, and no lock-in.
A build-to-order Frappe app that turns ERPNext into a full labeling system: Code128, EAN/UPC, QR, and DataMatrix labels for items, batches, serials, bins, and shipments, with bulk printing and native ZPL thermal output. ECOSIRE scopes, builds, installs, and supports it for you.