Erpnext Receipt Printer
A high-speed, offline-capable POS bill printing webpage for ERPNext. It utilizes IndexedDB to cache items, price lists, and company details in the browser, allowing the cashier interface to run extremely fast and offline.
- Author: Gifted87
- Repository: https://github.com/Gifted87/ERPNEXT_Receipt_Printer
- GitHub stars: 2
- Forks: 1
- License: MIT
- Category: Integrations
- Maintenance: Actively Maintained
- Frappe versions: develop
Install Erpnext Receipt Printer
bench get-app https://github.com/Gifted87/ERPNEXT_Receipt_Printer
Add the Frappe Gems badge to your README
Maintain Erpnext Receipt Printer? Paste this into your README:
[](https://frappegems.com/gems/apps/Gifted87/ERPNEXT_Receipt_Printer)
About Erpnext Receipt Printer
Bill Printer 🖨️
A high-speed, offline-capable POS bill printing webpage for ERPNext. It utilizes IndexedDB to cache items, price lists, and company details in the browser, allowing the cashier interface to run extremely fast and offline.
📸 Screenshots
| POS Dashboard | Session Start |
|---|---|
![]() |
![]() |
✨ Key Features
- Offline-First: Cache all items, prices, and categories in the browser. Print receipts even with no network connection.
- Beautiful Thermal Formatting: Styled to print perfectly on standard 80mm and 58mm thermal printers (with 100% fluid CSS layout).
- ERPNext Integration:
- Pulls enabled POS Profiles dynamically.
- Automatically loads the correct Price List linked to the profile.
- Fetches the company's official Letterhead image for receipt headers.
- Cashier Control Panel:
- Add/modify/remove cart quantities instantly.
- Quick-add items with placeholder gradient background patterns for missing images.
- Flat Tax % Override and custom Footer Messages configured locally on the Settings page.
- Fixed-amount and percentage Discount controls.
- Automatic Round Off toggle.
🛠️ Tech Stack
- Frontend: HTML5, Vanilla CSS, Tailwind CSS (Utility classes), Javascript (ES6), Lucide Icons.
- Local Storage: IndexedDB (for structured items/metadata cache),
localStorage(for session settings). - Backend: Python (Frappe Whitelisted APIs).
🚀 Installation
Install the app on your bench:
cd /home/erpnext/frappe-bench
bench get-app https://github.com/YOUR_GITHUB_USERNAME/bill_printer.git
bench --site site1.local install-app bill_printer
bench --site site1.local clear-cache
📖 How to Use
🌐 Online Operations (Internet Required)
These actions connect to the ERPNext server to fetch or sync your database:
1. Accessing the App: Navigate to http:///pos.
2. Starting a POS Session:
- Make sure you are online.
- Select your Company, Location / POS Profile, and enter your Cashier Name.
- Click Start Session & Load Items to download and cache items, categories, prices, and letterheads to the browser.
3. Reloading / Syncing Data:
- Tap the Reload icon in the top header to fetch the latest items and pricing from ERPNext.
🔌 Offline Operations (No Internet Needed)
Once your session is started, the app runs completely standalone in the browser. You do not need an internet connection for these:
- Selling: Search items, tap to add to cart, and use the +/− controls to adjust quantities.
- Local Settings: Edit local tax percentage overrides or customize the receipt footer message.
- Cart Controls: Apply fixed/percentage discounts or toggle the round-off option.
- Preview & Printing: Open the formatted thermal preview and print receipts immediately to your 80mm/58mm printers.
🔒 License
Distributed under the MIT License. See license.txt for more information.
Related Integrations apps for Frappe & ERPNext
- Insights — Open Source Business Intelligence Tool
- Raven — Simple, open source team messaging platform
- Frappe Whatsapp — WhatsApp cloud integration for frappe
- Frappe Assistant Core — Infrastructure that connects LLMs to ERPNext. Frappe Assistant Core works with the Model Context Protocol (MCP) to expose ERPNext functionality to any compatible Language Model
- Biometric Attendance Sync Tool — A simple tool for syncing Biometric Attendance data with your ERPNext server
- Frappe React Sdk — React hooks for Frappe
- Frappe Js Sdk — TypeScript/JavaScript library for Frappe REST API
- Mcp — Frappe MCP allows Frappe apps to function as MCP servers

