The sales order system behind your trade counter
A trade counter and sales order system is a merchant's price book with a till attached: it knows what every account pays, takes the order at the counter, on the phone or by email, and turns it into a pick note, a delivery note and an invoice. Solve With Software takes over the homegrown ones, and packages customised past the point of upgrade, keeps them running and modernises them in stages, so the counter keeps the screen it knows while the prices move into the office's hands. AI helps first with the emailed order lists the sales office keys by hand, drafting each order at the customer's own prices for someone to check. The assessment prices each stage before you commit.
Free · 1 hour · no obligation
The Old Guard
Written 2003 to 2010 in VB6 by a contractor or a small software house, on SQL Server, and still running on the back-office server and the counter PCs.
The New Legacy
Built 2016 to 2022 by a web agency in PHP or React, or on a low-code builder, with the contract price rules buried in the agency's code.
Where AI helps
AI drafts orders from emailed lists and photos at each account's own prices, typically half an hour to two hours of keying back each morning.
The system behind the trade counter
It is called Sales, or Orders, or the name of the man who wrote it, and it is open on every PC in the building by seven.
A typical business running one of these has 15 to 60 staff across one or two branches, a counter that serves a queue of vans before eight, and somewhere between 150 and 600 order lines a day across the counter, the phone and the reps' emails. The ledger runs to a few hundred trade accounts, twenty of which matter more than the rest put together. Written in 2006 or in 2019, it does the same job.
Most builders', plumbers' and electrical merchants run a bought trade package. This page is about the counter system written for one merchant, or a package whose pricing was customised past the point of upgrade.
At the counter it finds the customer, takes the lines by code or by a description close enough, prices each one, and prints the invoice or the delivery note. A card payment is keyed a second time, into the standalone card machine beside the till. In the sales office it takes phone orders and quotes, holds short lines on back order, sends pick notes to the warehouse and runs the invoices at five. At month end it builds the Sage file, and on Monday the MD reads the margin-by-customer report.
The rules it holds are the ones the big accounts were won on:
- A contract price beats the tier price, which beats list, except for a promotion, which beats everything unless the account is on a fixed contract.
- Quantity breaks are per pack for some product groups and per unit for others, and the counter rounds up to full packs where the supplier will not split.
- Back orders release to the three largest accounts first, then oldest order first.
- Cash and account sales post to different Sage nominals, and a handful of customers get one invoice a month instead of one per delivery.
None of it is written down anywhere else.
The Old Guard: the VB6 program on the counter since 2006
Written between 2003 and 2010 in Visual Basic 6 by a contractor who had done one for another merchant, or by a small software house that has since folded, and extended every year after: a price tier screen, back orders, the second branch. The data sits in SQL Server, Crystal Reports prints the invoices, delivery notes and statements, and the export to Sage has been rewritten twice as Sage changed. It runs on a server in the back office and on the counter PCs.
Around 2019 the contractor's number stopped connecting. The firm that looks after the network swaps PCs and printers but has never opened the program, so the pricing rules inside it are as they were the last time anyone edited the code. It cannot be opened from the yard or send an email, and a new counter PC is a gamble.
The New Legacy: the 2018 order screen from a web agency
The same system built between 2016 and 2022 by a web agency or a freelancer, as a web system in PHP or React, Angular or Node, or by someone in the office on a low-code builder such as Zoho Creator or Power Apps. It opens in a browser on the counter PC, the reps log in from the car, and the invoices come out as PDFs. Since 2023 a few merchants have had a counter screen started in an AI app builder instead, which priced a basket at list well enough and stalled at the first contract price with an exception.
The price book is what pins it. The agency stored tiers and list prices as data, but the precedence between contract, promotion and fixed-contract prices went into its code as special cases, pack rounding too, so a new deal for a big account still needs a developer. The Sage link was the last part promised and never arrived. In 2023 a pricing change rounded some packs down for a week before the counter spotted it, and the office has asked for nothing since. The agency has other clients now, and the hosting renews on an invoice nobody in the office recognises. A decade younger than the VB6 program, and stuck behind the same price rules.
Why does the business depend on it?
Every order priced right, whoever takes it, and a counter that clears the morning queue.
The price book is the business. A few hundred accounts on a dozen tiers, contract prices for the ones that matter, breaks that differ by product group, and the system applies all of it without anyone looking anything up. A new starter on the counter charges what the person who negotiated the deal would, and that is what keeps the big accounts.
Speed is the other half. The queue at half past seven gets served because the customer's history and the product search are a keystroke away, and the invoice is on the counter before the van has turned round. Back orders are tracked rather than promised and forgotten. The margin report tells the sales office when a rep has given too much away, and month end goes to Sage in one file, so the sales ledger and the accounts agree.
Where it has started to strain
Systems like this do not break. The office grows a set of habits around them.
The price book is half in the code. Tiers and contract prices are in tables, but the precedence between them, the pack rounding and the odd exception for one account were written into the code. A price change for a big account waits for a developer who is no longer there, and the sales office keeps a spreadsheet of the prices it gets wrong.
The counter has two deadlines. Windows 10 support ended in October 2025, and when a counter PC moves to Windows 11 the Crystal print path tends to fail with it. The card machine beside the till is keyed by hand from the screen, and terminals still on a phone line stop taking payments when the analogue network switches off on 31 January 2027.
Month end runs through one person. In the older system the Sage export was built for the 2012 version, and each upgrade has been put off since the last one broke it. In the newer one the Sage link never arrived, so the file is built in a spreadsheet. Either way, one person in accounts knows the hand corrections made before the import.
The customers expect to be told. The big accounts want an order confirmation and a back-order update by email, and the reps want stock and prices from a customer's yard. The system prints. So the sales office spends its afternoons emailing PDFs it has printed to itself.
What does modernising the counter system bring?
The same order screen, with the price book in the office's hands and the paperwork sending itself.
The price book as data. Every tier, contract price, break and exception comes out of the code into screens the sales office owns, with a record of who changed what. A new price for a big account takes minutes, and the spreadsheet of wrong prices goes.
The counter in a browser. The order screen opened in a browser, on the same data, on any PC, on a tablet in the yard, or from home. The invoice prints as a PDF, so the Windows version on the counter stops mattering.
Card sales keyed once. The order total goes to the card terminal from the screen and the payment comes back against the invoice, so the till and the ledger agree at close, on a terminal that no longer needs the phone line.
Confirmations that send themselves. An email when the order is saved, with the customer's PO reference and the delivery day, and a note when a back order releases.
Sage posted daily. The hand corrections become rules in the export, so the link runs each evening and month end becomes a check rather than a job. The next Sage upgrade gets tested on a copy first.
Reps ordering from the yard. Live stock across both branches and the customer's own price, on a phone, writing into the same order file the counter uses.
Neither generation of the old program is switched off for any of this. Each piece is added beside it, on the same data, and the counter moves when the new screen is faster.
Where would AI save the sales office time?
In emailed order lists, the questions no report answers, and prices that slip below margin.
The pricing stays with the rules. AI does the reading and the looking up:
Emailed lists turned into orders. An electrician's list in an email, a photographed job sheet, a buyer's PDF with half the codes missing: someone reads each one, hunts the codes and keys the lines. AI matches each line to a code from what that customer has bought before and drafts the order at their own prices, leaving the unmatched lines for a person. If a third of the day's 150 to 600 lines come in this way, at most of a minute each to key, that is typically between half an hour and two hours back each morning.
Questions no report was written for. A rep wants to know what an account paid for a drum of cable last time, and which plumbers who used to buy a boiler range have not ordered it since spring. AI answers in plain words from the order lines and lists the invoices behind the answer for checking before a quote. A question that took a quarter of an hour in the order history takes a minute.
Lines below margin caught before five. A generous discount or a mistyped price shows up on the Monday report, after the invoice has gone. AI reads the day's lines against what each account usually pays and flags the ones out of pattern. Several hundred lines typically give a handful of flags, a few minutes before the invoice run in place of a Monday morning with the report.
Not worth doing: AI-set prices for trade accounts. The tiers exist because customers negotiated them and expect them to hold, and a price that moves on its own loses one of the twenty accounts that matter.
All three write into the order file, so none starts until that file can be changed without the counter feeling it. The assessment shows which would repay soonest on the system as it is.
How we would stage it
Safe to change first, then the price book, the part that changes most.
- Stabilise. The VB6 source, or the agency's code, found and matched to the running program, the database on a version that is still supported, a backup restored on purpose, and a test copy with a copy of Sage beside it. This goes first because the price rules cannot be moved out of code that cannot be changed safely.
- The price book out of the code. The precedence, the breaks and the exceptions written down with the sales office, put into tables and given a screen, which the old order form then reads.
- Confirmations and back-order emails. Small, built on the orders already in the system, and the first thing the customers feel.
- The counter screen in a browser, run beside the old form until the counter staff choose it, then the sales office screens.
- Sage posting daily, card sales keyed once, the reps' phone view. Each a stage, each priced on its own, with the invoice run ready for electronic invoicing before April 2029.
- Retire the old program, VB6 or the agency's site, when nothing still opens it. The last thing to go is usually the invoice layout, because the customers are used to it.
The assessment is from £395 + VAT, sized on a free one-hour consultation, with an exact price before you commit. For a sales order system that means a few days with the counter, the sales office and the code, finding where every pricing rule lives and what the Sage export does by hand, and a report with costed options and a fixed price for each. Each stage after that is priced before you commit to it. How we work, what drives the price and the payment terms each have a page, and so does each technology the system is built on: Visual Basic 6, SQL Server, Crystal Reports and Sage integrations, and for the newer generation old PHP and React, Angular and Node.
The technical checklist for a trade counter system takeover
What the assessment establishes for a sales order system, and why each item matters:
| Check | Why it matters |
|---|---|
| Where does the price precedence live: in tables, in the VB6, or both? | Rules in code mean every price change is a developer change. The split decides what the first stage is. |
| Is the VB6 source available, and does it build to the program the counter is running? | Without it the pricing rules are read from behaviour, which takes longer and finds fewer of the exceptions. |
| Which SQL Server version, and where is it running? | SQL Server 2016 updates ended in July 2026. The database goes onto a supported version before anything is built on it. |
| How does the counter print, and what does the Crystal invoice layout carry? | The layout carries rules of its own: the VAT note, the cash-sale wording, the customer's PO reference. The print path is the commonest thing to break on a new PC. |
| What does the Sage export contain, and what is corrected by hand before the import? | The corrections are the specification for the rebuilt link. |
| How are back orders held, and in what order do they release? | The release rules are the ones the big accounts feel. They have to survive. |
| Which accounts have contract prices, and when was each last reviewed? | Contract prices outlive the contracts. The assessment finds the ones nobody has looked at in years. |
| Can the invoice run send each account invoice as structured data? | Electronic invoicing becomes mandatory for business-to-business VAT invoices from April 2029. A printed or PDF invoice is not structured data, and most of what this system invoices goes to VAT-registered trade accounts. |
Questions
What people ask before they book.
Can we keep our price tiers and the special prices for the big accounts?
Yes, and they are the first thing found. They are the most valuable part of the system and the part a rewrite loses. They come out of the code, get written down with the sales office, and go into screens the office maintains.
The program is VB6 and the counter PCs are old. Does it have to be rewritten?
No. The data underneath is usually sound and stays where it is. The VB6 screens keep running while browser screens are added beside them, and once the counter is on the new screen the Windows version on that PC stops mattering.
Will it still post to Sage?
Yes. The export is the first thing tested, on a copy, before anything else moves. Then it is rebuilt to post daily, with the corrections accounts makes by hand turned into rules, so month end is a check rather than a job.
Can our reps take orders from a customer's yard?
Yes. A phone view of stock and the customer's own prices, writing into the same order file the counter uses, is a small stage on its own once the price book is in data.
What does it cost?
The assessment is from £395 + VAT, with an exact price before you commit. It produces a report with costed options and a fixed price for each, and each stage after that is priced on its own. The report is yours. Take it to us, another developer, or nobody.
Related pages
- Legacy system modernisation and takeover
- The legacy system assessment
- Our system is too risky to change
- Support for a system the developer no longer looks after
- The stock and purchasing system your warehouse picks from
- The ordering portal and EDI feed that take your customers' orders
- Sage integrations
- Our AI-built app has stalled
Start with a free consultation
An hour on your system, online or by phone. From there we size the assessment, from £395 + VAT, and give you an exact price before you commit.
Want the numbers first? See how pricing works.
Written by Marc Allington, founder. .