Jarz Pos
A comprehensive, touch-optimized Point of Sale (POS) system built specifically for Jarz company, featuring advanced bundle management, real-time inventory tracking, intelligent delivery management, enhanced cart functionality, and seamless ERPNext integration.
- Author: poparab
- Repository: https://github.com/poparab/jarz_pos
- GitHub stars: 2
- Forks: 1
- License: MIT
- Category: Retail
- Maintenance: Actively Maintained
Install Jarz Pos
bench get-app https://github.com/poparab/jarz_pos
Add the Frappe Gems badge to your README
Maintain Jarz Pos? Paste this into your README:
[](https://frappegems.com/gems/apps/poparab/jarz_pos)
About Jarz Pos
Jarz POS - Advanced Point of Sale System for ERPNext
A comprehensive, touch-optimized Point of Sale (POS) system built specifically for Jarz company, featuring advanced bundle management, real-time inventory tracking, intelligent delivery management, enhanced cart functionality, and seamless ERPNext integration.
🚀 Latest Features & Enhancements
✨ Enhanced Cart Management
- Remove Items: One-click removal of individual items and bundles from cart
- Edit Bundles: Modify bundle contents after adding to cart with live pricing updates
- Confirmation Dialogs: Prevent accidental deletions with confirmation prompts
- Real-time Updates: Cart automatically updates with new totals after changes
🎯 Smart Customer Search
- Recent Customers: Automatically shows last 5 customers when search field is focused
- Smart Date Display: Shows when customers were added (Today, Yesterday, X days ago)
- No Typing Required: Quick access to recent customers without typing
- Intelligent Search: Enhanced search with contact information display
💰 Advanced Delivery Management
- Expense Editing: Modify delivery expenses during checkout with quick dialog
- Dual Display: Shows both delivery income (customer charge) and expense (our cost)
- Clean Interface: Expense editing doesn't clutter the main POS interface
- Profit Tracking: Clear visibility of delivery profit margins
🏪 Core POS Functionality
Advanced Point of Sale Features
- POS Profile Integration: Automatic warehouse and price list selection based on user permissions
- Real-time Inventory: Live stock levels with color-coded indicators (Green/Yellow/Red)
- Dynamic Pricing: Automatic price fetching from configured price lists
- Item Group Organization: Items organized by categories for easy navigation
- Customer Management: Enhanced search, selection, and creation with delivery address support
- Full-screen Mode: Toggle full-screen experience with ESC key support
Sophisticated Bundle System
- Complex Bundle Configuration: Support for multi-group item bundles with quantity requirements
- Interactive Bundle Selection: Touch-friendly modal with inventory validation and live editing
- Bundle Pricing: Automatic discount calculation showing real savings
- Hierarchical Cart Display: Organized bundle presentation with editing capabilities
- Bundle Editing: Modify bundle contents after adding to cart with validation
- ERPNext Integration: Seamless sales invoice creation with proper item mapping
Intelligent Delivery Management
- City-based Delivery: Configure delivery charges and expenses per city
- Dynamic Delivery Pricing: Real-time delivery charge calculation from customer addresses
- Editable Delivery Expenses: Modify delivery expenses on-the-fly during sales
- Address Integration: Automatic delivery loading from customer address city information
- Dual Accounting: Delivery income as tax charges, expenses as invoice discounts
Touch-Optimized Experience
- Full-screen POS Interface: Clean, sidebar-free interface with toggle support
- Responsive Design: Optimized for tablets, touch screens, and desktop
- Touch-friendly Interactions: Large buttons, intuitive gestures, and quick actions
- Real-time Updates: Live inventory, pricing, delivery costs, and cart updates
- Enhanced Search: Smart pre-filling and recent customer quick access
📦 Installation
Prerequisites
- ERPNext v13/v14/v15
- Frappe Framework
- Access to ERPNext site with administrator privileges
Installation Steps
Clone the app:
cd /path/to/your/frappe-bench bench get-app https://github.com/your-username/jarz_pos.gitInstall the app on your site:
bench --site your-site-name install-app jarz_posMigrate database (for City doctype):
bench --site your-site-name migrateRestart the bench:
bench restart
🚀 Production Deployment
Below is a copy-paste friendly checklist for taking Jarz POS live on a fresh server. It assumes you already have SSH access and basic Linux administration rights.
Prerequisites
• Ubuntu 20.04/22.04 (or Debian 12) with at least 2 vCPU / 4 GB RAM (8 GB recommended)
• bench ≥ 5, Node 18, Yarn, Redis, MariaDB 10.6, wkhtmltopdf 0.12.6
• ERPNext / Frappe Framework v15 codebase (same branch used in development)
1 – Prepare the server (one-time)
# As root or a sudo user
sudo apt update && sudo apt install git python3-pip -y
pip3 install --upgrade frappe-bench
# Create the bench directory and install Frappe
bench init --frappe-branch version-15 ~/frappe-bench
cd ~/frappe-bench
2 – Create site & install ERPNext
bench new-site your-site.com \
--mariadb-root-password \
--admin-password
# (Skip if ERPNext already installed)
bench get-app erpnext --branch version-15
bench --site your-site.com install-app erpnext
3 – Install Jarz POS
# Pull the app source
bench get-app jarz_pos https://github.com/your-username/jarz_pos.git
# Install on your production site
bench --site your-site.com install-app jarz_pos
# Run database migrations & automatic patches (custom fields etc.)
bench --site your-site.com migrate
4 – Build assets & switch to production
# Compile JS/CSS for production (uses Node/Yarn)
bench build --production
# Generate Supervisor + Nginx configs and start services under supervisor
sudo bench setup production frappe
sudo bench restart
5 – Post-install checklist
- POS Profile – Create at
Setup › Point of Sale › POS Profile, set warehouse, price list, and assign users. - Delivery Cities – Add records under
Jarz POS › Citywith income & expense amounts. - Verify Custom Fields –
required_delivery_datetime&sales_invoice_stateshould now appear on Sales Invoice (patch runs automatically). - Test POS – Browse to
https://your-site.com/app/custom-posand complete a test sale. - (Optional) Enable HTTPS with Let’s Encrypt:
sudo bench setup lets-encrypt your-site.com.
6 – Upgrading Jarz POS later
cd ~/frappe-bench/apps/jarz_pos
git pull
bench --site your-site.com migrate
bench build --production && bench restart
That’s it—Jarz POS is now running in production. Happy selling! 🚀
⚙️ Configuration
1. Create POS Profile
Navigate to: Setup > Point of Sale > POS Profile
Create a new POS Profile with: - Name: "Jarz POS Profile" (or your preferred name) - Warehouse: Select your main warehouse for inventory tracking - Selling Price List: Select your selling price list (e.g., "Standard Selling") - Applicable for Users: Add users who should have access to this POS - Item Groups: Select the item groups you want to display in the POS - Payment Methods: Configure at least one payment method (required for POS invoices)
2. Configure Delivery Cities
Navigate to: Jarz POS > City
Create delivery cities with: - City Name: Name of the delivery city - Delivery Income: Amount charged to customer for delivery - Delivery Expense: Actual cost/expense for delivery to this city
Example:
City: Downtown Riyadh
Delivery Income: $10.00
Delivery Expense: $3.00
Net Delivery Profit: $7.00
3. Configure Item Groups
Ensure your items are properly categorized into Item Groups:
- Navigate to: Stock > Setup > Item Group
- Create/organize item groups as needed
- Add these groups to your POS Profile
4. Set Up Item Prices
Ensure all items have prices in your configured price list:
- Navigate to: Stock > Item Price
- Create item prices for your selling price list
- Alternatively, set standard selling rates on items
5. Configure Bundles (Optional)
To use the advanced bundle feature:
- Navigate to: Jarz POS > Jarz Bundle
- Create bundle configurations with:
- Bundle name and price
- Item groups with required quantities
- ERPNext Item: Link to an ERPNext item that represents this bundle in sales invoices
- Bundle items and pricing
Important: Each bundle must have an erpnext_item field linking to a valid ERPNext Item. This item will be used when creating sales invoices for bundle purchases.
6. Configure Accounts for Delivery (Important)
Ensure your Chart of Accounts has appropriate accounts for delivery: - Freight and Forwarding Charges: For delivery income/expense tracking - Miscellaneous Expenses: Fallback account for delivery expenses - The system will automatically find and use appropriate accounts
🖥️ Usage
Accessing the POS
- Navigate to:
/app/custom-posin your ERPNext site - Select POS Profile (if multiple profiles are available)
- The POS interface will load with your configured items and settings
POS Interface Overview
- Top Bar:
- Current POS Profile info (name, warehouse, price list)
- Full-screen toggle button
- Left Panel (75%):
- Bundles section (if configured)
- Items organized by item groups with inventory indicators
- Right Panel (25%):
- Smart customer search with recent customers display
- Shopping cart with enhanced management features
- Delivery information with expense editing
- Checkout button
Enhanced Customer Management
- Recent Customer Display: Last 5 customers shown when field is focused
- Smart Search: Type customer name, mobile, or email to search
- Quick Access: Select recent customers without typing
- Smart Pre-filling:
- Numbers only → Pre-fills Mobile Number field
- Letters (Arabic/English) → Pre-fills Customer Name field
- Address Integration: Automatic delivery charge loading from customer addresses
- Create New: Use "+ New" button to create customers with delivery address
Advanced Cart Features
- Remove Items: Click "Remove" button on any cart item with confirmation
- Edit Bundles: Click "Edit" button on bundles to modify contents after adding
- Live Updates: Cart totals update automatically after changes
- Bundle Editing: Full bundle reconfiguration with validation and pricing updates
- Delivery Management: View and edit delivery expenses directly in cart
Delivery Management
- Address-based Delivery: Delivery charges determined from customer's address city
- Automatic Calculation: Delivery costs automatically added when customer selected
- Expense Editing: Click "Edit Expense" to modify delivery costs during checkout
- Dual Display: Shows both customer charge and our expense
- Dynamic Loading: Delivery charges loaded when customer is selected
Adding Items to Cart
- Individual Items: Click on any item card to add to cart
- Bundles: Click on bundle card, select required items, then add to cart
- Inventory Validation: Out-of-stock items cannot be added (red indicators)
- Price Display: Shows prices from configured price list
- Bundle Inventory: Real-time inventory checking for bundle items
Bundle Selection & Editing Process
- Initial Selection: Click on any bundle card
- Modal Interface: Interactive modal with item groups and requirements
- Item Selection: Select required quantity from each group with inventory validation
- Visual Feedback: Blue highlighting, quantity badges, remove buttons
- Add to Cart: Complete selection and add bundle to cart
- Edit in Cart: Click "Edit" button to modify bundle contents
- Live Updates: Bundle pricing and savings update automatically
Enhanced Checkout Process
- Add Items: Add individual items and/or bundles to cart
- Select Customer: Choose from recent customers or search/create new
- Automatic Delivery: Delivery charges loaded from customer's address city
- Edit Delivery: Modify deliv
Related 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