Changelog

What's new in ePOS4Mobiles

Every release, in plain English. Browse by date or jump straight to the feature you care about.

v3.3.0
Sales

Save a sale as a draft (quote) and print it

  • Every sale form (Touch Screen, Create Sale, Create Bulk Sale) now keeps a draft of what's on screen as you add items, per customer account — nothing is sold, no stock is reserved, no ledger entry and no invoice number
  • Draft Print (on the Confirm Amount screen) first checks the saved draft against the lines on the form and corrects it if they differ, then offers a DRAFT PDF — and a draft receipt when a receipt printer is enabled. Prints are clearly marked DRAFT — NOT AN INVOICE
  • Pick an account that has a saved draft and a small draft link appears next to the Account box — click it to Resume the draft into the form. Every IMEI is re-checked on resume: anything sold in the meantime is dropped and listed, so a stale draft can never sell the same phone twice
  • Drafts are yours per account: two users quoting the same customer each keep their own. Changing the account, currency, type or note on the form updates the draft straight away. Completing the sale clears its draft
  • Admins get an All Drafts page (drafts link next to the Account box) listing every user's drafts with PDF / receipt / Discard; Resume opens the shop's default sale form. Discarding drafts is admin-only for now
Stock & Items

A confirmation that says what you added

  • After adding an item the message no longer just says "Item created." — it now reads e.g. "Item created: Apple iPhone 13 Black — qty 3 @ £10.00" or "2 items created: Samsung S22 Blue 128GB — qty 2 @ £5.00", so a mis-keyed quantity or price is spotted straight away
v3.2.1
Reports

Most Profitable Customers

  • New Most Profitable Customers report under Accounts → Financial reporting for super admins, ranking customers by profit margin over a custom period or the last 3 / 6 / 12 months
  • Profit combines IMEI and non-IMEI sales, includes IMEI purchase and repair costs, and nets off returns and sale discounts so the ranking reflects the selected period more accurately
  • A Minimum Revenue filter prevents small high-margin sales from dominating the list — choose no minimum, £1,000 (default), £2,500, £5,000 or £10,000 in net revenue after returns and discounts
  • Show the top 20 / 50 / 100 customers and click Customer, Revenue, Cost, Profit or Margin to sort the online results in either direction
  • Includes revenue, cost and profit totals for the displayed customers, plus a matching PDF export
v3.2.0
WhatsApp

Start Over when stuck connecting

  • If the WhatsApp connection sits on Connecting… or an old QR code, a new Start Over button on Settings → WhatsApp deletes the saved session data and immediately starts a fresh connection with a new QR code to scan
Shop Repairs

Repairer no longer overwritten at handover

  • Fixed: handing items over from the Scan to Hand Over screen stamped the handover user as the item's repairer, overwriting the technician who actually recorded the repair. The repairer is now kept; the handover user is only recorded as the repairer when no repair had been recorded before handover
Stock & Items

Enable / Disable

  • Individual IMEI items and non-IMEI products can now be disabled (and re-enabled) with a button on the All IMEI Items and All Non IMEI Items lists — until now only whole models could be toggled
  • A disabled product can't be sold: it disappears from the touch-sale grid and the product search, and scanning its barcode or IMEI on a sale shows "disabled, cannot be sold" instead of adding it
  • Returns and repairs still accept them — anything you sold can always be taken back (return grid, scans and search all keep working), and disabled parts can still be recorded on repairs
  • Disabled items and products are highlighted red on the item lists and every stock list, with an Active Yes/No filter on the item lists
  • Disabling a model now really blocks its stock: items and products of a disabled model can't be scanned onto a sale, disappear from the sale grid and product search, and show as "No (model)" in red on the item lists
  • The stock summary views (IMEI and non-IMEI) count sellable stock only — disabled items, products and models are excluded
Stock & Items

Disabled stock doesn't count

  • Rate lists (incl. B2B) no longer count disabled units as stock — a model+grade whose stock is all disabled drops off the list
  • The min-qty stock alert treats disabled units as unavailable, so it warns you when sellable stock runs low — a combo whose stock is entirely disabled stays on the list at zero rather than vanishing
  • Sold vs Stock counts only sellable stock; disabled products are excluded from the report
