Search by id. The id column on the Payments lists, the Journal Voucher list and the Shop Repairs customer view now has a search box in the table footer. Type a number to jump straight to that entry; it matches the exact id, so 12 does not also bring up 112
Quick navigation, a faster way to add one, and picking the right one
Receive Payment, Make Payment, Journal Voucher and Ledger now show quick links to the other three right on the page — no trip back to the sidebar to move between them. Each page hides the link back to itself
New Account without leaving the page: Receive Payment, Make Payment, Journal Voucher, Ledger, Create Sale (all three variants), Create Purchase Order, Add New Parcel and Import Parcel all get a popup to create an account on the spot — Company, Contact Name, Type and Currency — instead of opening the full form in a new tab and losing your place. It defaults to Supplier on the purchase-side forms (Purchase Order, parcels) and Customer everywhere else
Every account dropdown now shows the account type in brackets (e.g. "Acme Supplies Ltd (Supplier)") — so a customer and a similarly-named supplier are never confused for one another
The Note field no longer clears itself after adding an entry — it carries over to the next line, since most vouchers repeat the same note across several accounts
New Profit & Loss report (Accounts → Financial reporting): pick a date range and group it weekly / monthly / yearly — one row per period with IMEI and Non-IMEI figures side by side (revenue, cost, returns, net) plus the combined net. Quick select buttons fill the last 4 weeks / 3 months / 6 months for you
Two charts above the table: IMEI vs Non-IMEI net profit per period, and the combined net with loss periods in red
Returns now hit the period they happen in. An item sold last month and returned this week reduces this week's profit (shown as a separate Returns figure), and last month's report keeps its original numbers. Same-period sales-and-returns still cancel out as before. This fixes the reported issue where an old item's return didn't reduce the current period's profit
Every figure drills down: the period opens the Activity Report, IMEI net opens Sold IMEIs, Non-IMEI net opens the product Sales Profit list, and the Returns figures open two new lists — Returned IMEIs (with the original sale, refund and profit being reversed) and Product Returns
The detailed Activity Report's IMEI profit block gets the same treatment: a "Less: profit on returned items sold before this period" line, a Net Profit/Loss line, and loss-making periods now show their real negative figure instead of 0
Accessory (non-IMEI) sales made before the product had a cost recorded show overstated profit. The report now flags them ("N sale line(s) missing cost") and a Recalculate Non-IMEI Costs button repairs them with a progress bar — safe on any size of period. By default it only fixes the missing ones; a checkbox refreshes every product sold in the period
Debtors and Creditors are now one menu entry opening a single page with two tabs (with counts). Checkboxes on the form let you load only the side you need; each tab keeps its own PDF export
Both reports are also much faster — on a busy system the page now loads in under a second instead of over two minutes
Fixed: searching the Company column on Receive Payment / Payments Out lists returned an error (Column 'id' in order clause is ambiguous). It now filters and sorts correctly
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
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
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.
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
Every menu entry now has an icon. The submenus under Accounts, Purchases, Sales, Shop Repairs, Item Movement, Orders, Locations, Items and Users used to be plain text; each entry now carries a small icon like the Stock and Rate & Costs menus already did, so the right entry is quicker to spot. Long entries wrap onto a second line instead of running off the panel
New Shop Repairs — today card: booked in, repaired, handed over, in progress, ready to collect and payments taken today — every number links to the list or report that shows those items
New IMEI stock pipeline chart (Unprocessed → Repair → Quality control → Stock) alongside it, refreshed with the tiles
The Parcels row has been removed from the home page (parcels are still under Purchases)
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
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)
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
A help button now sits on every page. Type the question the way you would say it out loud — "customer wants to part ex their old phone", "the till is charging the wrong amount", "my spreadsheet upload only did some of them" — and the steps come back. Nothing to search and no manual to find first
It knows which screen you are on. Ask "do I need their ID?" on the trade-in screen and it answers about trade-ins. The same three words on another screen get the page for where you actually are
It answers "what is…?" as well as "how do I…?" — what does UnProcessed mean, what is the difference between a rate and a sale price, what is the margin scheme
When the guide does not cover something, it says so rather than inventing a menu that does not exist. Those questions are kept, so the guide gets written where people are actually asking
Where a tutorial video covers the same ground it is offered with the answer, one click to play
Twenty questions per person per day, so it cannot run away with itself. Ask a twenty-first and it tells you the day's limit is reached rather than failing oddly; the count clears at midnight, and it is per person, not per shop
The list used to show every customer who had ever traded. It measured everyone against a cut-off of today, so nobody could ever be too recent to appear. Each customer is now measured against their own Should visit again interval, and only those genuinely overdue are listed
The interval can finally be set on a customer. The box only appeared on Income accounts, and the list only looked at Income accounts, so no customer could be given one or turn up on the list. Both now use Customer
0 days keeps a customer off the list altogether, for the ones you do not chase. Everyone else starts at 28 days
The page now says who appears on it, because an empty list or a missing name otherwise reads as a fault
A new Help Questions screen lists what staff have asked and whether the guide answered it. The ones marked not covered are the gaps, in the words people actually used — what to write or explain next, ranked by how often it comes up
Every row is checked before anything is created. The import used to accept the sheet as-is: a blank tax category, a missing purchase price or an IMEI of 1 went straight into live stock, because only the Add Stock form enforced those rules. Both doors now share one rule set, so what the form rejects the spreadsheet rejects too
Nothing is imported until the whole sheet passes. A bad row is named with its row number and what is wrong with it, rather than importing the good rows and leaving you to find the rest
A computer row must carry its storage, since a computer's record is identified by it
Extra Info summary. Under the Extra Costs summary there is now an Extra Info Summary: each label line in use on the parcel's IMEI items (e.g. 6 Month Warranty) with how many devices carry it. Each item row also shows its extra info line, next to its extra costs. Included on the parcel PDF
Accessory (non-IMEI) rows with quantity 0 are now skipped rather than creating a product with no stock. Previously such rows became a phantom variant that sat on the stock alert as out of stock forever, even when the same item was in stock under another grade
The import preview highlights these rows in yellow with a warning banner listing them, and the confirmation message after import names each skipped row
A sheet where every row has quantity 0 is rejected with a clear message instead of creating an empty parcel
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)
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
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
These menus no longer list every type. Rate & Costs and Rate List B2B have one IMEI entry and one Non IMEI entry; Stock Alert lists your stock locations under IMEI. Old per-type bookmarks keep working
IMEI Set Rate and IMEI Stock Alert show every type in one table, with a new Type column, so phones, watches, earbuds and consoles are priced and monitored without switching pages. Narrow the list with the Type box in the table footer, like any other footer filter
Computer keeps its own pages, listed separately and only when you hold Computer stock — its Year / CPU / RAM / Screen Size columns are blank for everything else. Stock Alert's Computer entry likewise shows only the locations that actually hold one
On the stock list, a computer's specification now appears in the Colour column — 2021 · i5 · 8GB · 14" — so the machine is identifiable at a glance without a separate Computer page
Stock Alert on the dashboard counts every IMEI type below its minimum, not only phones
Set the label's Extra Info in the same pass. The menu entry is renamed from Add Bulk Extra Costs to Add Bulk Extra Cost/Info. The page now has two clearly marked boxes: Extra cost (description and amount, added to the device's cost) and Extra info (the line printed on the barcode label, e.g. 6 Month Warranty). Fill one or both, scan each device, and one save applies everything. A row can carry a cost only, an info only, or both; leaving Extra info empty keeps the device's current line
See every extra cost ever added, newest first, in a new Items with Extra Costs page under Rate & Costs. Until now the only way to see an item's extra costs was to open that one item's popup
Columns: when it was added, IMEI, item, grade, current location, description, amount and who added it — all searchable and exportable like other lists
Click the IMEI on any row to open the same item details popup a barcode scan gives, or the Extra Costs button to open the familiar Extra Costs popup for that device, where costs can be edited or removed
A Delete button on each row removes that one cost straight from the list, after a confirmation
Add extra costs to many phones in one go. New Add Bulk Extra Costs page under Rate & Costs (the menu formerly called Rate List): type the description and amount, scan each IMEI, and a row is added for it. Press Save Extra Costs once and every row is applied, exactly as if added one by one from the Extra Costs popup
Mix costs in the same batch. Change the description or amount at any point and keep scanning — e.g. five phones with Battery £20, then three with Screen £45 — all saved together
The list shows each device's details, current location, extra costs already saved on it (total and how many), description and amount, with a running row count and grand total, plus a remove button per row for mis-scans
Scanning the same device twice with the same description is flagged; the same device with a different description is allowed
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
A payment now prints at the counter. Take a payment and the print choice comes up there and then — receipt printer, A4, or cancel — instead of the only option being an A4 PDF found again later from the list. It works from the full payment screen and from the quick payment on a customer's ledger
The slip says what it is: payment received or payment paid, the amount, cash or bank, the account, their balance and your note
Sale returns print on the receipt printer too, from the row menu on Sale Returns. The slip is headed SALES RETURN, so a refund slip can never be mistaken for an invoice
Trade-in receipts can be reprinted from the list, not only by opening the trade-in first. Voided ones included, still marked as voided
"Print service not running" instead of Error handling failed! try again, with the download link beside it, when the program on the till is stopped or the address is wrong
Out-of-date tills are told so, with the download, rather than being shown a message no one can act on
The download link now always fetches the newest version. The same web address was reused every release, so some computers were handed back the copy they already had
Receipt text is treated as text. A stray control character typed into a note could previously reach the printer as a command and pop the cash drawer or cut the paper mid-receipt
Reprinted stickers show the current grade. After moving an item with a grade change (or regrading it at QC or repair), a new sticker still carried the old grade. Fixed. Returns to a supplier still use the grade the item was bought at, as before
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
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.
A new item breakdown under the day's totals: one row per model with how many went, what they took, the discount that came off, and what that leaves. Phones and accessories listed separately
No profit or cost on it, unlike the detailed report, so it can be read at the counter at closing time
It is on the screen, the PDF, the WhatsApp copy and the thermal receipt
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
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
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
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
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
Scan a returned phone and the price already has the discount off it. Sold for £180 with £20 off now offers £160, with a line underneath saying Sold for 180.00, less 20.00 discount — so the figure is explainable to the customer standing there. It used to offer the full £180 and hand back money the sale never took
The return lands on the right customer. Scanning says who the item was sold to, or who a purchase return's stock came in from, and fills the account in. If a second item came from somewhere else it stops and asks, naming both, rather than quietly putting the refund on one ledger
An account you chose yourself is never overwritten by a scan
Extra Info now exports correctly. The sheet had an extra info heading but no value under it, so from that column on everything sat one column to the left and the tax category appeared under extra info. Each column now carries its own value
The Non IMEI Items sheet now uses the exact header the Import Parcel → Non-IMEI screen expects (barcode and quantity included), so a sale exported from one shop imports straight into another
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
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
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
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
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)
Selling and taking money: the counter, sales orders, payments in and out, printing, sales returns, drafts
Stock: adding something new, restocking what you already sell, the parcel Excel import, rates and prices, locations and moving stock between them, stock alerts, quality control, repairs
Buying and returning: purchase orders and receiving against one, purchase returns, trade-ins
Running the shop: customer and supplier accounts, staff and permissions, settings, lists and exports, your own account
A glossary of the words the system uses — avg cost, receivables, UnProcessed, margin scheme, and the difference between an item and a product
Where the catalogue comes from, which is the thing most easily got wrong: models, grades, capacities and colours are typed in on the add-item screen as you go, not created on a screen of their own. Item Models and Item Gradings are there to see what you have and retire what you do not. Manufacturers are the exception and do have their own screen
Both settings pages get an Open Service button (opens the configured print-service address in a new tab), a Set Default button (resets it to http://localhost:8082 / http://localhost:8082/receipt — the print service always runs on the same till computer, so this is the recommended setting), and a note with a direct link to download the print service (same file as the ⬇ Downloads menu, top right) and its latest version number
⚠️ Action needed: a few shops have this address set to something other than the default. On every till: download the print service (v2.3.9) from the ⬇ Downloads menu top right (or the link on the settings page) and install it, then in Settings → Label Printer / Receipt Printer & Till click Set Default on each, Save Settings, and use Open Service to confirm it now reports 2.3.9
The user create/edit screen has a new Report Permissions row: Debtors & Creditors, Profit & Loss, Trial Balance and Ledger — each individually assignable. A ticked box gives that user the matching menu entry and pages (including the P&L drill-downs); super admins keep access to everything
Note: the account Ledger pages are now genuinely restricted — previously they were hidden from the menu but reachable by any logged-in user. Staff who use ledgers need the Ledger box ticked
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
Every status change of a repair item (Pending → In Progress → Repaired → Not Repaired …) is now recorded with its date and user, so an item that moves through several statuses on different days keeps the full trail. The Repair Details page shows it in a new Status History card
Items get a Repaired date: the latest day they reached a done outcome (Repaired / Not Repaired / Completed / No Fault) — regardless of whether a cost was entered or the item was handed over. This fills the gap where "how many repairs were done on a day" could only be approximated from the cost date
Activity Report (Shop Repairs Only), Repairs Summary Report and Repairs by Client now report repair amounts by booked, repaired and handed over dates. The old cost added basis (day the price was typed in) is gone everywhere — it was only ever a stand-in for the repaired date. Repairs by Client gets a Count by dropdown for the date basis and a Customer filter (accounts or walk-in customers who have had a repair — works in both shop-repair modes); All Shop Repairs swaps the Done column for Repaired, with its own date filter
The Repairs Summary Report gets a Repairs per day / week / month chart at the top — grouped bars for items booked, repaired and handed over in each period, with an Items / Cost toggle. Up to a month shows days, up to six months shows weeks, longer shows months
The Activity Report's Shop Repairs Only box now shows the repair amount three ways: cost added (the day the price was entered — the figure the report always used), booked (the day the item came in) and handed over. Each row is a link
Clicking a row opens the new Repairs by Client page in a new tab: every repair item in that period grouped by customer, with the repair number, item, fault, status, booked / done / collected dates, per-customer subtotals and a total — one tab per date basis
Repairs by Client is also on the Shop Repairs menu with its own date filter; it defaults to today
The Repairs Summary Report (and its PDF) gets the same three linked rows in a Repair Amounts by Date card
All Shop Repairs gains Cost and Done (date the price was entered) columns; Created, Done and Handed Over each have their own date filter, and a total cost for the filtered rows appears under the Cost column once a filter is applied
The Add / Update Repair page now shows the Item Note entered at booking, next to the fault
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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.
Five new types alongside Phone, Tablet and Computer: Watch, Earbuds, Console, Gadget and Misc (anything else with a serial number). Pick them in the Type box when adding stock, on the parcel Excel import, on purchase and sale orders, and on trade-ins. They use the same make / model / capacity / colour / grade fields as phones
Capacity and colour are no longer forced. Colour is optional for every type, and capacity for every type except Computer, whose storage is part of how the machine is identified. A feature phone with no storage tier, or a laptop with no colour, can now be entered honestly instead of having something untrue typed into the box
Serial numbers are accepted as manufacturers actually print them — from 4 characters up. A phone's IMEI is still exactly 15 digits
Labels for a watch, earbuds, console, gadget or misc item start with the type (e.g. WATCH APPLE SERIES 9), so one cannot be mistaken for a phone label. Phone labels are unchanged
One Grouping list on the left now drives every type instead of a separate list per type. Computer keeps its own, because its columns differ (Year, CPU, RAM, Screen Size, Storage), and it appears only when you hold Computer stock
Type pills above the stock tree — All, then one per type you actually hold. Click a type to see just that section. The choice sticks when you re-order the grouping and press the tick
Each type still exports to Excel with the same layout as before
Sending a new phone to an UnProcessed or Management location now works. Choosing one of those in Send to left the phone at the parcel's location (usually Stock) with no stock row and no history, so it looked like a move to Stock. The phone now lands in the chosen location, and its Movement history shows sent straight to … from Parcel for every destination
Add an extra cost and set the label's Extra Info while moving. The menu entry is renamed from Move Items to Move Items / Extra Cost & Info. The page is now laid out in four clearly marked boxes: Move to (location, technician), Device changes (optional regrade, recolour), Extra cost (optional; description and amount, added to the device's cost) and Extra info (optional; the line printed on the barcode label, e.g. 6 Month Warranty). Set what you need, scan each device, and one Move Items does everything for every row. Leaving Extra info empty keeps the device's current line
Scan devices box. Note, the IMEI scan and the QC / repair result now sit together in one box under the settings. Scanning a device that is in QC or with a technician used to show a bare Yes/No; it now offers QC result: Passed / Failed and Repair result: Repaired / Not repaired. If nothing is chosen when such a device is scanned, the box turns red and names the device; pick the result and the row is added
The list shows each row's QC/repair result in words (e.g. QC passed, Not repaired), its extra cost, amount and extra info, with running totals above it and a Clear list button
The note is now the reason. The Note typed on the form is recorded as the Reason on the phone's Movement history (item search); it used to say manual
New video in the Video Tutorials panel under Item Movement: Move Items: regrade, extra costs & label info in one scan, ending with how to check a phone from the search box and how to add a location. The User Guide has a matching Moving stock between locations section
The Add Bulk Extra Cost/Info video under Rate & Costs is re-recorded to show the Extra info box: a label line on its own, or a cost and a label line on the same scan
Same two buttons as the Trade-in screen. The small IMEI Item / Non IMEI Item radio buttons are replaced by the IMEI Items (Phone, Tablets..) / Non-IMEI (Accessories) button pair used on Trade-in, so the choice looks the same everywhere and the selected kind is obvious at a glance. IMEI is selected by default on a new entry
The rate column is filled in again. It showed the Rate List price only, so units priced on the item itself (the normal way since the September update) came out blank. It now shows the Rate List price when one is set, otherwise the units' own sale price, exactly as the stock list does. When units in a row are priced differently it shows the range, e.g. 250 - 275
Fixed a crash when typing extra semicolons. The accessory search accepts up to six parts after the leading ; (type, manufacturer, model, grade, capacity, colour). Typing a seventh part, or pasting a full label, used to error out. Extra parts are now ignored and the search still runs
Disabled accessories no longer appear on the non-IMEI stock alert list. Disabling a product from the Non-IMEI Items list now removes it from the alert entirely, instead of leaving a permanent "0 in stock" row
Tax Category now defaults to Margin when adding an IMEI item (phones etc.), instead of Standard — switch it manually if a particular item needs Standard or Reverse
Total now updates the moment you paste a list of IMEIs, not just when you type or click away
The "already taken" and duplicate-in-list errors now name the actual IMEI(s) involved instead of a position in the list — much easier to find in a long paste
New Extra Info line per phone and per product — free text like "Battery 80% · 6 Months Warranty" that prints on barcode labels and shows in the search popup under the item name. Edit it by clicking the Extra Info column on the stock lists (on the All IMEI list it shares the Extra Cost / Info column), and set it at intake on Add Product and trade-ins
Labels now send each detail separately — name, grade, capacity, colour and Extra Info — so label templates can style them (big name, bold grade); existing templates keep printing exactly as before
Optional: update a unit's sale price straight from the stock lists — off by default, switched on under Settings → Others; every change is logged with old and new price
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
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
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
Trade-in settings now have their own tab in Settings instead of sitting at the bottom of Miscellaneous
Optionally stamp the trade-in number onto the stock it brought in. Switch on Trade-in reference on bought stock and each phone bought gets CU- and the trade-in number in its Extra Info, so a seller who comes back quoting it can be found from the stock list. Off unless you turn it on, and anything your staff typed on the row is kept alongside it
The shop's copy of a trade-in receipt now carries the ID photos taken at intake, so the filed paperwork is complete. Only the shop's copy, only on the PDF, and only for an administrator — the customer's copy, the emailed copy and the WhatsApp copy carry none
Item type, a tidier entry row, and the condition note
The IMEI row has a Type box (Phone, Tablet, Watch, …), next to the IMEI where the first decision about a device belongs, so a traded-in watch is filed as a watch
The device row is now two lines instead of one long wrapping line. What the item is sits on top — Type, Manufacturer, Model, Grade, Capacity, Colour, Extra info — and what it costs and where it goes sits below: Buy price, Sell price, Location, Condition note. The row no longer rearranges itself depending on how wide your window is
Accessories no longer ask for a Location. An accessory goes into shelf stock, which has no location, so the box was only ever noise. Qty moves down beside the Buy price it multiplies, and the shelf-barcode box sits at the end of the top line, where the IMEI box sits for phones
The condition note you type at intake is now shown on the trade-in. Open any trade-in and there is a Condition at intake panel listing each item and its note. It stays off the printed receipt on purpose — it is your own assessment, not something to hand the seller
New Trade-in page under the Sales menu, on for every shop: buy one or more devices from a walk-in seller, with an optional sale of stock netted against the payout in the same transaction — only the difference changes hands
Take in IMEI items (phones, tablets…) and non-IMEI accessories: one row per device by IMEI, accessories by quantity at an agreed value each. Scanning a shelf barcode fills the whole accessory row from the existing product, and a device you sold before fills its details from its history
Every row takes a Buy price and an optional Sell price: a phone is priced individually, an accessory's price applies to its shelf line. Capacity, colour and grade are picked the same way as on Add Product — nothing defaults silently
Any difference is settled by cash, card, bank or a split — trade-ins can never be put on credit — and a discount can be given on the sold items from the confirm popup
Every trade-in prints a two-copy receipt (customer + shop copy, wet-signature line on the shop copy) covering items bought, items sold, any discount and the amount paid or collected; PDF, email and WhatsApp too
Barcode labels for the bought items print on save — pick once from the same auto-print dropdown Add Product has (with/without price, one per unit) and they print with no prompts
A photo of the seller's ID can be captured (optional) — take it on a phone via a QR code — and stored privately for compliance, kept for 12 months and then removed; it never appears on receipts or reports
Admins can void a trade-in booked in error, reversing stock, ledger and payout; trade-ins can be saved as a draft and resumed, like sale quotes
Receipt polish: the bought / sold summary prints on its own lines on the thermal strip, and the trade-in number prints correctly (#, not £) on tills once the updated print service is installed
The Activity Report shows trade-in money the way it was actually taken: card/cash/bank under its own method, the part-exchange value as a Trade-in allowance row (so Credit keeps meaning on account), a Trade-ins Bought (money out) line, and the breakdown now includes Bank takings
Receipts and invoices honour the account balance setting on trade-ins posted to a customer account, exactly as sale receipts do
Videos play inside the app in HD. Clicking a tutorial now opens a large player in the app instead of a YouTube tab, so videos start at 720p rather than 360p. Open on YouTube is still there in the player's header, and Ctrl/Cmd-click opens the YouTube page as before
Four more videos in the Video Tutorials panel: Trade-ins & part exchange (under Sales), Moving stock between locations (new Item Movement group), Accounts & payments and Ledger, journal vouchers & who owes you (new Accounts group)
The Item Movement and Accounts groups open first when you're on those pages
New play icon in the top bar (next to What's New) opens a Video Tutorials panel on the right of the screen, on every page
Tutorials are grouped by area — Purchases & Adding Stock, Sales, Rate & Costs — and the group for the page you're on is highlighted and listed first
Each entry shows a thumbnail, length and a one-line summary; click to watch on YouTube. Type in the search box to filter
First set: which sale form to use and the settings behind the Create Sale quick link, Create Sale, Bulk Sale (including pasting a list of IMEIs), the touch-screen sale, adding phones and accessories to stock, restocking without creating duplicates, bulk extra costs, and updating a sold item's price
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
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.