# POS hardware: receipt printer, barcode scanner, cash drawer

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:

 1. Open POS → More → Hardware.
 2. Click Pair receipt printer.
 3. Pick the printer from the Chrome WebUSB picker.
 4. 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:

 1. POS → More → Hardware → Add CloudPRNT printer.
 2. Copy the generated poll URL (contains a per-printer secret).
 3. Paste it into the printer’s admin web UI under “CloudPRNT URL”.
 4. 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 BarcodeDetector
   API).

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 Enter as 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

 1. Plug the cash drawer’s RJ-11 cable into the printer’s drawer kick port (DK
    port).
 2. Make sure the receipt printer is paired and online in POS → Hardware.
 3. 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:

 1. On the cashier’s device, log into POS as usual.
 2. On the second screen, open the same store URL at /pos/customer-display.
 3. 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 Enter as 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.