# Zebra Browser Print

Bizuno uses [Zebra Browser Print](https://www.zebra.com/us/en/support-downloads/printer-software/printer-setup-utilities/browser-print.html)
to send ZPL/EPL thermal labels from a browser to a locally-attached Zebra
printer (e.g. FedEx labels generated by the shipping manager). Browser Print
is Zebra's free, sign-free replacement for the previously used QZ Tray.

## Required client-side install

End users with a Zebra printer must install Zebra Browser Print on the same
machine that has the printer attached.

- Search Zebra support for "Browser Print" (the canonical download URL has
  moved at least once; safest path is from <https://support.zebra.com/> →
  search "Browser Print"). Available for Windows, macOS, Linux, ChromeOS.
- After install, the local service exposes `https://localhost:9101` (and
  `http://localhost:9100` for older configurations). Bizuno's bundled JS
  picks the right transport automatically.
- Open the Browser Print app and confirm at least one Zebra printer shows
  up in its list. The Bizuno JS calls `getLocalDevices('printer', ...)` and
  uses the first printer reported — if Browser Print sees no printer,
  Bizuno will surface "No Zebra printer found" and won't retry.

## Required server-side files

Bizuno expects the following Zebra-supplied JS in this directory:

- `BrowserPrint-3.x.x.min.js` — core library (required)
- `BrowserPrint-Zebra-1.x.x.min.js` — Zebra-specific helpers (optional, only
  needed if you extend the shipping manager to do device setup/calibrate)

These files are NOT redistributed in this repo by default — download them
from Zebra's developer portal and drop them here. The `ship.php` thermal-
print path looks for `BrowserPrint-3.x.x.min.js` (any 3.x patch version
works, just rename to match what's referenced in `controllers/shipping/ship.php`).

When updating, keep the version number in the filename and update the
`<script src=...>` reference in `controllers/shipping/ship.php` accordingly.
