QuickLabels — Customization guide

How to change what prints on your labels: the Liquid template, footer text, logo and country names.

Basics

All options live in the app under Apps → QuickLabels → Label setup. Changes apply to the next PDF you generate there. Click Save as defaults to make them the settings the Print address labels action on the Orders page uses too.

Variables

The Liquid template (advanced) field decides what prints. The default, {{ order.address_block }}, is the complete shipping address formatted for the destination country. These variables are available:

VariableWhat it contains
order.nameOrder number, e.g. #1042
order.created_atWhen the order was placed (ISO date; format it with the date filter)
order.fulfillment_statusUNFULFILLED, FULFILLED, …
order.customer_nameRecipient name from the shipping address
order.address_blockComplete address, country-formatted, one line per row
order.shipping_address.nameRecipient name
order.shipping_address.companyCompany (may be empty)
order.shipping_address.address1Street line 1
order.shipping_address.address2Street line 2 / apartment (may be empty)
order.shipping_address.cityCity
order.shipping_address.provinceState / region / province name
order.shipping_address.province_codeState / province code, e.g. CA
order.shipping_address.zipPostal code
order.shipping_address.countryCountry name (after any rename, see below)
order.shipping_address.country_codeTwo-letter country code, e.g. DE
order.shipping_address.formattedThe address lines as a list — print them with a for loop (see examples)

Examples

Default — the formatted address

{{ order.address_block }}

Order number above the address

Order {{ order.name }}
{{ order.address_block }}

Build the address from fields, company only when present

{{ order.shipping_address.name }}
{% if order.shipping_address.company != "" %}{{ order.shipping_address.company }}
{% endif %}{{ order.shipping_address.address1 }}
{% if order.shipping_address.address2 != "" %}{{ order.shipping_address.address2 }}
{% endif %}{{ order.shipping_address.zip }} {{ order.shipping_address.city }}
{{ order.shipping_address.country | upcase }}

The formatted lines one by one (same as the default, but you can add to it)

{% for line in order.shipping_address.formatted %}{{ line }}
{% endfor %}

Liquid syntax that works here

The Footer text field prints in a smaller size at the bottom-left of every label — typically your website or a return address. Each line of the field is a line on the label, and Liquid works here with the same variables:

www.yourshop.com
Order {{ order.name }} · {{ order.created_at | date: "%d.%m.%Y" }}

The footer sits below the address. If space is tight, the address shrinks so both fit.

Return address

Type it into the footer, one line per row, and it prints small at the bottom-left of every label:

Return to: Your Shop
Example Street 1
8000 Zurich

Prefer it above the recipient, as many European senders do? Add it as the first line of the Liquid template instead:

Your Shop · Example Street 1 · 8000 Zurich
{{ order.address_block }}

A logo prints at the bottom-right of every label. Images must be hosted on Shopify — the app never stores files itself:

  1. In your Shopify admin, go to Content → Files and upload your logo as a PNG or JPG.
  2. Click the link icon next to the file to copy its URL (it starts with https://cdn.shopify.com/…).
  3. Paste it into Logo image URL in QuickLabels, set Logo height (mm), and click Save as defaults. The app checks the link straight away and tells you if it can't use it.
Keep it small. The logo is embedded in every PDF, so file size matters: a JPG, or a PNG around 300–600 px wide, is plenty for print and keeps PDFs fast. SVG, WebP and GIF aren't supported — export them as PNG first.

The logo's width follows its proportions. On small labels the app caps its size so the address always has room.

Country names

Printing from the Orders page

Select orders on Orders, open More actions → Print address labels, and open the PDF. This uses your saved defaults (template, Liquid, footer, logo, countries). Tick Mark orders as fulfilled there — or in the app — to fulfil them at the same time. On a single order's page the same action is under More actions.

Label sizes

Pick a preset — Avery (US Letter and A4), Dymo, Brother QL (DK rolls) and 4 × 6 in thermal — or choose Custom dimensions and enter your page, label and margin sizes in mm or inches. Tick Show label outlines for a test print to check alignment, then untick it for real labels.

FAQ

Can I print the customer's email address or phone number?

Not at the moment. QuickLabels is approved to access only the shipping name and address of the orders you select — it never reads customer emails or phone numbers, which is also what its privacy policy promises. If a phone number on the label would matter for your courier, tell us; that would need an extra Shopify data-access approval and we'd rather hear who needs it.

Can I paste Liquid code from Shopify's theme or notification templates?

Usually not as-is. Those templates have their own variables (shipping_address, customer, line_items…) and Shopify-only tags and filters (format_address, schema, render…) that don't exist here — Shopify-only tags cause an error, and unknown variables or filters simply print nothing. Use the variables listed on this page instead; the examples above cover the usual layouts.

My labels are 6 × 4 in (landscape), not 4 × 6

Choose Custom dimensions: page size custom, 6 in × 4 in, 1 column × 1 row, label 6 in × 4 in, margins 0. The built-in 4" × 6" Thermal Shipping preset is portrait (4 in wide, 6 in tall).

Can I use HTML or CSS to position things?

No. Labels are plain text drawn straight into the PDF. You control the content (Liquid), alignment, font size, a footer at the bottom-left and a logo at the bottom-right — which covers the layouts most labels need.

Can the logo come from my own website or Dropbox?

No — only Shopify-hosted images (cdn.shopify.com). Uploading under Content → Files takes a minute and keeps your logo in your own store.

Which fonts and characters are supported?

Labels use Helvetica. Western European characters, including accents (é, ü, ñ, ø, ß …), print fine. Letters outside the Latin-1 set — for example ł, č, ş, Cyrillic, Greek, Chinese or Japanese — are currently left out.

Why are some orders missing — or why did I get fewer labels than orders?

Shopify only lets apps see orders from the last 60 days unless the store has approved the app's separate "all orders" permission. QuickLabels asks for that permission — if you installed the app before October 2026, open Apps → QuickLabels once and accept the updated permission prompt; from then on older orders appear in the list and print normally. Until it's approved, older orders don't show in the app's list or search, and when you select them on the Orders page the app tells you which ones couldn't be loaded and still gives you labels for the rest. If a recent order is missing, that's something else: email us the order number.

Why doesn't the name or company print?

The label prints the order's shipping address exactly as entered at checkout. If that address has no name or company, there is nothing to print — check the shipping address on the order in Shopify.

How do I add my return address?

Type it into Footer text (small, bottom-left) or as a line above {{ order.address_block }} in the Liquid template — see Footer text. It's plain text, so just write your address.

Something else?

Email pillgates.dev@gmail.com and include the label size you use and, if relevant, your template.