You are at: Help Library

Tour the JPOS back officeไทยENမြန်မာ--:--

Library — J-POS guides

BOOK 24/25Staff & system

Printer setup

Everything for kitchen/bar/receipt printers lives on this one page — add printers, decide which menu prints to which machine, adjust the receipt/order-ticket layout, and check recent print job status plus the retry history whenever something won't print.

10 steps · Screenshots are from the real J-POS (Thai interface).

Printers

  1. Open the printer settings page

    Settings → Printers (requires the “Manage settings” (settings.manage) permission to get in) — the table lists every printer with its name, IP, port, and enabled/disabled status.

    Each row has buttons to test print, edit, and delete.

    J-POS screenshot: Open the printer settings page
    Open full size
  2. Auto-discover printers on the network

    Press "Scan network for printers (auto-detect)" and the system scans the same network for devices listening on port 9100 (the standard ESC/POS kitchen/bar printer port), then lists every IP it finds so you can tap "+ Add" on each one right away.

    J-POS screenshot: Auto-discover printers on the network
    Open full size
  3. Add a printer manually

    If you already know the IP, or the scan didn't find it, fill in the printer name, IP, and port (default 9100) yourself in the "Add printer" form below, and check "Enabled".

    J-POS screenshot: Add a printer manually
    Open full size
  4. Test print

    The "🖨️ Test print" button sends a plain-text test ticket to that printer — use it to confirm the connection actually works.

    The "🧾 Test receipt" button prints a sample receipt that includes the shop logo — if the logo comes out, that printer supports graphics (raster) printing, which is required for Burmese text.

    J-POS screenshot: Test print
    Open full size
  5. Default printer per station

    The table at the bottom of this tab sets which printer each station (KDS screen, e.g. kitchen/bar) prints to by default — any menu item that hasn't been assigned a printer at the group/category/item level falls back to this default for its station.

    J-POS screenshot: Default printer per station
    Open full size

Print Routing

  1. Assign a printer per menu item

    The menu tree on the "Print Routing" tab lets you set a printer at the group, category, or item level — a lower level always wins (item > category > group > station default). Pick "↑ inherit" to fall back to the level above instead. Next to each item's name, "→ printer name" shows exactly which printer it will actually print to.

    Check multiple items at once and assign a printer to all of them in one go with the "Assign printer to selection" bar at the top.

    J-POS screenshot: Assign a printer per menu item
    Open full size
  2. Set language / output / raster mode per printer

    Each printer has its own order-ticket language settings (Thai/English/Burmese) — Thai always prints first, and EN/MY lines only appear for menu items that actually have a translated name.

    Choose which output(s) a printer accepts: Order tickets, Receipts, or both.

    Turn on "Print order ticket as image (raster)" only for a printer whose Thai/Burmese text comes out garbled — rendering the ticket as an image works on any printer regardless of its character set, at the cost of a slightly slower, larger print job.

    Leave the POS source (posSource) field blank to accept prints from every cashier terminal, with a live order-ticket preview on the right.

    J-POS screenshot: Set language / output / raster mode per printer
    Open full size

Receipt / Order Settings

  1. Configure the receipt layout

    Upload the shop logo, pick a paper width (58 or 80 mm), toggle which fields show on the receipt (address, phone, tax ID, discount, VAT, PromptPay QR, and more), and add your own header/footer text — with a live receipt preview on the right before you save.

    J-POS screenshot: Configure the receipt layout
    Open full size
  2. Configure the kitchen/bar order ticket

    Switch to the "Order Ticket (Kitchen/Bar)" sub-tab — turn on "Print one ticket per item" if you want a separate ticket per menu item, adjust the ticket font size (normal/large/extra large), and pick the printer's code page if Thai text comes out garbled or as Chinese characters — try CP874 (20) first, then test print until it reads correctly.

    J-POS screenshot: Configure the kitchen/bar order ticket
    Open full size

Recent Print Jobs

  1. Check print job status and troubleshoot failed prints

    The "Recent Print Jobs" tab lists every print job (printed / queued / failed) with its error message and how many times it's been retried, if any.

    A failed job is automatically queued for a background retry and logged to print_fail_log — switch to the "Retry history" sub-tab to see whether each attempt was an automatic retry or a manual reprint, and its result. If an automatic retry succeeds, the job disappears from the failed list immediately — the retry history is the only place that still shows it ever failed at all.

    J-POS screenshot: Check print job status and troubleshoot failed prints
    Open full size

Common points of confusion

  • A printer set but disabled doesn't fall through to the level above

    The printer lookup (item > category > group > station default) stops at the first level that has a printer explicitly set, regardless of whether that printer is enabled or disabled — if the assigned printer is disabled, the system does NOT continue up to the next level (e.g. category to group); it jumps straight to the station default instead. To make an item truly inherit from the level above, pick "↑ inherit" there — disabling the printer alone won't do it.

  • Deleting a printer doesn't warn you about menus still pointing at it

    Removing a printer doesn't clear the printer assignment stored on any menu item, category, group, or station that was pointing at it. Once the printer is gone, the system simply can't find it anymore (same as a disabled printer) and silently falls back to the station default or the first enabled printer instead — there's no warning that a menu was still assigned to the deleted printer. Check the "Print Routing" tab after deleting any printer.

  • A receipt-only printer is never picked as the order-ticket fallback

    When nothing else claims a printer, the system falls back to the first enabled printer that accepts "Order" output (labelled "(fallback)") — a printer whose output is set to "Receipt" only is skipped as a fallback for kitchen/bar tickets.

  • You can't turn off Thai or clear every output

    Every printer must keep at least one language enabled — Thai in particular can't be fully turned off (dropping to zero languages snaps it back to Thai automatically). The same applies to output: turning off both Order and Receipt snaps it back to "Order". English/Burmese lines only appear on an order ticket for menu items that actually have a translated name — an item with no translation still shows Thai only, even with that language enabled on the printer.

  • A ✅ on test print doesn't always mean it actually printed

    The test-print result reflects what the printer itself reported back, not just whether the page's request to the server succeeded — you can sometimes get an error message instead of ✅ even though nothing on the page errored. If you see ⚠️, check the short error text shown next to the button for the actual reason.