View Full Features and Specs here >>> https://pos.motionmedia.co.ke
DOWNLOAD LINK >>> https://paystack.com/buy/advance-pos-pro-botble-plugin-dgknnm
🚀 Version 1.1.0 - The Enterprise Update - Changelog

1. Core Architecture & Stability
- Single Page Application (SPA): Rebuilt the frontend using Vue.js 3 and Tailwind CSS (via CDN) for zero-latency interactions without page reloads.
- Database Optimization:
- Introduced pos_orders table to store metadata (Transaction Codes, Cashier ID, Change Due) without polluting core Botble tables.
- Introduced pos_registers table for Shift Management.
- Optimized SQL queries to use DB::table for speed and compatibility across different Botble versions (handling missing columns like sku, weight, deleted_at safely).
- Order injection: Fixed logic to correctly populate ec_orders, ec_order_product, and payments tables so POS sales appear in standard Ecommerce Reports and Invoices.
- Address Fix: Implemented dummy address insertion (ec_order_addresses) to ensure POS orders appear in the main Admin Order List.
2. User Interface (UI/UX)
- "Apple-Style" Design: Modernized product grid with rounded corners, soft shadows, and hover effects.
- Multi-Tab Order Management: Added a browser-style tab system allowing cashiers to serve multiple customers simultaneously (Hold Order functionality).
- Dark Mode: Built-in toggle with persistent state for low-light environments.

- Interactive Search: Added "Debounced" text search that filters products instantly as you type.
- Live Clock: Added HH:MM:SS digital clock in the header.
- Built-in Tools: Added a popup Calculator with backspace functionality.
- Responsive Layout: Sidebar cart, fluid grid, and collapsible menus.
3. Product & Inventory Management
• Smart Variations:
- Grid shows Parent products.
- Clicking a parent opens a Variation Modal.
- Variations are displayed as clickable "Chips" showing specific Stock, Price, and Name.
• Stock Logic:
- Visual indicators for "Low Stock" (e.g., "4 Left").
- Automatically disables "Add to Cart" if stock is 0.
- Handles "Unlimited Stock" (if storehouse management is off) correctly.
- Barcode Scanner Mode: Auto-detects if a search result is unique (exact SKU match) and automatically adds it to the cart, clearing the search bar for the next scan.
4. Checkout & Payment System
• Dynamic Payment Methods: Automatically fetches active gateways from Botble (Stripe, PayPal) + POS specific methods (Cash, M-Pesa).
• M-Pesa Integration (Daraja API):
- Native STK Push trigger.
- "Send Prompt" button in checkout.
- Phone number formatting (07XX -> 254XX).
• Smart Cash Modal:
- Auto-calculates Change Due.
- Prevents checkout if Amount Tendered < Total.
- Discounts & Coupons:
- Coupon System: Validates codes against ec_discounts table.
- Manual Discount: Switch between Fixed and Percentage based discounts.
- Shipping: Ability to add custom shipping costs on the fly.
- Tax Engine: Fetches product-specific tax rates from ec_tax_products for accurate VAT calculation (displayed as +16% badges).
5. Multi-Vendor Marketplace Support
- Auto-Detection: Detects if the logged-in user is an Admin or a Vendor.
* Data Isolation:
- Admins see All Products.
- Vendors see Only Their Products (Filtered by store_id).
- Dashboard Injection: Uses a high-priority Hook/Event Listener to inject the "POS Terminal" link into the Vendor Dashboard sidebar automatically.
- Secure Routes: Implemented api/vendor/* routes guarded by customer middleware.
6. Register & Shift Management
- Shift Enforcement: Locks the terminal screen until a register is opened with an Opening Float.
- Reconciliation:
- Tracks Cash Sales vs System Expectations.
- Records Overage/Shortage upon closing.
- Shift Reports: Admin page to view history of all shifts, cashiers, and financial discrepancies.
7. Hardware & Customer Display
- Dual Screen Mode: "Customer Screen" button opens a secondary window that syncs the cart in real-time using BroadcastChannel (No internet required, instant sync).
- Receipt Printing:
- Optimized for 80mm Thermal Printers.
- Dynamic Header (Logo, Address, VAT No. from settings).
- Includes Transaction ID, Cashier Name, and Change Given.
- "Reprint Last Receipt" shortcut button.
8. Admin & Settings
- Top Bar Shortcut: Added a "POS" button to the global Botble Admin Header.
- Order Beautifier: Injected a script to transform raw JSON metadata in the Order Details page into a clean "POS Payment Details" UI card.
- Settings Page:
- Configure Receipt Footer.
- Toggle Sound Effects.
- Set Default "Walk-in" Customer.
- Enable/Disable specific payment methods.
