Overview
The Zebra ZD230D prints 4" × 2" food‑item labels showing each prepared item's name, allergens, and order details. One label is printed per item line in the order, repeated by quantity — three burgers in an order produce three labels. Delivery orders also print a single bag‑level "header" label first with the customer's address, total, and payment status.
Why this matters: UK food labelling rules (Natasha's Law) require allergen information to be available for every prepared item. A printed label per item gives staff and customers consistent, scannable allergen info at the point of handover.
Before you start
You will need:
- A Zebra ZD230D (4‑inch desktop label printer)
- A roll of 101 mm × 50 mm (4" × 2") direct‑thermal labels
- A connection between the terminal and the printer:
- Web terminals: any connection Windows can drive — USB, Ethernet, or Wi‑Fi — because the POS prints through the JSPM driver and addresses the printer by its Windows printer name
- Android terminals (e.g. Sunmi): Ethernet or Wi‑Fi only. The POS prints directly to the printer's IP, so the terminal and printer must be on the same network. USB is not supported on Android
- For Android only: both TCP port 9100 and port 631 open between the terminal and the printer. Brand‑new ZD230Ds now ship with IPP‑only firmware (PAPPL) that closes port 9100 and prints only over IPP on 631 — the POS handles either transport automatically, but if your network blocks 631 you'll need to open it
- Allergens configured against your products in Back Office (otherwise every label prints "Check menu for allergens")
Note: The ZD230D ships in ZPL mode by default. If you've changed it to EPL or Line mode, switch it back — see Troubleshooting below.
1. Physically attach the printer
- Load the label roll following Zebra's quick‑start guide that came in the box.
- Connect power and either Ethernet or Wi‑Fi.
- Hold the FEED button for ~5 seconds to print the printer's configuration label. Note the IP address — you'll need it in step 3.
2. Web terminal: install the JSPM driver
If your POS terminal runs in a browser, the Zebra needs to be installed as a Windows printer first, with JSPrintManager v6 mediating raw print jobs.
- Install the Zebra Windows driver from zebra.com for the ZD230D.
- Add the printer in Windows Settings > Bluetooth & devices > Printers & scanners > Add device using its IP.
- Make sure JSPrintManager v6 is running (the POS shows a banner if it isn't, with a one‑click Download button).
Note: You can skip this step on Sunmi Android terminals — the POS sends ZPL straight to the printer over TCP 9100 (older firmware) or IPP on 631 (newer PAPPL firmware), picking whichever the printer accepts.
3. Enable the label printer for this terminal
In Back Office, open Stores > Devices, pick the terminal, and turn on Label printer. Save and reload the POS so it picks up the new flag.
4. Pick the printer in POS Settings
- In the POS, go to Settings > Printers.
- The new Label Printer (Zebra ZD230D) section appears once the terminal flag from step 3 is on.
- Click Discover to scan for printers, then pick the Zebra from the list (its IP on Android, its OS printer name on Web). On Android, each discovered printer shows a small IPP or Raw 9100 chip — both work, the chip just tells you which transport the printer is using.
- Click Print test label. A 4 × 2 sample label should emerge within a few seconds with "Test Label" and a fake allergen list.
If the test label prints, you're done — real orders will start printing allergen labels automatically. See When labels print below for exactly when that happens.
When labels print
Labels only print for off‑premise orders — delivery, collection, and takeaway. Eat‑in and table orders are skipped (staff hand the food over directly, so allergen labels aren't needed).
The exact moment labels fire depends on whether your store uses a Kitchen Display Screen (KDS):
- With KDS: labels print the first time any item on the order is marked prepared on the KDS. That way labels are ready as the kitchen finishes the food.
- Without KDS: labels print when the order moves to Ready to dispatch (delivery) or Ready to collect (collection/takeaway) on the Track screen.
- Manual override: tapping Send Order from the POS prints labels for any order regardless of type or status — use this if you ever need to re‑print or print before the normal trigger.
Note: Each order only prints labels once. If the order is updated and re‑sent through the kitchen, labels are not re‑triggered automatically — use the manual Send Order action.
What gets printed
Labels follow a reference layout optimised for stacked‑bag handover:
- Delivery orders start with one header label:
DELIVERY #<order>, the customer's name and phone, the full address, the total, and aPAID/UNPAIDbadge. Stick this on the outer bag. - Every off‑premise order then gets one label per item line, repeated by quantity (three burgers ⇒ three labels). Each label shows:
- Order number rotated 90° down the left edge so staff can scan a stack of bags at a glance.
- Product name and variant in an inverted (white‑on‑black) band along the top.
- Added options as plain lines, and removed options as bold
NO Xso misses are obvious to whoever's preparing the bag. - Full prep instructions, no truncation.
- Item index
n/N(e.g.2/3) in the corner so staff can audit a bag against the order. - Allergens in bold (or "Check menu for allergens" if not configured).
- Footer:
Placed HH:mm − Due HH:mm. Collection and takeaway labels also show the last 4 digits of the customer's phone number for handover matching.
Note: Half & Half items render as a single two‑column label, not two separate labels — both halves stay on one physical sticker so they end up on the same pizza box.
Troubleshooting
The label prints blank or as garbled characters
The printer is in EPL/Line mode instead of ZPL. Hold PAUSE + CANCEL while powering on the printer to reset, or use Zebra Setup Utilities to switch the language back to ZPL.
Nothing prints, no error
Check the IP/printer name in Settings > Printers. From the same network, ping the IP — if it doesn't reply, the printer is offline. On Android, also check that either TCP 9100 or 631 is reachable to the printer — newer ZD230Ds with PAPPL firmware only accept 631. On Web, check the JSPrintManager banner is gone (no "JSPrintManager Not Found" warning).
Discover finds the printer but it shows an IPP badge — is that right?
Yes. Brand‑new ZD230Ds from Zebra now ship with PAPPL firmware which only listens on port 631 (IPP), not the older port 9100. The POS picks the right transport automatically — if labels print, ignore the badge, it's just informational.
Labels print but allergens always say "Check menu for allergens"
The store hasn't tagged products with allergens in Back Office. Open Catalog > Tags, mark each allergen tag's allergen flag on, and assign tags to the relevant products. Place a new order to verify.
Labels are misaligned or cut off
Run the printer's auto‑calibration: hold FEED for ~10 seconds until it cycles through several labels. This re‑measures the gap between labels.
Quantity 3 only prints 1 label
The label printer is configured but the order only had a single OrderProduct line with quantity 3 — the POS prints one label per copy. If that's what you want, you're set; if you wanted three different items, check the order on the Track screen.