POS hardware: receipt printer, barcode scanner, cash drawer
LaunchMyStore POS is browser-first, so most hardware connects through WebUSB, Web Bluetooth, or a cloud printing protocol. This guide covers the three pieces every counter needs — printer, scanner, drawer — plus the troubleshooting checklist when one of them goes dark.
What you need
- A receipt printer (thermal, ESC/POS-compatible, or Star CloudPRNT)
- A barcode scanner (USB HID or Bluetooth keyboard-emulation)
- A cash drawer (RJ-11 kick cable connected to the printer)
- Optional: Stripe Terminal reader or supported card reader, label printer for shipping
- A modern Chrome or Edge browser (WebUSB / Web Bluetooth required)
Receipt printers
Option A: ESC/POS USB / Bluetooth (most common)
Any thermal receipt printer that speaks ESC/POS works. Tested models include Epson TM-T20, TM-T88, Star TSP100, TSP143, and most generic 58mm/80mm USB thermal printers.
To pair:
- Open POS → More → Hardware.
- Click Pair receipt printer.
- Pick the printer from the Chrome WebUSB picker.
- Click Print test receipt to confirm the connection.
The pairing is per-browser-per-device. If you switch laptops or clear browsing data, you re-pair.
Option B: Bluetooth receipt printer
For mobile registers (iPad, phone), use the Bluetooth printer pairing flow. Pair the printer at the OS level first (Bluetooth settings), then in POS → Hardware click Pair Bluetooth printer.
Option C: Star CloudPRNT (recommended for fixed locations)
CloudPRNT printers poll our backend on a 10-second interval and pull print jobs over HTTPS — no browser permissions or WebUSB needed, and the printer keeps working even if the cashier’s laptop is sleeping. Setup:
- POS → More → Hardware → Add CloudPRNT printer.
- Copy the generated poll URL (contains a per-printer secret).
- Paste it into the printer’s admin web UI under “CloudPRNT URL”.
- Save and reboot the printer.
The printer will start polling. Within 10 seconds, the printer appears as Connected in the hardware panel.
The CloudPRNT poll URL contains a random 24-char URL-safe secret. Never share the URL publicly — anyone with it can queue jobs to your printer.
Barcode scanners
The cheapest path is a USB scanner that emulates a keyboard. Plug it into the cashier’s laptop or tablet and it’s ready — no driver, no pairing. POS listens for fast keystroke sequences ending in Enter and treats them as a barcode scan.
Supported types
- USB HID (keyboard emulation) — the default. Works everywhere.
- Bluetooth scanners — pair at OS level, then they behave like USB.
- Camera scanning — if no hardware scanner is present, click the camera icon in the catalog tab to use the device camera (uses the browser’s
BarcodeDetectorAPI).
Once you scan a barcode that matches a product SKU or variant barcode, the item is added to the cart instantly.
Tuning the scanner
Most scanners ship with the right defaults. If scans land in the wrong field:
- Re-program the scanner to send
Enteras a suffix (every model has a config barcode for this in its manual). - Make sure no other input is focused before scanning.
Cash drawers
Cash drawers don’t connect to the laptop directly — they plug into the back of the receipt printer via an RJ-11 (kick cable). The printer sends an electrical pulse that pops the drawer open at the end of a cash sale.
Wire it up
- Plug the cash drawer’s RJ-11 cable into the printer’s drawer kick port (DK port).
- Make sure the receipt printer is paired and online in POS → Hardware.
- Ring up a cash test sale — the drawer should pop at print-time.
You can also fire a manual drawer kick from More → Hardware → Open drawer. This permission is gated to roles with the Cash-drawer permission (Owner, Manager, Admin, and yes, Cashier — cashiers need to make change).
Customer-facing display (optional)
If you have a second screen at the counter facing the customer, open /pos/customer-display on it — it mirrors the current cart in real time. Setup:
- On the cashier’s device, log into POS as usual.
- On the second screen, open the same store URL at
/pos/customer-display. - Sign in with the same account — it auto-binds to the cashier’s active cart.
Troubleshooting
Printer says “Disconnected”
- Chrome shows printer as in use — close every other tab/app that might hold the WebUSB handle.
- USB cable came loose — replug.
- Browser permission revoked — re-pair from POS → Hardware.
Receipt prints garbled
- Wrong code-page on the printer (set to UTF-8 or CP437).
- Paper width mismatch (58mm template on an 80mm printer) — pick the right template in More → Receipt.
Scanner does nothing
- Focus is on the wrong input field — click into the catalog search bar first.
- Scanner didn’t send
Enteras suffix — re-program with the config barcode in its manual.
Cash drawer won’t open
- RJ-11 cable not seated in the printer’s DK port.
- Some cheap drawers need 24V; check spec matches the printer’s kick voltage.
- Cashier role missing the Cash-drawer permission.
FAQ
What happens if my receipt printer disconnects mid-sale?
The sale still completes — inventory and cash are recorded regardless of print success. The receipt is queued and POS shows a toast “Receipt could not print”. Re-print from Orders → Order detail → Print receipt once the printer is back.
Do I need separate hardware for each register?
Each physical register needs its own printer and drawer. A barcode scanner is per-cashier. The deviceId field on the shift lets you tag which physical terminal opened the shift so multi-terminal stores can reconcile drawers separately.
Can I use AirPrint or a regular office printer?
Yes, for A4 paper receipts. But a thermal ESC/POS printer is dramatically faster and cheaper per receipt for a real shop.
Does CloudPRNT need a special printer?
Yes — it’s a Star Micronics protocol. Star TSP143IIIU, TSP654II, and TSP100IV (Wi-Fi or Ethernet variants) support it. The benefit: no browser permissions, no laptop USB tether.
Will the camera scanner work in Safari?
Safari supports BarcodeDetector in iOS 16+. On older iOS, fall back to a paired Bluetooth scanner.
Where do I configure receipt templates?
POS → More → Receipt. You can pick paper width (58mm / 80mm / A4), toggle store logo, edit header/footer text, and switch language. Templates are stored per store in the PosReceiptTemplates table.