EpiTag is a comprehensive barcode and QR code solution designed specifically for ERPNext. It enables seamless generation, printing, and scanning of various barcode formats and QR codes directly from your ERPNext system.
- Support for multiple barcode formats:
- Code 128
- Code 39
- EAN-13
- EAN-8
- UPC-A
- ISBN-13
- ISBN-10
- ISSN
- JAN
- PZN
- Multiple QR code formats with configurable error correction levels:
- Standard QR (M-15% error correction)
- Low density QR (L-7% error correction)
- High reliability QR (H-30% error correction)
- Rich data encoding for complex information
- Built-in QR code scanning support for web and mobile
- Ready-to-use print format templates:
- Barcode Format Demo (showcases all supported formats)
- Compact Shelf Label (2.25" x 1.25")
- Inventory Sheet with QR Codes
- Customizable label templates and layouts
- Print preview functionality
- Support for batch printing
- Built-in QR code scanner using device camera
- Automatic field population from scan results
- Support for both desktop and mobile browsers
- Visual scanning interface with feedback
- Integration with Frappe UI components
- Python 3.10 or higher
- ERPNext 15.x
- Frappe Bench
-
From your bench directory, get the app:
bench get-app epitag https://github.com/appliedrelevance/epitag
-
Install the app on your site:
bench --site your-site.local install-app epitag
-
Build and install dependencies:
bench build bench restart
In your print formats, use the barcode
filter with the desired format:
<!-- Generate Code 128 barcode -->
{{ doc.item_code|barcode("code128") }}
<!-- Generate QR code -->
{{ doc.item_code|barcode("qr") }}
<!-- Generate high-reliability QR code -->
{{ doc.item_code|barcode("qr-h") }}
The scanning interface is automatically added to Item fields. You can also use it programmatically:
const scanner = new epitag.scanning.QRScanner({
callback: (result) => {
console.log('Scanned:', result);
// Handle the scanned data
}
});
scanner.show();
- Navigate to any Item document
- Click Print > Format
- Select one of the included formats:
- Barcode Format Demo
- Compact Shelf Label
- Inventory Sheet with QR Codes
- Navigate to Settings > Printing > Print Format
- Create a new format or customize existing ones
- Use the
barcode
filter in your Jinja templates - Customize CSS for precise control over label dimensions and layout
qr
orqr-m
: Medium level (15% data recovery)qr-l
: Low level (7% data recovery)qr-q
: Quartile level (25% data recovery)qr-h
: High level (30% data recovery)
For support and discussions:
- GitHub Issues: https://github.com/appliedrelevance/epitag/issues
- ERPNext Forums: Tag your posts with 'epitag'
This project is licensed under the MIT License - see the LICENSE file for details.
- Applied Relevance ([email protected])
- ERPNext Community
- Frappe Framework Team
- Python Barcode Library Contributors