The short version
You customize a Shopify packing slip by editing its template code in Settings > Shipping and delivery > Documents, where you can swap the store name for your logo, change the printed address, remove product photos or add fields such as the order note and SKU.
Stores with early-access document templates see a list there instead of one Packing slip template item, and they edit the default template, because that is the one Print packing slips uses.
Upload a logo or CSS file to Content > Files first, preview before you save, and keep a way back: a copy of your code in the single template, a duplicate in document templates, where a revert can't be undone.
For barcodes or metafields, use Shopify Order Printer, a free app as of November 3, 2026, because the packing slip variable reference we read lists neither.
Shopify prints your packing slips from a template you can edit: it is HTML and CSS with Liquid, Shopify's template language, filling in the order details. Change it and you can put your logo where the store name is, print a different address, drop the product photos or add fields such as the buyer's order note and each item's SKU.
Shopify's Help Center gives the recipes. This guide adds what sits on other pages: which of two template models your store has, which fields its variable reference lists and which it doesn't, how to get back to the original, and when Shopify Order Printer is the better tool.
Where Is the Packing Slip Template in Shopify?
Key takeaway
From your Shopify admin, go to Settings > Shipping and delivery and scroll to the Documents section. Shopify's steps then say to click Packing slip template, which opens the template's code.
Not every store sees that item. In our development store, as of November 2026, Documents lists templates instead, and Shopify's customizing guide covers that case in one line:
If the Documents section of your Shipping and delivery settings lists your document templates instead of a Packing slip template item, then click your packing slip template wherever the steps on this page say Packing slip template.
- Settings
- Shipping and delivery
The list belongs to order document templates, which Shopify describes as in early access and rolling out gradually as of November 2026. Those pages, as we read them on November 3, 2026, name no plan, country or date for the rollout, so the Documents section of your own admin is where you tell which model you have:
Which packing slip template model your store has
| Single Packing slip template | Early-access document templates | |
|---|---|---|
| What Documents shows | One item called Packing slip template | A list of templates, such as a pick list, a packing slip and an invoice |
| Packing slip templates | One | More than one allowed, such as one for wholesale and one for retail orders |
| What Print packing slips uses | That template | The template set as the default for packing slips |
| Preview | Preview template button | Changes show as you edit; Preview lets you search for and pick an order |
Shopify Help Center: Customizing packing slips and Order document templates, read November 3, 2026.
When Documents Lists Several Templates
Key takeaway
The recipes later in this guide work in both models. These rules apply to document templates; preview, revert and delete also differ from the single template, as later sections show:
- A new packing slip template starts from Shopify's default packing slip, which you then customize, for example with your logo or a thank-you message.
- You can create more than one template for the same type, such as one packing slip for wholesale orders and another for retail orders.
- To print a template from Print packing slips, select Set as default template for packing slips. If you have several, edit the default one.
- Each template can have up to 135,000 characters; the limit covers invoice, packing slip and blank templates.
- A packing slip template uses the variables in the packing slip variable reference, the same list the single template uses.
The same section of your admin also holds invoice and pick list templates, which is how some stores print invoices without an app; our FAQ explains which stores have invoice and pick list templates.
Edit a Packing Slip Template in Seven Steps
Key takeaway
The order is not cosmetic. A logo line in the template points at a file by name, so the file has to be in your store before the code can find it, and a way back has to exist before you change anything, because in document templates a revert can't be undone (see Revert to Default, Duplicate and Delete).
Tick the steps off as you go; your progress stays in this browser.
Edit a Shopify packing slip template: seven stepsSteps 1 and 3 come before any code change.
Edit a Shopify packing slip template: seven steps
Steps 1 and 3 come before any code change.
In Content > Files, upload the file and note its exact name, including the extension and the capital letters.
Before you tick this off
- The file is in Content > Files, not on another host
- I wrote down the full file name, such as shop_logo.png
Go to Settings > Shipping and delivery and, in Documents, click Packing slip template, or your default packing slip template if Documents lists templates.
Before you tick this off
- I know which model my store has: one item or a list
- In a list, I opened the default packing slip template
In document templates, click Duplicate before you change the template; the copy opens in the editor, so go back to Documents and reopen your default template to edit it. In the single template, copy its code somewhere safe and note where Revert to default is.
Before you tick this off
- In document templates, a duplicate exists; in the single template, a copy of the code exists and I know where Revert to default is
Make one change at a time: the logo, the address, product photos or an extra field from the variable reference.
Before you tick this off
- I changed only the lines the recipe names
- File names in the code match the uploaded files exactly
Click Preview template, or in document templates use Preview and pick a real order.
Before you tick this off
- The logo, address and fields show where I expected
In document templates, select Set as default template for packing slips if Print packing slips should use this template, then click Save.
Before you tick this off
- The template is saved
- In document templates, the template Print packing slips should use is set as the default
From an order, print a single packing slip and check it on paper before you print a batch.
Before you tick this off
- One printed slip looks right
How Do You Add a Logo to a Shopify Packing Slip?
Key takeaway
Start in Content > Files: upload the logo and, when the upload completes, note the file name including the extension, such as .png or .jpg. The file has to live in Shopify, because the variable reference allows images only from https://cdn.myshopify.com/.
- Content
- Files
Shop_Logo.png and shop_logo.png are different files.Then open the template and decide where the logo goes. Shopify's customizing guide has a recipe for each of three places:
Three places to put the logo on a packing slip
| Where the logo goes | What you change in the template |
|---|---|
| Instead of the store name | Delete the to-uppercase paragraph that prints {{ shop.name }} and put the logo code in its place. |
| Above the store name | Add a line break inside the shop-title block, before the store name, and paste the logo code followed by <br>. |
| Next to the store name | Replace the store-name paragraph with the logo code plus a span that prints {{ shop.name }}, then add CSS that sets vertical-align: middle on .shop-title img and .shop-title span. |
Shopify Help Center, Customizing packing slips, read November 3, 2026.
All three use the same line. For the first recipe, delete this block, which prints the store name:
<p class="to-uppercase">
{{ shop.name }}
</p>In its place, type the logo line with your file name. Shopify's example uses a file called shop_logo.png:
{{ 'shop_logo.png' | file_img_url: 'small' | img_tag: 'Logo' }}- Settings
- Shipping and delivery
- Edit template
The file_img_url filter builds the image URL and img_tag wraps it in an image tag with the alt text you give. By default, file_img_url returns the small version of the image, 100 × 100 px, which is the size the recipe asks for. Because the template takes the logo by file name, a new logo means editing the template again; our store logo guide's packing slip section covers that rebrand case.
img_tag has been replaced by image_tag, and it gives no removal date. The packing slip recipe still uses img_tag, so keep Shopify's line as written and preview the slip after any change to it.Change the Address or Store Name on the Slip
Key takeaway
If you only want a different address on your packing slips, edit the template, not your store settings:
- Find
{{ shop_address.summary }}. If it isn't there, look for the longer line that strings togethershop_address.address1,city,province_code,zipandcountry. - Highlight that code and delete it.
- Type the address you want printed in the empty space, then preview and save.
- Settings
- Shipping and delivery
- Edit template
Changing the store address itself is where two Help Center pages, both read on November 3, 2026, point to different settings:
Two Help Center pages, two places to edit the store address
| Help Center page | Where it says to edit the store address |
|---|---|
| Customizing packing slips | Settings > General, where you edit your store information |
| Packing slip variable reference | The Shipping origin in your Shipping and delivery settings, for the shop_address variables |
Shopify Help Center, read November 3, 2026. The customizing page says shop_address.summary references your store address, edited in Settings > General; the variable reference says to edit the shop_address details in the Shipping origin.
While the pages disagree, typing the address into the template sidesteps the question: the slip prints exactly what you typed. If you change a setting instead, save the setting, open a preview of the slip and check which address it shows.
The store name follows a separate rule. If you print shipping labels with a custom sender name, Shopify's shipping documents page says that packing slips for your shipments display your store name rather than a customized name by default, so a different name on the slip is a template edit too: replace {{ shop.name }} with the name you want, the way you replaced the address. Our development store's default template has {{ shop.name }} at the top and again in the footer, so check both.
Whether customers can see your address in the first place is a separate question, answered in our FAQ on whether customers can see your home address.
Product Photos, Extra Fields and Styling
Key takeaway
The rest of the template is a list of line items with the shipping and billing details around it. Three kinds of change follow: fewer photos, more fields and your own styling.
Remove Product Photos
Key takeaway
Product photos print next to each title by default. To drop them, find this block in the template, highlight it and delete it, then preview and save:
{% if line_item.image != blank %}
<div class="flex-line-item-img">
<div class="aspect-ratio aspect-ratio-square" style="width: {{ desired_image_size }}px; height: {{ desired_image_size }}px;">
{{ line_item.image | img_url: effective_image_dimensions | img_tag: '', 'aspect-ratio__content' }}
</div>
</div>
{% endif %}Which Variables Can a Packing Slip Print?
Key takeaway
The packing slip variable reference groups its variables into the store, the store address, the order, the customer, the shipping and billing addresses, and the line items in the shipment. These are the fields most worth adding:
Packing slip fields worth adding
| Variable | What it prints | Add it when |
|---|---|---|
order.note | The note attached to the order, if one exists | Buyers leave instructions you pack by; how buyers add them is in our order note FAQ. |
order.name / order.order_number | The order number with your prefixes and suffixes, or without them | You use a custom number format; see changing the order number format. |
line_item.sku, vendor, variant_title, shipping_quantity | The SKU, vendor, variant and the quantity in this shipment | Packers pick by SKU or a shipment holds only part of a line |
line_item.properties | The product properties, such as personalization a buyer entered | You sell configured products; our product configurator guide covers where those options come from. |
line_item.groups, group.deliverable? | The bundles or add-ons a product belongs to | You sell bundles; see native bundles versus bundle apps. |
includes_all_line_items_in_order | Whether this shipment holds every item in the order | Orders ship in parts and you want a note that other items aren't in this shipment |
Shopify Help Center, Packing slip variable reference, read November 3, 2026. The reference lists line_item.properties but does not describe where they appear on the slip. The personalization example is our gloss on Shopify's Liquid reference for line_item, which says you can add, or allow customers to add, custom information to a line item with line item properties.
Store, address and order fields print the way the default template prints the store name, {{ shop.name }}: the variable name inside double curly braces, so the customer's note is {{ order.note }}. The reference shows line item fields inside the {% for line_item in line_items_in_shipment %} loop, and line_item.groups in its own {% for group in line_item.groups %} loop. includes_all_line_items_in_order is true or false, so the reference uses it in an {% unless %} block.
The reference also shows how to print the current date and time with "now" and a date filter, in the format "%Y-%m-%d %H:%M", which is useful when slips are printed in several batches a day.
Styling With Your Own CSS
You can restyle the slip with a CSS file uploaded to Shopify: upload it in Content > Files, copy its URL and add a stylesheet link to the template. CSS files hosted outside of Shopify won't be properly rendered, and Shopify's tip says styling templates with CSS requires advanced knowledge of HTML and CSS. Shopify's customizing guide has an example link pointing to cdn.shopify.com, while the variable reference allows images only from cdn.myshopify.com. One covers a stylesheet and the other an image, and both files start with an upload to Content > Files; neither page explains why the hosts differ.
Preview, Print and Undo
Key takeaway
The checks below run from preview to print to the way back.
Preview Before You Save
In the single template, click Preview template to see your changes. In document templates, your changes show in the preview as you edit; to preview the template with a specific order, click Preview, then search for and select an order, ideally one with a note, several items or a bundle, so that every field you added has something to print.
Print One Slip or a Batch
Key takeaway
Shopify's printing steps for one order are short: on the order, click Print > Print packing slips; in our development store, as of November 2026, that Print group sits under More actions, as shown below. If an order has multiple shipments, you can print a separate packing slip for each shipment.
- Orders
- Order
- More actions
For a batch, print the first slip on its own and check it on paper, then select the orders on the Orders page and click Print > Print packing slips; our FAQ covers fulfilling Shopify orders in batches. In the Shopify app on iPhone and Android, press and hold on an order, tap the checkbox next to each order you want, and tap Print packing slips. If you have multiple locations, Shopify's bulk steps can ask you to select the location the orders are being fulfilled from.
For early-access document templates, Shopify's printing documents page adds these rules; its Print multiple documents step is where you select the documents and a page size for each:
- Packing slips can be printed as thermal, letter or A4; invoices, pick lists and blank templates as letter or A4.
- Shopify's printing documents page says you can print up to 1,500 documents for each page size.
- Staff need the Manage order information permission to print documents from the order details page or the Orders page.
In our development store, as of November 2026, Print multiple documents showed in the Print menu on the Orders page once an order was selected; the Print group in the single order's menu shown above lists only Print order page and Print packing slips, although Shopify's steps also place Print multiple documents in that group on the order details page.
That item's dialog, shown below, opened with one Paper size menu and every template toggled off; we didn't switch one on, so we can't say whether a page size per document then appears, as Shopify's step describes.
- Orders
- Print multiple documents
Revert to Default, Duplicate and Delete
Key takeaway
Shopify's printing page says you can revert the packing slip back to the default template by clicking Revert to default, and it doesn't say whether that can be undone, so keep a copy of your code first. In document templates, Shopify says the revert is final:
Reverting a template replaces its content with the default content for that document type, and you can't undo it.
In our development store, as of November 2026, the editor's top bar shows the Preview button but no Revert to default; Shopify says Revert to default appears only on templates you've changed.
Your way back, by template model
| Single Packing slip template | Early-access document templates | |
|---|---|---|
| Go back to Shopify's default | Revert to default; Shopify's printing page doesn't say whether it can be undone | Revert to default, shown only on templates you've changed; it can't be undone |
| Keep a copy before editing | Keep your own copy of the code | Duplicate: a copy you can change without affecting the original |
| Delete | No delete step on the packing slip pages we read | Allowed, except for your last packing slip template |
Shopify Help Center: Printing packing slips and Creating and editing order document templates, read November 3, 2026.
What the Packing Slip Variable Reference Doesn't List
Key takeaway
The variable reference is the only list of packing slip variables we found. The pages we read (see the box below) list no variables for:
- barcodes and metafields;
- payment, shipping method and tracking;
- language or locale, and a return address.
The reference we read lists no logo variable either; the logo comes from a file, through the recipe above.
Weight is a special case. Shopify's printing page says packing slips include product information such as SKU number, weight and quantity, while the variable reference we read lists no weight variable, and it says that all available line_item attributes are listed; both were read on November 3, 2026. Until they agree, preview your own default slip, with a real order if your store offers that, and see whether it prints weight before you rely on it.
In Shopify's Admin API, the packing slip template is a translatable resource whose translatable field is its body, and Translate & Adapt's requirements page lists it among resource types its search doesn't support. Which language a printed slip comes out in is not something the pages we read describe. Shopify Order Printer's variable list names enabled_locales under Shop and translated_country_name under Address, and it names no variable for an order's language, so it doesn't settle the question either. The other translation limits are in our Translate & Adapt limits guide.
When Shopify Order Printer Is the Better Tool
Key takeaway
Shopify Order Printer is Shopify's own app for printing and customizing invoices, packing slips, pick lists and other documents. Its App Store listing showed the app as free on November 3, 2026. It differs from the built-in template in these ways:
Built-in packing slip template vs Shopify Order Printer
| Built-in packing slip template | Shopify Order Printer | |
|---|---|---|
| Templates | One, or several per type with early-access document templates | Up to 15; starts with Invoice, Packing slip and Pick list |
| Barcodes | No barcode variable in the variable reference we read | An <s-barcode> code block |
| Metafields, locales | Not in the variable reference we read | metafields, enabled_locales, translated_country_name in its variable list |
| Bulk printing | Up to 1,500 documents per page size with early-access document templates | Up to 50 orders without going into the app |
| Back to the default | Revert to default | Copy the default code from the Help Center back in |
Shopify Help Center (packing slip, document template and Order Printer pages) and the Shopify App Store listing, read November 3, 2026.
Neither route avoids code: Shopify says that to create or edit templates in Order Printer you need to be familiar with HTML, CSS and Liquid. Its logo works differently, as an image URL from Files placed in the template (customizing order templates), and its variable list is longer. Its listing says customizing POS printer receipts is not supported.
Install the current app, not the old one: Shopify says the legacy Order Printer app has been deprecated and is no longer supported or maintained. Our FAQ explains which Order Printer app is the current one. In early-access document templates, invoice and blank templates already share Order Printer's Liquid variables, a list that includes metafields, while the packing slip keeps its own reference.
The Bottom Line
Key takeaway
Check Documents first, because it tells you which model you are editing; in a list, the default setting on the template decides what Print packing slips uses. After that the work is a few lines of Shopify's own code: the logo line, a typed address, a deleted photo block, a field or two from the variable reference. Keep a duplicate or a copy of the original code, preview, with a real order if your store offers that, and move to Order Printer when the slip needs barcodes or metafields, or, in a store with the single Packing slip template, more templates.
Frequently Asked Questions
Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Directs the editorial process behind Ecom Store Pro: sets its topics and the rules every AI-written page must pass before publication.
This page was written by AI. Separate AI agents that did not write it check its figures and claims against official sources and test its links and interactive tools. A human editor sets the site's editorial direction, topics and rules and checks that pages are complete and display correctly, but does not check their facts or edit their text. Details may change — always confirm critical data at shopify.com.
Editorial PolicySome links in this article are affiliate links. If you sign up for a Shopify store through these links, we may earn a commission at no extra cost to you. Read our full advertising policy.
