Two very different devices get called “the barcode scanner”, and mixing them up is why most of this goes wrong. Decide which one you have before you read any further.
What you’re looking at
There is a third route with no hardware at all: a camera button sits beside the search box on the till and on the sales list, and on the Add item sheet in Inventory. It uses the machine’s webcam.
The till’s own search box reads Search or scan (name, generic, brand, barcode)…, and the sales list’s reads Search or scan receipt… — the two take different things, which is worth knowing before you aim a gun at one of them.
The till scanner: nothing to install
A keyboard-wedge scanner types what it reads. To your computer it is a keyboard, so there is no driver to install, no pairing inside ClinikEHR and no setting to switch on.
Plug it in
USB or its wireless dongle. If the operating system sees a new keyboard, you are done.
Scan a product
You do not have to click into the search box first. The till listens for a scan anywhere on the page, so a cashier can scan while the cursor is nowhere in particular.
On a match you get “Scanned: {name}” and the product is in the cart. On a miss: “No medication matches that barcode” — which nearly always means the barcode is not saved against the product yet, not that the scanner failed. The code is dropped into the search box so you can look for the item by name instead.
Scanning is ignored while you are typing in another field — an amount, a reference, a note — and while a dialog is open over the page. The characters are already landing where you put the cursor, and adding to the cart as well would leave junk in the field. Select somewhere neutral, then scan.
A scan is recognised by its speed: a burst of at least six characters with almost no gap between them, finished with the Enter your scanner sends. That is why typing a barcode by hand does not add to the cart — use the search box for that.
Put barcodes on your products
A product cannot be scanned until its code is saved on its catalogue entry.
Open the item
— or edit an existing item.
Fill Barcode / UPC (optional)
The field’s placeholder is “Scan pack, or Generate…”. Put the cursor in it and scan the pack — the fastest way, and it cannot mistype. You get “Barcode captured: {code}”.
Or mint your own code
For a product with no barcode on the pack — a repack, a loose line — select Generate in-house code. It is greyed out while the field already holds something (“Clear the field to generate a new code”), so empty the field first if you mean to replace a code. It confirms with “Generated in-house barcode {code} — print its label after saving”.
Or read it with the webcam
Camera scan opens Scan product barcode — “Point the camera at the pack’s barcode to capture it for this item.”
Save the item
The code is live immediately: the next scan at the till finds it.
Print shelf and pack labels
From an inventory row, Print barcode label opens a sheet with a Copies field, up to 100 at a time. Print a strip for a shelf edge or one per repacked pack, and everything you have coded becomes scannable at the counter.
Scan a receipt to find a sale
On the sales list, the Search or scan receipt… box takes a scan of the barcode printed at the bottom of a customer’s receipt and pulls the sale straight up — the fastest route into a return or a query. A refunded or cancelled sale still opens, and says which it is.
Scan something that is not a receipt and you get “That barcode is not a ClinikEHR receipt.” A receipt printed while the till was offline carries a provisional number and no barcode at all; find those by date and amount instead. See Print and reprint receipts.
Scan with a webcam
No hardware scanner? The camera button needs two things a laptop usually already has: a secure connection (“Camera access requires HTTPS. Open this page over a secure connection to scan.”) and camera permission (“Camera permission denied. Allow camera access in your browser settings to scan.”).
It is a genuine fallback rather than a counter tool — a camera on a crowded shelf is slower than a scanner, and it stops the till while it focuses.
The count terminal is a different job
A portable count terminal — the CipherLab in its USB cradle — is for stock counts, not selling. It collects codes and quantities on the shelves, then hands them over in one upload.
It needs Chrome, Edge or the desktop app, and a deliberate connect-then-upload sequence rather than a plug-and-scan. The full procedure is in Count with a CipherLab scanner.
Do not try to sell with it, and do not try to count a whole shop with the till scanner — see Run a stock count.
Who can do this
No permission gates scanning. A barcode is an input device, like a keyboard: anyone who can reach a screen can scan into it, and what happens next is governed by whatever that screen is already governed by. Role still decides which screens they reach.
The one real permission anywhere near the count terminal is the controlled-drug countersignature, and it bites when the count is approved rather than when the device is connected — see Count with a CipherLab scanner. There is no permission on the count itself — Adjust stock counts was on the permissions sheet until August 2026 and nothing ever checked it, so it was removed.
Two behaviours surprise people:
- Enforcement is opt-in, per person. A colleague never saved in the permissions sheet is unrestricted, and the sheet warns “Saving starts enforcing”.
- A denied action is recorded; an allowed one is not. A scan that matches nothing is not a denial — it is a missing barcode, and nothing is logged.
See Staff permissions.
Check it worked
- Scanning at the till toasts “Scanned: {name}” and adds a cart line.
- It works with the cursor resting nowhere in particular, not only in the search box.
- Scanning a receipt on the sales list opens the sale.
- A printed shelf label scans to the same product as the pack does.
Common issues
'No medication matches that barcode'
The code is not saved against any product. Open the item in Inventory and fill Barcode / UPC (optional) by scanning the pack into the field. Every pack of the same product must carry the same code.
The code appears as typed text instead of adding to the cart
The cursor is in an editable field, so the characters are going there. Select somewhere neutral on the page and scan again.
Nothing happens at all when I scan
Confirm the scanner types at all: open any text field, scan, and see whether characters appear. If they do not, it is the device or its dongle, not ClinikEHR. If they do but the till does not react, check whether a dialog is open over the page — scanning is deliberately ignored while one is.
Only part of the code arrives, or it takes two scans
The scanner is sending too slowly to read as one burst, usually because an inter-character delay is configured on the device. Set that delay to zero in the scanner’s own configuration sheet, and make sure it sends an Enter at the end.
The camera scanner will not start
It needs a secure connection and camera permission. Allow the camera in your browser’s site settings and reload. On a shared till, a hardware scanner is the better answer.
'That barcode is not a ClinikEHR receipt.'
You scanned a product barcode, another shop’s receipt, or a receipt from an offline sale that carries no barcode. Search by date and amount instead.
Two products scan to the same thing
Both catalogue entries carry the same code. Fix the duplicate in Inventory, or give the repacked line its own generated in-house code.
FAQ
Do I need the desktop app to use a barcode scanner?
Not for a till scanner. A keyboard-wedge scanner is a keyboard, so it works in any browser with nothing installed. The count terminal is the one with a requirement: it talks over a serial cradle, which only Chrome, Edge and the desktop app can do, and only on the machine the cradle is plugged into. Which barcode symbology should I buy for?
Any general-purpose retail scanner is fine — it reads what is on the pack and types the digits, and ClinikEHR matches on those digits regardless of the symbology. Codes you generate in-house are 12 digits, which every scanner reads.
Can I reuse a supplier's barcode on a repack?
No. A repack is a different product with a different quantity, and sharing a code means one scan is ambiguous. Use Generate in-house code and print its label.
Does scanning work offline?
Yes. Matching a scan against your catalogue happens on the device, so the till keeps scanning through an outage — the sale queues as normal. See Selling when the internet is down. Can I scan straight into a stock count?
Yes, but consider the tool. The till scanner works on a count worksheet like any other field, which is fine for a shelf or two. For a whole shop, a CipherLab terminal walks the aisles without a computer and uploads in one transfer.