B-Plus POS — User Manual
Complete A–Z guide for all features and workflows. Use the search bar or sidebar to navigate.
Overview
B-Plus POS is a web-based Point-of-Sale system built for WooCommerce retailers. It bridges your physical retail counter with your online WooCommerce store — syncing inventory, orders, customers, and payments in real time.
Key Concepts
- WooCommerce Hybrid: Products and customers are read directly from the WordPress database. Orders and stock updates are written back via the WooCommerce REST API.
- POS Tables: Custom
pos_*tables store POS-specific data like sessions, held orders, store credit, and tax rules. - Zero Page Reloads: The POS interface operates entirely via AJAX for a fast cashier experience.
- Role-Based Access: Admin, Stock Manager, and Cashier roles limit what each user can see and do.
Login & User Roles
Logging In
- 1Open the Login pageNavigate to the POS URL. You'll be redirected to the login screen automatically if not signed in.
- 2Enter credentialsUse your Username and Password. Credentials are managed by Admin users under Admin → Users.
- 3You're inAdmins land on the Dashboard. Cashiers land directly on the POS screen.
User Roles
- Admin: Full access to all features — settings, reports, users, tax, GST, WhatsApp, and all POS functions.
- Stock Manager: Access to inventory management, barcodes, product management, and DB sync.
- Cashier: Access to the POS screen, customer search/creation, returns, and receipts only.
Point of Sale
The POS screen is the heart of the system. It handles product search, cart management, customer selection, discounts, payment, and checkout — all without a page reload.
Product Search
- Barcode / SKU scan: Type or scan a product barcode/SKU in the search bar. The product is added to cart instantly.
- Name search: Type any part of the product name. Results appear in real time.
- Product grid: Scroll through all products; use category filters to narrow down.
- Stock indicator: Green = in stock, Red = out of stock. Out-of-stock items can still be sold if "Allow negative stock billing" is enabled in settings.
Cart Management
- Click a product card or scan a barcode to add it to the cart.
- Adjust quantity with + / − buttons or type a value.
- Apply a per-item discount — either a fixed rupee amount or a percentage.
- Apply a cart-level discount — flat % off the entire order.
- Remove individual items with the ✕ button.
Customer Selection
- Search by name, phone, or email in the Customer box.
- Select an existing customer or create a new one on the fly.
- Once selected, available loyalty points and store credit balance are shown.
Hold Order
If a customer needs to step away, click Hold to save the cart. Held orders appear under Held Orders and can be resumed any time.
Checkout
- 1Review totalsSubtotal, discounts, GST, and final total are shown in the cart panel.
- 2Choose payment method(s)Select Cash, Card, UPI, or any combination. For UPI a transaction ID is required.
- 3Apply coupon (optional)Enter a WooCommerce coupon code; it validates and deducts from the total.
- 4Redeem loyalty points or store credit (optional)Toggle on and enter the amount to apply.
- 5Complete SaleClick Checkout. Order is created in WooCommerce, stock is decremented, and a receipt is shown.
Orders
The Orders page (Admin → Orders) shows all historical orders from WooCommerce and local POS sales.
Finding Orders
- Search by order ID, customer name, phone, or email.
- Filter by date range or order status.
- Click any row to expand order details, items, payment breakdown, and tax.
Order Actions
- View Receipt: Opens a print-ready receipt for the order.
- Print Receipt: Sends receipt directly to the browser print dialog.
- Process Return: Initiates a return/exchange workflow from the order.
- Update Status: Change order status (e.g., Processing → Completed).
Receipt Contents
Receipts show: store name, date/time, cashier, order ID, itemised list (with MRP, discount, tax per item), subtotal, total discount, total tax, grand total, payment method breakdown, and customer name/phone.
Returns & Exchanges
B-Plus POS supports multi-item partial returns and full exchanges. Navigate to Admin → Returns.
Processing a Return
- 1Search the original orderEnter the order ID, customer phone, or name.
- 2Select items to returnTick the items and enter the return quantity. Refund amount auto-calculates.
- 3Choose return typeRefund: money back to customer. Store Credit: credit added to customer account. Exchange: swap for other items.
- 4Submit returnStock of returned items is increased. If store credit — it's immediately available for the customer's next purchase.
Exchange Flow
After selecting return items, choose Exchange. The exchange credit appears as a balance. The cashier then adds new items to the exchange cart; if the new items cost more the customer pays the difference, if less the balance is issued as store credit.
Return Receipt
After approval, use View Return Receipt or Print Return Receipt from the returns list to get a full return document.
Sessions
Sessions track a cashier's shift — opening float, sales total, and closing balance. Go to Admin → Sessions.
- Open Session: Cashier enters the opening cash float.
- During Session: All sales are linked to the active session.
- Close Session: Enter closing cash count. System shows expected vs. actual and any discrepancy.
- Session Report: Full breakdown of sales, payment methods, and cash movements per session.
Customers
Customer data is stored in the WordPress wp_users and wp_usermeta tables, keeping it in sync with WooCommerce.
Searching Customers
- Search by name, phone number, or email address from the POS screen or Admin → Customers.
- Results are deduplicated — the system merges records that share a phone or email.
Creating a Customer
- Click New Customer in the POS or on the Customers page.
- Enter name, phone, and/or email. Phone is the primary unique identifier.
- The customer is created in WordPress/WooCommerce immediately.
Customer Profile
- Full order history with dates and totals.
- Current loyalty points balance.
- Available store credit balance.
- Address and contact details editable in-place.
Smart Deduplication
When a return or new order is processed, the system checks:
- Does the phone number match an existing customer? → Use that record.
- Does the email match? → Use that record and add the phone.
- No match → Create a new customer.
Store Credit
Store credit is a digital balance assigned to a customer, typically issued as a return refund or a manual top-up. Managed via Admin → Store Credits.
How Store Credit Works
- Stored in
pos_store_creditandpos_store_credit_transactionstables. - Deduction uses atomic transactions with FOR UPDATE row locking — prevents double-spend even under simultaneous checkouts.
- FIFO deduction — oldest credit is consumed first.
- Cannot go below zero — system prevents negative balances.
- Every deduction and issue is logged with timestamp and order reference for a full audit trail.
Issuing Store Credit
- Via Return: When a return is processed with "Store Credit" as the refund method, credit is automatically issued.
- Manual: Admin can add credit to any customer from Admin → Store Credits → Add Credit.
Using Store Credit at Checkout
- Select the customer in the POS. Available credit balance is shown.
- Toggle Use Store Credit and enter the amount to apply (up to the order total).
- Remaining order total must be paid by another method.
Loyalty Points
Loyalty rules automatically award points to customers based on purchases. Configure rules under Admin → Loyalty.
Setting Up Rules
- Spend-based rule: Award X points for every ₹Y spent. E.g., 1 point per ₹100.
- Product-specific rule: Award extra points when a specific product is purchased.
- Rules can have validity dates — seasonal promotions are easy to set up.
Redeeming Points
- At checkout, if the selected customer has points, a Redeem Points toggle appears.
- Enter the number of points to redeem. The system converts them to a rupee discount.
- The redemption is deducted from the customer's points balance immediately.
Viewing a Customer's Points
Open any customer's profile from Admin → Customers to see the current points balance and full points history.
Inventory Management
Inventory is read directly from the WooCommerce database and written back via the REST API. Go to Admin → Inventory.
Stock Levels
- Current stock for every product is shown in real time.
- Use inline edits to adjust stock quantities (triggers a WooCommerce stock update).
- Negative stock values are corrected to 0 in display.
Stock Movements
- Sale: Stock decreases automatically on checkout.
- Return: Stock increases automatically when items are returned.
- Exchange: Returned item stock increases; exchanged item stock decreases.
Inventory Alerts
Go to Admin → Inventory Alerts to see products below a threshold. Configure the low-stock threshold in Settings.
Negative Stock Billing
Enable Allow negative stock billing in Settings to let cashiers sell products even when stock shows zero. Useful for pre-orders or stocktaking gaps.
Barcode Management
Generate and print product barcodes directly from Admin → Barcodes.
- Select products and generate barcodes based on their SKU.
- Choose label size and format (Code 128, EAN-13, etc.).
- Print a sheet of labels for shelf labelling.
- Barcodes are immediately scannable in the POS search bar after printing.
Discounts & Coupons
B-Plus POS supports three levels of discounts that can be combined.
Types of Discounts
- Per-Item Discount: Applied by the cashier to individual cart items. Enter as a fixed ₹ amount or a % off the item's price.
- Cart Discount: A percentage off the entire order, applied before tax calculation.
- Coupon Code: WooCommerce coupons validated in real time. Fixed amount or percentage. Respects usage limits and expiry dates set in WooCommerce.
Tax on Discounts
Tax is always calculated after all discounts have been applied — ensuring customers and you are billed correctly under GST rules.
Managing Coupons
Create and manage coupons in Admin → Discounts. Set discount type, amount, minimum order value, usage limit, and expiry date.
Custom Tax Rules
Tax in B-Plus POS is entirely controlled by the admin — WooCommerce tax settings are never used. Go to Admin → Tax Rules.
Default Tax Rate
- Set a global fallback rate (default 18%) that applies to all products with no matching custom rule.
- Toggle Enable Default Tax off to make unmatched products tax-free (0%).
- The rate is saved instantly; all new sales use it immediately.
Custom Tax Rules Engine
- Enable the rules engine to define category-specific or price-range-specific rates.
- Each rule has a name, tax rate %, and one or more product categories (multi-select checkboxes).
- Rules support price range conditions — e.g., only apply this rate for items priced ₹1000–₹5000.
Category Hierarchy
Tax rules automatically inherit down the category tree. If you assign a rule to "Clothing", it also applies to "Shirts", "Pants", and any other child categories — no need to assign each child separately.
Rule Priority
- Matched custom rule → rate is strictly applied, cannot be overridden.
- No match → Default Tax Rate applies.
- Default Tax disabled → 0% tax.
GST Reports & E-Invoice
GST Reports
Navigate to Admin → GST Reports to generate tax reports for filing.
- Filter by date range to generate GSTR-1 style reports.
- Breakdown by HSN/SAC code, tax rate slab, and total taxable value.
- Export as CSV for filing with your CA or GST portal.
- HSN/SAC code lookup tool — search by product category or description.
E-Invoice
Navigate to Admin → E-Invoice for IRP (Invoice Registration Portal) compatible invoice generation.
- Generate IRN (Invoice Reference Number) for B2B transactions.
- QR code embedded in e-invoice for verification.
- Download invoice as PDF for dispatch with goods.
Payment Methods
Configure which payment methods are available at checkout. Go to Admin → Payments.
Supported Methods
UPI / QR Code Payments
- Configure your UPI ID in Admin → Payments → UPI Settings.
- At checkout, a QR code is shown to the customer for scanning.
- Cashier must enter the Transaction ID after customer pays — this is mandatory and validated.
Split Payments
Multiple payment methods can be combined in a single transaction. E.g., ₹500 cash + ₹700 UPI + ₹300 store credit = ₹1500 total. The system validates that all amounts sum to the order total before completing checkout.
Receipt Settings
Customise what appears on printed and digital receipts. Go to Admin → Receipt Settings.
- Show MRP: Toggle display of the Maximum Retail Price per item.
- Show Sale Price: Show discounted/sale price separately.
- Show Item Discount: Display the per-item discount amount.
- Show Tax per Product: Show individual GST amounts per line item.
- Store Header: Business name, address, GSTIN, and phone for the receipt header.
- Footer Message: Custom thank-you or return policy text at the bottom of receipts.
Sales Analytics
Deep-dive into your sales data at Admin → Sales Analytics.
Available Reports
- Sales Trend: Daily, weekly, or monthly revenue chart with order count overlay.
- Hourly Heatmap: Identify peak trading hours across the week.
- Top Products: Best-selling products by revenue and quantity.
- Category Sales: Revenue breakdown by product category.
- Payment Methods: Pie chart of cash vs. card vs. UPI vs. other.
- Customer Stats: New vs. returning customers over time.
Date Filtering
All charts respond to the date range picker at the top of the page. Pre-sets: Today, Yesterday, Last 7 days, Last 30 days, This Month, Custom range.
BI Dashboard
The Business Intelligence dashboard (Admin → BI Dashboard) gives a high-level executive view of the business.
- Revenue KPIs with comparison to previous period.
- Customer acquisition and retention metrics.
- Inventory value and turnover rate.
- Top-performing categories and cashiers.
- Refund and return rate trends.
Store Performance
Real-time store metrics at Admin → Store Performance.
- Live sales total for today with auto-refresh.
- Orders placed this hour / today / this week.
- Average order value and basket size.
- Current open sessions and cashier activity.
User Management
Manage POS staff accounts at Admin → Users. Only Admins have access.
- Add User: Name, username, password, role (Admin / Stock Manager / Cashier), and assigned store.
- Edit User: Change any detail including password and role.
- Delete User: Removes POS access. Does not affect WordPress user account.
- Role Assignment: Each user is assigned exactly one role which controls their menu access.
Multi-Store Management
Run multiple physical locations from one B-Plus POS installation. Configure at Admin → Stores.
- Add stores with name, address, GSTIN, and contact details.
- Assign cashiers and stock managers to specific stores.
- Each store maintains its own session history and receipt header.
- Consolidated reports show data across all stores with per-store filters.
- Stock levels are per-store when WooCommerce multi-location inventory is enabled.
WhatsApp Integration
Send automated messages to customers via WhatsApp. Configure at Admin → WhatsApp.
Supported Providers
Automated Messages
- Order Confirmation: Sent after successful checkout with order ID and receipt link.
- Return Confirmation: Sent when a return is approved.
- Store Credit Notification: Sent when credit is added to a customer's account.
Bulk Messaging
Use the Broadcast feature to send promotional messages to all customers or a filtered segment (e.g., customers who purchased in the last 30 days).
Setup
- Choose your provider from the dropdown.
- Enter the API key / access token from your provider dashboard.
- Configure message templates (supports order placeholders like {{order_id}}, {{customer_name}}).
- Toggle individual notification types on or off.
Automation
Create automated workflows triggered by sales events at Admin → Automation.
- Low Stock Alert: Trigger a WhatsApp or email notification when stock drops below threshold.
- Birthday Reward: Automatically award store credit or loyalty points on customer birthdays.
- Inactive Customer: Send a re-engagement message to customers with no purchase in X days.
- Large Order Bonus: Award bonus loyalty points for orders above a defined amount.
Each automation rule has: Trigger → Condition → Action logic.
System Settings
Global configuration at Admin → Settings.
General
- Store name, address, phone, email, GSTIN.
- Currency symbol and format.
- Timezone.
POS Options
- Allow Negative Stock Billing: Let cashiers sell when stock = 0.
- Default Tax Rate: Also configurable here; synced with Tax Rules page.
- Low Stock Threshold: Number below which an item triggers inventory alerts.
- Points Conversion Rate: How many rupees each loyalty point is worth at redemption.
WooCommerce API
- WooCommerce store URL.
- Consumer Key and Consumer Secret (from WooCommerce → Settings → Advanced → REST API).
Database
- Remote MySQL host, database name, username, and password.
- Connection is tested before saving.
DB Sync
The DB Sync module (Admin → DB Sync) incrementally syncs product and customer data from your remote WooCommerce database to a local standalone POS database.
Why Use DB Sync?
- Faster product loading when the remote server is slow or intermittently available.
- Allows offline-capable POS operation using local data.
How It Works
- Uses a watermark strategy — only records modified since the last sync are transferred.
- Sync can be triggered manually from the page or scheduled via a cron job.
- Progress is shown in real time during sync.
Switching Database
Use DB Switch to point the POS at either the remote WooCommerce database or the local synced copy. Test connection before switching.