Want to print Zebra labels from Shopify — barcodes, price tags, or shipping labels — straight from your store data? The short answer: Shopify handles receipts and shipping output on POS hardware, but for custom barcode and price labels you pair a label app with a small “print bridge” that talks to your Zebra printer. This guide walks through the options and a clean setup.
What “printing Zebra labels” actually involves
Three pieces have to line up:
- A Zebra printer that speaks ZPL (Zebra Programming Language) — e.g. a ZD421, GK420d, or any Link-OS model.
- A label design turned into ZPL, with your product data (title, SKU, price, barcode) dropped into it.
- A connection from wherever you click “print” (usually a browser) to the physical printer.
Shopify gives you the data. It does not give you a visual ZPL label designer or a generic way to stream ZPL to a desktop printer — that is the gap apps fill.
Your options
- Shopify’s Retail Barcode Labels app — good for basic barcode/price labels with fixed layouts. Limited design control and printer support.
- Third-party label apps — several exist (e.g. thermal label printing apps in the App Store). Most ship fixed templates.
- A design-first tool + the Shopify data — you design the exact label you want, then feed Shopify product/order fields into it. This is the flexible route, and the one that also covers price tags, shelf labels, and shipping labels in one place.
If your labels are non-standard (multi-language, your own layout, extra fields, a specific barcode symbology), a fixed-template app will fight you. Design-first wins.
Step-by-step: design once, print from Shopify
Using ThermalDraw (a free browser label designer) as the example:
1. Design the label
Open the editor and drag on the elements you need: a text field for the product name, a barcode (Code 128 is the safe default for SKUs), a price field, and any fixed text or box. Set the media size to match your label stock (e.g. 50 × 30 mm). Save it as a template.
2. Mark the dynamic fields
Anywhere the value comes from Shopify, use a variable like {{title}}, {{sku}}, or {{price}}. These become the template’s input fields — the slots Shopify data fills at print time.
3. Connect Shopify’s data
Map Shopify product fields to the template’s inputs:
| Template field | Shopify source |
|---|---|
{{title}} | Product / variant title |
{{sku}} | Variant SKU |
{{price}} | Variant price |
{{barcode}} | Variant barcode (UPC/EAN) |
Pick a product (or a whole collection) and each item’s values flow into the template.
4. Render to ZPL
The designer resolves the template with the product’s values and produces ZPL — the exact bytes a Zebra printer understands. You can preview the rendered label as an image before printing.
5. Send it to the Zebra printer — the “print bridge”
A cloud/browser app can’t touch a USB printer on its own. You need a local print bridge:
- QZ Tray — runs on the computer with the printer, streams raw ZPL over USB or TCP, prints silently (with a signed certificate).
- Zebra Browser Print / Link-OS
SendFileToPrinter— Zebra’s own agent/REST for networked printers. - PDF/PNG fallback — render the label to an image and use the browser’s print dialog (not silent, but zero setup).
Install the bridge once on each print station and every future print is one click.
Batch printing
For a receiving run or a new collection, select all the products, map them to the template once, and the app renders one label per item and sends the whole set as a single job. No spreadsheets, no exporting.
Shipping labels vs product labels
- Product / barcode / price labels → design them yourself; this is where you have the most freedom and the most pain today.
- Shipping labels → often come as a PDF/ZPL from your carrier or Shopify Shipping; you can still route them through the same Zebra printer via the print bridge.
Takeaways
- Shopify supplies the data; a design-first label tool supplies the layout and the ZPL.
- The one piece everyone underestimates is the print bridge from browser to printer — set it up once.
- Prefer variables + field mapping so the same template works for every product and every batch.
Ready to try it? Design a label in the free ThermalDraw editor → — export ZPL, preview it, and wire it into Shopify.
Frequently asked questions
Can Shopify print to a Zebra thermal printer directly?
Shopify POS prints shipping and receipt output to supported hardware, but it does not natively design and print custom ZPL product/barcode labels. For that you use an app plus a local print connection to the Zebra printer.
Do I need to learn ZPL to print labels?
No. A label designer generates the ZPL for you from a visual template. You only touch raw ZPL if you want to hand-tune the output.
How do I send ZPL from a browser to a USB Zebra printer?
Use a local print bridge such as QZ Tray or Zebra Browser Print. It runs on the computer attached to the printer and streams the ZPL to it over USB or the network, so a web app can print silently.
Can I print a whole batch of product labels at once?
Yes. Select the products (or a collection), map each product's fields to a label template, and the app renders one label per item and sends them to the printer in a single job.
Design your label — free
Drag-and-drop in the browser, preview it, export ZPL / DPL / ESC/POS. Pay only to print at scale.
Open the editor →