Ecom Store Pro

How to Customize a Shopify Packing Slip Template

Edit Shopify's packing slip template: add a logo, change the address, print notes and SKUs, preview, revert, and know when Order Printer fits better.

Listen to a short brief of this article
Hands-free while you multitask

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.
Shopify Help Center — Customizing packing slips ·
In Shopify adminOpen in your store
  1. Settings
  2. Shipping and delivery
Documents in a store with early-access document templates, as of November 2026: a list, not one item.

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 templateEarly-access document templates
What Documents showsOne item called Packing slip templateA list of templates, such as a pick list, a packing slip and an invoice
Packing slip templatesOneMore than one allowed, such as one for wholesale and one for retail orders
What Print packing slips usesThat templateThe template set as the default for packing slips
PreviewPreview template buttonChanges 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.

0 of 7 done
  1. In Content > Files, upload the file and note its exact name, including the extension and the capital letters.

  2. Go to Settings > Shipping and delivery and, in Documents, click Packing slip template, or your default packing slip template if Documents lists templates.

  3. 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.

  4. Make one change at a time: the logo, the address, product photos or an extra field from the variable reference.

  5. Click Preview template, or in document templates use Preview and pick a real order.

  6. In document templates, select Set as default template for packing slips if Print packing slips should use this template, then click Save.

  7. From an order, print a single packing slip and check it on paper before you print a batch.

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/.

In Shopify adminOpen in your store
  1. Content
  2. Files
As of November 3, 2026, Files shows the type in capitals under the name; don't copy the extension's case from there.
The file name must match exactly
Shopify's caution: the file name in the code must match the uploaded file exactly, including case. To the template, 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 goesWhat you change in the template
Instead of the store nameDelete the to-uppercase paragraph that prints {{ shop.name }} and put the logo code in its place.
Above the store nameAdd a line break inside the shop-title block, before the store name, and paste the logo code followed by <br>.
Next to the store nameReplace 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' }}
In Shopify adminOpen in your store
  1. Settings
  2. Shipping and delivery
  3. Edit template
A document template in Edit: the shop-title block at the top prints {{ shop.name }}, the code the logo recipe replaces.

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.

The recipe uses a filter Shopify marks as replaced
Shopify's Liquid reference says 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:

  1. Find {{ shop_address.summary }}. If it isn't there, look for the longer line that strings together shop_address.address1, city, province_code, zip and country.
  2. Highlight that code and delete it.
  3. Type the address you want printed in the empty space, then preview and save.
In Shopify adminOpen in your store
  1. Settings
  2. Shipping and delivery
  3. Edit template
Scrolled to the footer: this {{ shop_address.summary }} line is the code the steps above replace.

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 pageWhere it says to edit the store address
Customizing packing slipsSettings > General, where you edit your store information
Packing slip variable referenceThe 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
VariableWhat it printsAdd it when
order.noteThe note attached to the order, if one existsBuyers leave instructions you pack by; how buyers add them is in our order note FAQ.
order.name / order.order_numberThe order number with your prefixes and suffixes, or without themYou use a custom number format; see changing the order number format.
line_item.sku, vendor, variant_title, shipping_quantityThe SKU, vendor, variant and the quantity in this shipmentPackers pick by SKU or a shipment holds only part of a line
line_item.propertiesThe product properties, such as personalization a buyer enteredYou 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 toYou sell bundles; see native bundles versus bundle apps.
includes_all_line_items_in_orderWhether this shipment holds every item in the orderOrders 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.

In Shopify adminOpen in your store
  1. Orders
  2. Order
  3. More actions
In this store the slip prints from the Print group of the order's action menu, not a separate Print button.

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.

In Shopify adminOpen in your store
  1. Orders
  2. Print
  3. Print multiple documents
As of November 3, 2026, this dialog sets the paper size, documents per page and which documents print.

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.
Shopify Help Center — Creating and editing order document templates ·

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 templateEarly-access document templates
Go back to Shopify's defaultRevert to default; Shopify's printing page doesn't say whether it can be undoneRevert to default, shown only on templates you've changed; it can't be undone
Keep a copy before editingKeep your own copy of the codeDuplicate: a copy you can change without affecting the original
DeleteNo delete step on the packing slip pages we readAllowed, 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.

