Skip to content

poparab/bundle_pos

Repository files navigation

Bundle POS

Dynamic Bundle Point of Sale System for ERPNext

A comprehensive POS solution with dynamic bundle management capabilities, designed to integrate seamlessly with ERPNext's accounting and inventory modules.

πŸš€ Features

Core POS Functionality

  • βœ… Customer Search - Search by name, phone, and email
  • βœ… Cart Management - Add/remove items with real-time validation
  • βœ… Customer Validation - Mandatory customer selection before cart operations
  • βœ… POS Sessions - Opening and closing entries with cash reconciliation
  • βœ… Full Integration - Complete accounting and inventory integration

Advanced Features

  • 🎁 Bundle Support - Dynamic bundle items with quantity multipliers
  • πŸ“± Responsive Design - Works on desktop, tablet, and mobile
  • πŸ–₯️ Full-Screen Mode - Optimized for POS hardware
  • πŸ’° Multiple Payments - Support for various payment methods
  • πŸ“Š Real-time Stock - Live inventory validation
  • πŸ”„ Offline Support - Basic offline capability with sync

πŸ“‹ Requirements

  • ERPNext v13+ (recommended v14+)
  • Frappe Framework
  • Python 3.6+

πŸ› οΈ Installation

Method 1: From GitHub (Recommended)

# Get the app
bench get-app https://github.com/poparab/bundle_pos.git

# Install on your site
bench --site [your-site-name] install-app bundle_pos

# Restart and build
bench restart
bench build

Method 2: Local Development

# Clone the repository
git clone https://github.com/poparab/bundle_pos.git
cd bundle_pos

# Install in development mode
bench get-app /path/to/bundle_pos
bench --site [your-site-name] install-app bundle_pos

βš™οΈ Setup

1. Create Bundle POS Profile

  1. Go to Bundle POS > Bundle POS Profile
  2. Create a new profile with:
    • Company and Warehouse
    • Payment Methods
    • Customer Settings
    • Bundle Configurations

2. Configure Items

  • Mark items as bundle items if needed
  • Set up item prices and stock levels
  • Configure item groups and categories

3. Set User Permissions

  • Assign POS User role for cashiers
  • Assign POS Manager role for supervisors
  • Configure profile access for specific users

🎯 Usage

Opening a POS Session

  1. Navigate to /app/bundle-pos
  2. Select your POS Profile
  3. Click Open Session
  4. Enter opening cash balance
  5. Start selling!

Making a Sale

  1. Select Customer - Search by name/phone/email or create new
  2. Add Items - Click items or scan barcodes
  3. Review Cart - Adjust quantities as needed
  4. Checkout - Select payment methods
  5. Complete - Print receipt and finish

Closing Session

  1. Click Close Session
  2. Enter actual cash counts for each payment method
  3. Review differences and reconcile
  4. Submit closing entry

πŸ—οΈ Architecture

bundle_pos/
β”œβ”€β”€ bundle_pos/
β”‚   β”œβ”€β”€ doctype/
β”‚   β”‚   β”œβ”€β”€ bundle_pos_profile/          # Main POS configuration
β”‚   β”‚   └── bundle_pos_payment_method/   # Payment methods
β”‚   β”œβ”€β”€ page/
β”‚   β”‚   └── bundle_pos/                  # Main POS interface
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ customer.py                  # Customer management
β”‚   β”‚   β”œβ”€β”€ cart.py                      # Cart operations
β”‚   β”‚   └── pos_session.py               # Session management
β”‚   └── public/
β”‚       β”œβ”€β”€ css/                         # Styling
β”‚       └── js/                          # JavaScript integration

πŸ”§ Configuration

POS Profile Settings

  • Company Settings - Company, warehouse, currency
  • Customer Settings - Search fields, default customer, groups
  • Payment Methods - Cash, card, digital payments
  • Bundle Settings - Price calculation, discounts
  • Accounting - Income, expense, write-off accounts

Bundle Item Configuration

  • Mark items as bundle items
  • Configure bundle components
  • Set pricing rules and discounts

πŸ“± Keyboard Shortcuts

  • F11 - Toggle fullscreen
  • Ctrl+N - Add new customer
  • Ctrl+P - Open payment modal
  • Ctrl+Shift+P - Open Bundle POS (from anywhere in ERPNext)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

🎯 Roadmap

See FEATURES_ROADMAP.md for detailed development phases and upcoming features.


Made with ❀️ for the ERPNext Community

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors