Pos Prime
Modern Point of Sale for ERPNext
- Author: ravindu2012
- Repository: https://github.com/ravindu2012/pos-prime
- GitHub stars: 24
- Forks: 19
- License: GPL-3.0
- Category: Retail
- Maintenance: Minimally Maintained
Install Pos Prime
bench get-app https://github.com/ravindu2012/pos-prime
Tags
- barcode-scanner
- erp
- erpnext
- frappe
- frappe-framework
- point-of-sale
- point-of-sale-system
- pos
- retail
- self-checkout
- tailwindcss
- typescript
- vite
- vue
- vue3
Add the Frappe Gems badge to your README
Maintain Pos Prime? Paste this into your README:
[](https://frappegems.com/gems/apps/ravindu2012/pos-prime)
About Pos Prime
# POS Prime
**A modern, fast Point of Sale for ERPNext**
Built for speed, touch screens, and real retail workflows.
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://frappeframework.com)
[](https://github.com/sponsors/ravindu2012) [](https://buymeacoffee.com/ravindu2012)
---
## Why POS Prime?
ERPNext's built-in POS is functional but limited. POS Prime is a complete replacement built from the ground up with Vue 3, designed for businesses that need a fast, reliable, and modern point of sale.
- **Fuzzy item search** with barcode scanning — typos, partial matches, and out-of-order words all work
- **Real-time stock validation** so you never sell what you don't have
- **Loyalty points** — redeem points at checkout with live balance deduction
- **Store credit** — automatically detects customer credit from returns/overpayments, apply at checkout with double-spend prevention
- **Partial payments & credit limits** — split pay, pay later, with automatic credit limit enforcement
- **Pricing rule discounts** — promo badges, strikethrough prices, discount labels, coupon codes, and free item rules
- **Resizable cart panel** — drag to resize the cart column, persisted across sessions
- **Self-checkout kiosk mode** for customer-facing touchscreens
- **Customer pole display** support (screen-based and VFD serial) with discount indicators
- **Keyboard shortcuts** (F1-F10) for lightning-fast checkout
- **Desk mode** — use POS inside Frappe Desk at `/app/pos-terminal` or standalone at `/pos-prime`
- **Quick customer creation** — create customers inline with dynamic form fields, no page navigation
- **Fullscreen toggle** — maximize/minimize POS with one click
- **i18n ready** — all UI strings wrapped for translation, RTL layout support
- **Works with ERPNext's inventory, taxes, and accounting** - no separate system
---
## Zero Modifications to ERPNext
POS Prime does **not** add custom fields, custom doctypes, or modify any existing ERPNext schema. It works entirely with ERPNext's standard doctypes:
- **POS Profile** - your existing POS configuration
- **POS Opening Entry** - standard shift management
- **POS Invoice** - native ERPNext invoices, fully compatible with consolidation and accounting
- **Item, Customer, Item Price, Bin** - reads directly from your existing data
- **Item Tax Template, Sales Taxes and Charges** - uses your existing tax setup
**Why this matters:**
- Upgrade ERPNext freely - POS Prime will never block or break your upgrades
- Uninstall cleanly - remove POS Prime and nothing changes in your ERPNext data
- No data lock-in - every invoice POS Prime creates is a standard POS Invoice, visible in Desk and reports
- Works alongside ERPNext's built-in POS - use both if you want
---
## Screenshots
### POS - Item Grid
Browse items by category with stock quantity badges, search by name or barcode, and add to cart with a single tap. Dark mode shown.

### POS - Cart
Full cart sidebar with quantity controls, invoice discount, coupon code field, and real-time totals.

### POS - Payment
Payment dialog with grand total, multiple payment method tabs (Cash, Credit Card, Bank Draft, Cheque), quick amount shortcuts, and Complete Payment button.

### POS - Payment Success
Receipt screen showing "Payment Successful" with itemized invoice details, Print and New Order action buttons.

### POS - Past Orders
Searchable invoice list with status filter tabs (All, Paid, Return, Draft). Select an invoice to view items, payments, totals, and Print/Return actions.

### POS - Returns
Return Items dialog with customer info, item search, quantity and amount adjustment, refund method selection, and Process Return button.

### POS - Customer 360
Customer list with selected profile showing outstanding balance, contact details, and recent POS invoice history.

### Customer Display - Settings
Customer Display panel in the sidebar with "Open Display Window" and "Connect VFD" options for setting up a customer-facing screen.

### Customer Display - Popup
Customer Display popup window showing the Welcome screen with phone number numpad entry for loyalty point lookup.

### Customer Pole Display
Full-screen customer-facing display showing company branding, live cart items with quantities and prices, subtotal, and grand total.

### Customer Display - Welcome Screen
Welcome screen with company logo, greeting message, phone number input with numpad, and Submit button.

### Denomination Calculator
Cash Denomination Count dialog with Notes and Coins sections, quantity inputs per denomination, running totals, and Clear All/Apply buttons.

---
## Features
### Point of Sale
- Fuzzy item search powered by Fuse.js — typos, partial matches, and out-of-order words all work
- Virtual scrolling item grid for smooth performance with large catalogs (powered by @tanstack/vue-virtual)
- Item grid with images, categories, and stock indicators
- Barcode scanner support (USB/Bluetooth HID scanners)
- Keyboard shortcuts (F1-F10) for lightning-fast checkout — works even inside input fields
- Cart with inline quantity, discount, and price controls
- Multiple payment methods (Cash, Card, Bank Draft, Cheque)
- Split payments across multiple methods
- Partial payments with confirmation dialog (requires POS Profile `Allow Partial Payment`)
- Credit limit enforcement — displays outstanding, credit limit, and available credit; blocks transactions that would exceed the limit
- Loyalty points redemption — apply points at checkout with live grand total update
- Coupon code support — validates and applies coupon-based pricing rules (Price and Product discounts)
- Invoice-level and item-level discounts
- Pricing rule engine — applies non-coupon and coupon-based rules with smart single-rule selection per item
- Free item rules (Buy X Get Y) — automatically adds free items from Product discount pricing rules
- Tax calculation with Item Tax Templates
- POS returns and refunds
- Order history with search and filters
- Print and reprint invoices
- Email receipts with PDF attachment
- Hold and resume orders (with delete confirmation)
- Auto-fetch serial numbers (FIFO)
- Product Bundle support with computed stock availability
- Cash denomination calculator for opening/closing shifts (21 currencies supported)
- Resizable cart panel — drag the handle between items and cart to adjust width, persisted in localStorage
- Collapsible item categories sidebar — toggle visibility, preference saved across sessions
- Correct rounding support — uses ERPNext's `rounded_total` for payment calculations, change, and display
- Fullscreen toggle — maximize/minimize the POS view with a single click
- Dark/Light mode follows ERPNext user theme preference
- Favicon and app logo from Website Settings
### Desk Mode Integration
- Access POS directly from Frappe Desk at `/app/pos-terminal` — no need to leave the desk
- Standalone mode at `/pos-prime` still works as before
- Auto-detects Frappe version and uses the correct desk URL prefix (`/app/` for v14-v15, `/desk/` for v16+)
- In-memory routing in desk mode — no URL changes, seamless navigation within the desk iframe
### Pricing Rules & Discounts
- Real-time pricing rule preview — promo badge, strikethrough original price, discount percentage/amount badges
- Supports all ERPNext pricing rule types: Discount %, Discount Amount, Fixed Rate
- Coupon code pricing rules — Price discounts and Product discounts (free items) via coupon codes
- Non-coupon pricing rules — automatic item-level and transaction-level rule application
- Free item rules (Buy X Get Y) — with deduplication across ERPNext versions
- Smart rule selection — best single rule per category (coupon preferred, then highest priority)
- Transaction-level promo discounts shown in cart summary
- Customer Pole Display mirrors discount indicators (Promo badge, strikethrough, discount badge)
### Store Credit
- Automatically detects available store credit from customer returns and overpayments
- GL-based credit calculation with unconsolidated POS Invoice tracking for double-spend prevention
- Apply partial or full store credit at checkout with editable amount input
- Server-side re-validation at submit time — caps to actual available credit
- Works across multiple POS terminals and shifts for the same company
- V14: works without any POS Profile setting; V15/V16: requires `Allow Partial Payment` enabled
- Credit consumption tracked via `outstanding_amount` on unconsolidated POS Invoices
### Loyalty Points
- Automatic loyalty point balance display on customer selector and payment dialog
- Redeem points at checkout — checkbox auto-applies full balance, or enter custom amount
- Live grand total update showing original price, redemption deduction, and effective total
- Points × conversion factor calculation shown inline
- Reads from ERPNext's standard Loyalty Program and Loyalty Point Entry doctypes
### Partial Payments & Credit Limits
- Allow zero-payment or partial-payment invoices when `Allow Partial Payment` is enabled on POS Profile
- Confirmation dialog before processing partial payments showing paid vs outstanding
- Customer outstanding balance aggregated from both Sales Invoices and POS Invoices
- Remaining credit limit displayed in payment header
- Credit limit exceeded warning blocks submission when new outstanding would breach the limit
- Invoices created with correct outstanding amount and Unpaid status
### Internationalization (i18n) & RTL
- All UI strings wrapped with `__()` translation function for Frappe's translation system
- RTL-compatible layout using CSS logical properties (`border-e`, `end-0`, etc.)
- RTL auto-detection from Frappe boot language data
- Accessible dialogs with `role="dialog"`, `aria-modal`, `aria-label`, and Escape key handling
### Self-Checkout Kiosk
- Fullscreen kiosk mode for dedicated touchscreens
- Barcode scanning + manual item code entry
- Phone number lookup for customer loyalty
- Card and cash payment flows
- Auto-reset after transaction completes
- Idle timeout returns to welcome screen
- Navigation prevention (no accidental exits)
### Customer Display
- Real-time cart mirroring on a second screen
- Company branding with logo
- Phone number entry for loyalty points
- VFD serial display support
- Multi-session broadcast
### Customer 360
- Slide-in customer detail panel with editable contact fields (email, mobile, loyalty program) — saves on blur
- Quick stats badges: loyalty points, outstanding balance, credit limit, store credit
- Primary address display
- Recent POS invoice history with status badges (last 20 invoices)
- Open full customer form in Desk with one click
- Loyalty points balance and outstanding badges on customer selector
- Quick customer search with phone number normalization — flexible matching with/without country code
### Quick Customer Creation
- Create new customers inline without leaving the POS
- Dynamic form fields rendered from Customer doctype quick_entry metadRelated Retail apps for Frappe & ERPNext
- Ury — URY - FOSS restaurant management system super powered by ERPNext.
- Webshop — Open Source eCommerce Platform
- Ecommerce Integrations — Ecommerce integrations for ERPNext
- Posnext — A modern, high-performance Point of Sale system for ERPNext with offline capabilities, real-time updates, and intuitive UI.
- Woocommerceconnector — Integration App for ERPNext to connect to WooCommerce
- Woocommerce Fusion — WooCommerce connector for ERPNext v15
- Go1 Webshop — Go1 Webshop is an Open Source eCommerce portal built on frappe builder.
- Retail Suite — is a modern POS system built with Tailwind CSS on the frontend and Frappe as the backend. It is designed for small retail businesses