What we looked for and did not find
On November 3, 2026 we read Shopify's packing slip pages (customizing, variable reference, printing), the order document templates pages (overview, creating and editing, printing), the printing shipping documents page, the Translate & Adapt and store languages pages, Shopify's Liquid filter and TranslatableResourceType references, and the Shopify and Shopify developer changelogs. On those pages we did not find a packing slip variable for a logo, barcode, metafield, payment, shipping method, tracking, weight, language or return address, a statement of which language a printed slip uses, or a date for replacing the single Packing slip template with document templates. The absence is the finding; it is not proof that no such page exists.

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 templateShopify Order Printer
TemplatesOne, or several per type with early-access document templatesUp to 15; starts with Invoice, Packing slip and Pick list
BarcodesNo barcode variable in the variable reference we readAn <s-barcode> code block
Metafields, localesNot in the variable reference we readmetafields, enabled_locales, translated_country_name in its variable list
Bulk printingUp to 1,500 documents per page size with early-access document templatesUp to 50 orders without going into the app
Back to the defaultRevert to defaultCopy 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.

Your Next Step by Stage
Thinking about outsourcing packingIf a 3PL will pack your orders, compare its costs with packing in-house before you polish the slip.3PL vs in-house fulfillment
Printing labels tooSee what Shopify Shipping labels cost before you print slips and labels from the same order.Shipping label costs
Need more than one templateGet a scoped quote for separate wholesale and retail slips, invoices or Order Printer templates.Talk to a Shopify developer

Packing Slip Template, Coded and Previewed

We write the logo, address and line-item changes into your packing slip template, keep a duplicate or a copy of your code to fall back on, and preview the result before you print.

Get a Shopify Developer

Frequently Asked Questions

Go to Settings > Shipping and delivery and scroll to Documents. If you see an item called Packing slip template, click it to open the code. If Documents shows a list of templates instead, your store has early-access document templates; click your packing slip template, and edit the default one if there are several, because Print packing slips uses the default.
Upload the logo in Content > Files and note the exact file name. Open the packing slip template, delete the paragraph that prints {{ shop.name }}, and paste Shopify's line with your file name, such as {{ 'shop_logo.png' | file_img_url: 'small' | img_tag: 'Logo' }}. Preview, then save. Shopify also gives recipes for the logo above or next to the name.
Check the file name first. Shopify says it must match exactly, including case, so Shop_Logo.png and shop_logo.png are different files to the template. Check the extension too. The variable reference also says images are only allowed from cdn.myshopify.com, so a logo hosted elsewhere won't load; upload it to Content > Files instead.
Yes, if your store has early-access document templates: Shopify gives the example of one packing slip for wholesale orders and another for retail, and the default is the one Print packing slips uses. Stores with the single Packing slip template have one. Shopify Order Printer, a separate app, allows up to 15 templates of its own.
To change only the slip, open the template, find {{ shop_address.summary }} or the longer shop_address line, delete it and type the address you want. To change the store address itself, Shopify's pages point to two places, Settings > General and the Shipping origin, so preview a slip afterwards to see which address it picked up.
Yes. The packing slip variable reference lists order.note, which prints the note attached to the order if one exists. Add it to the template where your packers will see it, for example under the order number, then preview before you save, in document templates with an order that has a note. Without a note on the order, nothing prints there.
The built-in template's variable reference, as we read it on November 3, 2026, lists no barcode variable. Shopify Order Printer supports barcodes in its own templates with an s-barcode code block, and QR codes as well. If packers scan slips, build the packing slip in Order Printer rather than in the built-in template.
In the single Packing slip template, click Revert to default to return to Shopify's original; Shopify's printing page doesn't say whether that can be undone, so keep a copy of your code first. In early-access document templates, Revert to default replaces the content with the default and can't be undone. Duplicate a template before editing it, so your earlier version survives a revert.
In early-access document templates, each template can have up to 135,000 characters of code, and the limit applies to invoice, packing slip and blank templates; a pick list has no code. A logo, an address change and a few extra fields add only a few lines of code.
No. The built-in template takes HTML, CSS and Liquid, which covers a logo, the address, photos and the fields in its variable reference. Order Printer, free on the App Store as of November 3, 2026, fits when you need barcodes or metafields, or, if your Documents section shows a single Packing slip template, more templates or an invoice, and it needs the same skills.
Yes, with a CSS file you upload to Shopify. Upload it in Content > Files, copy its URL and add a stylesheet link to the template. Shopify warns that CSS files hosted outside Shopify won't render properly, and its tip says styling templates with CSS needs advanced knowledge of HTML and CSS. Preview every change before saving.
In early-access document templates, Shopify says packing slips can print as thermal, letter or A4. Those sizes match Shopify's shipping documents: thermal 4 x 6 inch, letter 8.5 x 11 inch, A4 8.3 x 11.7 inch. Stores with the single template print from the order or Orders page with Print > Print packing slips, and those steps name no paper format.
About This Article
Shopify Developer & Editorial Director
9+ years with Shopify since 2017

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 Policy

Some 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.

Continue Learning

What to Read Next

Stay updated

Get notified about new articles

Subscribe to receive updates when we publish new Shopify guides and insights.