Accounts & Finance

Configurable default country

  • New accounts used to always default to United Kingdom. You can now set your own default on Settings → About (Default Country For New Accounts) — it's used to pre-fill the country on every new account you create
v3.1.0
Navigation & Usability

What's New popup

  • You're looking at it: when a release ships, a one-time popup now shows what's new since your last visit, with a Show full changelog button for the whole history. Close it and it stays away until the next update
Accounts & Finance

Much faster

  • The ledger's running Balance column no longer re-sums the account's whole history for every row — on large accounts the page loads ~10× faster (a 36k-entry ledger dropped from unusable to ~¼ second). Balances are unchanged: same figures, same Dr/Cr, same behaviour with date ranges and column filters
Navigation & Usability

Safer page sizes

  • The "All" page-size option could crash on big lists (it tried to load every row into memory at once — large ledgers and item lists hit the server's memory limit). Every list now offers 10 / 25 / 50 / 100 / 1000 rows per page instead; paging still reaches every row, and Excel/print exports are unaffected (they always cover the full filtered list)
Sales

Double-sell protection

  • Two sale forms open in separate tabs could both sell the same physical item — the second submit silently attached it to a second sale. Sales, sale returns and purchase returns now re-check each item at save time (with a row lock) and fail loudly instead of double-selling or double-returning
Shop Repairs

Summary Report

  • New Summary Report (screen + PDF, in the repairs menu): for a date range, items Booked In and Handed Over with item counts and cost totals
Shop Repairs

Handover Report

  • The handover report can now be narrowed to one customer with a per-client PDF button
  • New Send via WhatsApp — sends the customer their handover report PDF directly, with a personalised message
v3.0.0
Purchasing

Duplicate parcel charge fixed

  • Fixed: parcels created from a Purchase Order could charge the supplier twice — once on the PO and again as a Purchase Parcel entry whenever items were added or edited outside the PO screen. The duplicate posting can no longer happen
  • New Settings → Fix Data Discrepancies → PO Parcel Duplicate Ledger Entries check: lists every affected parcel with links to the parcel, the PO and the supplier's ledger, and a Fix All that removes the historical duplicates (take a database backup first — supplier balances will drop to their true values)
Purchasing

Extra Costs & Average Cost in the Items Summary

  • The parcel details page and PDF now show Extra Costs and an Avg Cost per line (after Amount), plus Total Extra Costs and Avg Cost / Device footer rows — per-device extra costs spread across all IMEI devices in the parcel. Accessories are excluded from the average
Receipts & Printing

Customer name & account balance

  • New settings Settings → Receipt Printer: Customer name on repair receipt and Customer name on sale receipt (both default off) print Customer: <name> under the receipt ID
  • The existing "show account balance on invoice" setting now also prints an Account Balance line on the sale receipt, the repair receipt and the repair PDF / view (repairs: accounts mode only, never on cash repairs)
  • Requires print service v2.3.0 — update the receipt printer app before enabling
Shop Repairs

Booking & editing

  • New per-item Item Note on the booking form; it shows under the item on the repair view and update-details tables
  • Edit an item in place: a pencil button on the Items to Repairs list loads the item into the booking form (item, serial, fault, PIN, note, cost, collection date) with Update Item / Cancel — no page hopping. Handed-over items stay locked
  • New Completed repair status — a terminal state like Repaired: the order rolls up to Ready to Collect, the item leaves the Pending list and can be handed over
  • ETA column on the Pending repairs list showing the promised collection date
  • Fixed: the repairs list Edit Repair action opened the repair page instead of the item's repair form; blocked actions (handed-over items) now show their explanation message instead of silently redirecting
  • The Label print choice now sits next to the Collection Date on the booking form
Reports

Account repairs on the Daily Activity report

  • Repair amounts are now counted on the day the cost was recorded, not the booking day — so an account repair booked earlier and priced on completion appears on the completion day's report, matching its charge and payments
Stock & Items

Stock & items

  • Disabled models no longer appear on the rate lists (incl. B2B) or the min-qty stock alert
  • Grade is optional when adding items (item add, quick add, parcel import) — QC, repairs and rate screens still require one
  • New "Existing models only" checkbox on the Add Item form (next to the IMEI field, remembered between items): picking a model no longer auto-fills NEW/-/- into grade/capacity/colour, and saving an unknown model is rejected instead of silently creating it
  • Label printing on the Non-IMEI items list — print labels for accessories straight from the list, including in bulk
  • Fixed: the supplier column on the items list only appeared when a location was selected — it now always shows
Sales

Percentage discount

  • The Confirm Entry dialog's discount has a £ / % selector — enter a percentage and the amount due updates from the total; the resolved amount is what's saved
v2.9.9
Purchasing

Import items from Excel

  • New Import Items from Excel button on the Create Purchase Order and Create Sale Order screens. Upload a spreadsheet to add all line items at once instead of entering them one by one — the rows drop straight into the order table for you to review and submit
  • Download template link provides the exact columns: IMEI (Yes/No), Type, Make, Model, Grade, Capacity, Colour, Qty, Rate, Tax Category (plus Vat Rate when VAT fields are enabled)
  • Supports IMEI items (Phone / Tablet) and non-IMEI items (free-text type). Item attributes (make, model, grade, capacity, colour) are capitalised on import for consistent grouping
  • Each row is validated (type, required fields, quantity, rate, tax category) with clear row-numbered errors, and the sub-total / VAT / total are calculated automatically
v2.9.8
Shop Repairs

Per-item handover

  • You can now hand over one item at a time. Marking a repair as handed over only affects items that are actually ready — devices still Pending / In Progress / Awaiting Parts / Parts In Stock are left in the queue instead of being collected by mistake. A repair with some items still in progress now correctly shows as Partially Ready rather than fully handed over
  • New Hand Over button on each ready item in All Shop Repairs — it opens the Scan to Hand Over screen pre-loaded with just that item, so a single device can be collected (with its own cost/postage/payment) without touching the customer's other repairs
  • On cash-basis repairs there's also a Hand Over link on the Pending list — collect an item straight from there (set its status and cost on the handover screen before confirming)
  • Fixed: when collecting one item of a multi-item repair, the amount taken is now only for the item(s) being handed over, not the whole repair's combined total
  • The handover popup now lists the items being collected and, when some aren't ready, shows a Partial handover warning naming the devices that will stay in the shop
Shop Repairs

Receipt printing at handover

  • The Scan to Hand Over screen now offers a receipt print after handing over — a PDF for each customer's repair, plus a receipt-printer button when one is set up
Reports

Print activity summary on the receipt printer

  • The Simple Activity Report now has a Print Receipt button (next to Download PDF and Send via WhatsApp) that prints the day's sales, shop-repair and expense summary plus the cash balance on the thermal receipt printer. Shown only when a receipt printer is set up. Requires the receipt printer app to be updated to support the new activity receipt
Shop Repairs

Tidier repair list

  • In All Shop Repairs, the item serial now sits under the item detail and the repairer's note under the repairer name, so the table is narrower and easier to scan (search still works on the item and the repairer)
  • Row actions are collapsed into a single dropdown (View / Edit / Print / Delete), with the Hand Over button kept outside for one-click access. Action buttons are right-aligned
Shop Repairs

Receipt fixes

  • The retired Deposit line no longer appears on the repair receipt (what was actually paid still shows under Paid and in the payment list)
  • Once an item is collected, the receipt shows the actual date and time it was handed over instead of the booked "will collect" date
  • New setting "Show 'TBC' for unpriced repairs" (Settings → Shop Repair, default off). When on, an item with no price set yet shows TBC instead of £0.00 on the receipt and PDF; if every item is still unpriced, the totals also show TBC. Only turn it on once your receipt printer app has been updated to support it — otherwise leave it off and unpriced items keep printing as £0.00
v2.9.7
Shop Repairs

Take payment at handover (accounts mode)

  • Each customer group on the Scan to Hand Over page now shows the Total due (repairs + postage) and a Payment received box with a Cash/Card selector. The full amount is still credited to the customer's account as before; any payment entered is taken (Cash or Card) and only the remaining balance stays on the account
  • Overpayment is allowed — paying more than is due simply leaves the account in credit
  • Leaving the payment blank works exactly as before: the whole amount goes on credit
Shop Repairs

Receipts & ledger

  • Postage now appears on the repair receipt/PDF and is included in Total Due / Balance, so the receipt matches the customer's account
  • Handover payments record the payment method (Cash/Card) in the description, which now shows on both the receipt/PDF and the account ledger
Shop Repairs

Statuses & handover screen

  • Two new repair statuses: Repeat repair and No fault. Both can be handed over with a £0 or blank cost (like Not repaired / Cancelled)
  • The Scan to Hand Over screen now shows each customer's current account balance per group, and the customer name links to their account ledger (opens in a new tab)
  • Warning at handover if you clear an item's cost under a zero-allowed status — it tells you the repair charge will be removed from the customer's account before you confirm
v2.9.6
Sales

Non-IMEI items

  • The item/folder tiles now line up in an even grid with a uniform size, and long names shrink to fit the tile (and wrap at whole words) instead of being cut off
  • New filter box above the grid — type to instantly search non-IMEI items without drilling. It searches the current folder (and its sub-folders); at the top level it searches everything. Multi-word smart match: type any words in any order (e.g. "17 book") and it finds items containing all of them; an × clears the search
  • Negative-stock setting now honoured on the touch screen — if Allow negative stock during sales is off, the touch screen blocks selling a non-IMEI item below its available quantity, same as the standard sale screens
Shop Repairs

Customer accounts & credit

  • New setting "Charge shop repairs to customer accounts". When it's on, a repair is booked against a customer account: the cost is added to what the customer owes, and you can hand items over on credit and settle later instead of taking payment at collection. When it's off, repairs work on a cash basis and collect Cash/Card at handover as before
  • With the setting on, the customer details on the booking screen are read-only — they come straight from the account, so there's nothing to retype. Editing the account (name, mobile, email, address) now updates the repair customer everywhere automatically
  • Each customer account now maps to one repair customer record — repeat bookings no longer create duplicates, and contacts saved against an account stay put
Shop Repairs

Label printing

  • Print a barcode label for each item when you book a repair. Choose Print with Price, Print without Price, or No Print. The label shows the device & fault, the barcode, customer, PIN and (optionally) the price
  • Reprint any item's label later from the repair view
  • The app remembers your last print choice and defaults the next item to it
  • New Default repair label print setting (under Settings → Shop Repair) — set what the Label dropdown starts on. Defaults to No Print
Shop Repairs

Scanning

  • New Scan to Add Repair page — scan an item and go straight to its add-repair form, then back to scanning for the next one
  • New Scan to Hand Over page — scan items into a list grouped by customer, set each item's status and cost inline, add postage per customer (accounts mode only), then hand over in one go (collects Cash/Card, or books to the account on credit). Handover now confirms the postage charged on screen
Shop Repairs

Handover & reports

  • Handover won't accept items still marked Pending — they default to Repaired so nothing is handed out unpriced by mistake
  • Reverse-charge option for an item handed back not repaired, so the customer isn't billed
  • New Handover Report grouped by customer, with a date-range picker, the repair cost, links through to each repair, and a PDF export
  • Items handed over from the repair screen's Hand Over button now appear in the report too
Shop Repairs

WhatsApp updates

  • Send a repair-status WhatsApp update for a specific item. If there's no number on file, you're prompted to enter one and it's saved for next time
Shop Repairs

Help

  • New How-To Guide page walking through the repair credit, label and scan features — now including setting customer/supplier opening balances and charging postage via a Journal Voucher (used for cash-basis repairs, which have no postage box)
v2.9.5
Reports

Activity Report

  • All activity reports now live in one place under Activity → Activity Report. Pick a Report Type — Simple, Detailed, Sale, Sale & Purchase, Purchase, or IMEIs Sold — each with a short description of what it shows
  • Reports now open in an online view first, with an Export to PDF button on the report itself (no need to choose PDF up front)
  • The separate Simple Report and IMEIs Sold Report menu links have been removed — both are now options inside Activity Report
Navigation & Usability

Navigation

  • Back button added to the Debtors, Creditors and Trial Balance results pages — return to the filter form in one click
  • Edit and View existing links added on the Journal Voucher view page
  • Account switcher added to the Account Ledger view — jump straight to another account's ledger without going back to the form
Sales

Favourites

  • Star your most-used items and folders on the touch sale screen — tap the ☠on any card to favourite it; tap the rest of the card to use it as before
  • Starred items and folders show in a Favourites row at the top of the screen, so popular lines are one tap away (favourites are shared across all terminals)
  • Each starred item shows the folder it came from in small text, so you always know which group it belongs to
  • More compact cards fit more items per row, and the item grid scrolls on its own within the screen
  • Long item names with trailing dashes are tidied and shortened (full name on hover)
Shop Repairs

Searchable parts

  • The Add Parts Used box now supports search — type ; followed by text to open a list of matching non-IMEI items, the same way the sale screen works (or scan/enter a barcode as before)
Navigation & Usability

Footer

  • The app version (and build) now shows next to the copyright, so you can confirm exactly which version you're on
v2.9.4
Navigation & Usability

Navigation

  • View existing button added next to the page title on the Receive Payment, Make Payment, Create JV, and Create/Edit Account forms — jump to the list without going back to the menu
  • New Payment / New JV / New Account button added next to the page title on each corresponding list page
  • Payments and Journal Voucher menu items simplified — the separate "Show Received Payments", "Show Paid Payments", and "View JVs" menu links have been removed; access is now via the button on the form
Bug Fixes
  • Ledger — payment links — Clicking a payment entry in the account ledger was opening the wrong form (received opened Make Payment and vice versa). Now correctly routes to the right form every time.
v2.9.3
Reports

Sold vs Stock

  • New Sold vs Stock report under Stock Alert — side-by-side view of net sold (sales − returns) and current stock for any date range
  • Supports both IMEI items and Non-IMEI products via a Type dropdown
  • Filters: date range with quick presets (Last 7 days / 2 weeks / 1 month), location (IMEI only), and toggles for Net sold > 0 and Stock < net sold (instant reorder shortlist)
  • Rows where current stock is zero or negative are highlighted in red so gaps stand out at a glance
  • Net sold values are colour-coded — green for positive movement, red for net returns
  • Per-column footer search and standard Export / Print / Reload buttons
v2.9.2
Settings

Data Discrepancy Checks

  • New Data Discrepancies section in Settings with four data integrity checks:
    • Invoice Total Mismatch — finds sales where the stored grand total doesn't match the sum of line items; links directly to each sale
    • QC & Repair Stock Count — finds items with an open QC or Repair record that are no longer in the corresponding location; offers a Fix All to close stale records
    • Sold Location Mismatch — finds items with an active sale record whose current location is not Sold; offers a Fix All to correct the location
    • Purchase Return Location Mismatch — finds items linked to an active purchase return whose current location is not Purchase Return; offers a Fix All to correct the location
  • All checks show a preview table with item-level search links before any fix is applied
Sales
  • New Edit Sale button on the sale detail page — admin users can jump directly to the edit form without returning to the list
Stock & Items

Item Movement History

  • Movement reasons now correctly describe the source action instead of showing "manual":
    • Removing an item from a sale → removed from sale #X
    • Removing an item from a sale return → removed from sale return #X
    • Adding an item to a purchase return → purchase return #X
    • Removing an item from a purchase return → removed from purchase return #X
Bug Fixes
  • Sale Return deletion — deleting a return item no longer errors when the item was sent to Quality Control (or any non-Sold location); previously only items at Stock could be deleted
  • Purchase Return deletion — deleting a return item now correctly restores the item to its previous location (e.g. QC, Stock); previously the item could get stuck at the Purchase Return location
v2.9.1
Stock & Items

Barcode Printing

  • Bulk barcode printing — Select multiple items from the Stock List or Item List and print all their barcodes in one go. Choose Print Selected Labels (sent directly to the label printer) or Download Barcode PDF (3-column grid PDF). Both prompt for with/without price before printing.
  • Item search popup — Each result now has a barcode button to open the label print dialog directly from the search modal.
Shop Repairs
  • New repair statuses — Three additional per-item statuses: In Progress, Awaiting Parts, and Parts In Stock. Each has a distinct row colour in the repairs list.
  • PIN / Passcode field — Record the customer's PIN when adding a repair item. Shown on the repair detail page and in the items table.
WhatsApp
  • Repair status update — per-item detail — The status message now lists each repair item individually with its current status (and serial number if set). Single-item repairs stay concise; multi-item jobs show each device on its own line.
  • Send Status Update button — Hidden once a repair has been handed over, preventing accidental messages after job completion.
v2.9.0
Purchasing

Parcels

  • New Change Account option on the parcel detail page — reassigns a parcel to a different supplier account
  • Account ledger entries are automatically re-pointed to the new account so balances update instantly
  • Restricted to admin users with edit permission
  • Change is recorded in the activity log
Accounts & Finance

Accounts

  • Account names in Trial Balance, Debtors, and Creditors reports now link directly to the account ledger (opens in a new tab)
Reports

Activity Log

  • All parcel operations (create, import, move, status change, account change, delete) are now recorded in the activity log
v2.8.0
Reports

AI Reporting

  • New AI Reporting page — ask questions about your business data in plain English and get instant results
  • Powered by Qwen3 Coder via OVH AI Endpoints — your data stays private, only table structure is sent to the AI
  • Supports sales, purchases, inventory, shop repairs, and financial queries
  • Results shown as an interactive table with Chart, Excel, and PDF export options
  • Built-in guardrail filters off-topic and unsafe questions before they reach the AI
  • Daily usage limit per user to prevent abuse (configurable)
v2.7.0
Stock & Items

Stock

  • New Non-IMEI Stock Summary view — grouped by manufacturer → model → grade with total quantities, matching the IMEI stock summary layout
  • Expand any level to drill down to individual SKUs with a link to per-product inventory detail
  • Filter by Positive only (default), All (including negative), or Negative only stock
  • "Non-IMEI Stock" menu link goes to the summary view; "Non-IMEI Stock (list)" kept for the flat DataTable
Stock & Items

Item Management

  • New Manufacturers management page — edit name, enable/disable, delete with constraint protection
  • New Item Models management page — view all models with IMEI and Non-IMEI stock counts, enable/disable, delete
  • New Item Gradings management page — view all grades with stock counts, enable/disable, delete
  • Disabled models and grades no longer appear in product create/edit dropdowns
  • Editing an existing product still shows its current model and grade even if disabled
  • Links from Manufacturers page to filter Item Models by that manufacturer
  • Links from Item Models and Item Gradings pages to view related IMEI items and Non-IMEI products
  • Filtering on IMEI Items and Non-IMEI Items lists pre-fills the relevant footer search visually
Navigation & Usability

Navigation

  • New Items sidebar menu consolidating IMEI Items, Non-IMEI Items, and the Manage sections (Manufacturers, Item Models, Item Gradings)
  • IMEI Items and Non-IMEI Items links moved from Dashboard into the Items menu
  • Dashboard is now a direct link with no submenu
v2.6.0
WhatsApp

WhatsApp Integration

  • Send invoices directly to customers via WhatsApp from the Sales list
  • Phone number confirmation popup before sending — edit or save to account
  • Repair status updates sent via WhatsApp after marking as repaired
  • Test message button in WhatsApp settings
  • All messages signed with the business name
Shop Repairs
  • Multiple charges and payments per repair with individual dates
  • New Handed Over status — marks the repair as collected by the customer
  • On handover: payment prompt if balance is due, receipt print option
  • Receipt print button added to the Shop Repairs list
  • International phone numbers auto-detected (no country code prepended if already international)
Accounts & Finance

Accounting

  • Double-entry accounting now correctly recorded for all repair payments
v2.5.0
Accounts & Finance

Accounting & Reporting

  • Trial Balance report with date range filter
  • Customer and Supplier account types
  • Ledger view performance improved with large datasets
  • Debtors report now excludes fully settled accounts
v2.4.0
Stock & Items

Dashboard & Stock

  • Dashboard detailed view with per-location breakdown
  • Stock list loads faster on large inventories
  • Negative stock alert badge now updates correctly