Packing slip template code

Shopify packing slip template code

Create packing slip starter code for Shopify Order Printer with item rows, SKUs, quantities, shipping details, notes, and print CSS.

Quick answer

Shopify packing slip template code for Shopify Order Printer

Generate a compact packing slip starter and copy the install steps. Start in a duplicate Shopify Order Printer template, paste the Liquid in the right placement area, and preview with real orders before saving.

  1. Back up your current packing slip template.
  2. Paste the starter code into a new Order Printer template.
  3. Preview orders with one item, many items, notes, and missing optional fields.

Copy-ready example

Starter Liquid pattern

Use this as a visible pattern, then use the generator below to adjust the exact field, fallback text, layout, and test notes.

<style>
  @page { size: 4in 6in; margin: 0.12in; }
  body { font-family: Arial, sans-serif; font-size: 11px; }
</style>
<strong>{{ order.name }}</strong>
{% for line_item in line_items %}
  <p>{{ line_item.quantity }} x {{ line_item.title }}</p>
{% endfor %}

Packing slip template code

Shopify packing slip template code

Generate a compact packing slip starter and copy the install steps.

This starter uses 4in x 6in print CSS. Browser print dialogs and thermal printer drivers can still add margins.
Standard order with one clear product row.
Need this 4x6 layout adjusted for your printer?

Thermal printers, browser scaling, long titles, and addresses can all change the fit, so the fix is scoped around your real label output.

Adjust this 4x6 layout
Validate a 4x6 starter pack

Use this when the free starter is close but you want a polished 4x6 template pack before custom work.

Request 4x6 starter pack

Paid feature signals

Generated Liquid

Copy-paste code

<style>
  @page {
    size: 4in 6in;
    margin: 0.12in;
  }

  body {
    margin: 0;
    font-family: Arial, sans-serif;
    font-size: 11px;
    line-height: 1.3;
    color: #111;
  }

  .opk-slip {
    width: 100%;
  }

  .opk-header,
  .opk-ship-to,
  .opk-items {
    border-bottom: 1px solid #111;
    padding-bottom: 8px;
    margin-bottom: 8px;
  }

  .opk-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
  }

  .opk-order-name {
    font-size: 18px;
    font-weight: 700;
  }

  .opk-barcode {
    max-width: 1.5in;
    text-align: right;
  }

  .opk-items table {
    width: 100%;
    border-collapse: collapse;
  }

  .opk-items th,
  .opk-items td {
    padding: 4px 0;
    text-align: left;
    vertical-align: top;
  }

  .opk-qty {
    width: 28px;
    font-weight: 700;
  }

  .opk-item-title {
    overflow-wrap: anywhere;
  }

  .opk-sku {
    width: 82px;
    font-size: 10px;
  }

  .opk-muted {
    color: #555;
  }
</style>

<div class="opk-slip">
  <div class="opk-header">
    <div>
      <div class="opk-order-name">{{ order.name }}</div>
      <div>{{ order.created_at | date: "%b %d, %Y" }}</div>
    </div>
    <div class="opk-barcode">
      <s-barcode value="{{ order.name }}" />
    </div>
  </div>

  <div class="opk-ship-to">
    <strong>Ship to</strong><br>
    {{ shipping_address.name }}<br>
    {{ shipping_address.address1 }}{% if shipping_address.address2 != blank %}, {{ shipping_address.address2 }}{% endif %}<br>
    {{ shipping_address.city }}, {{ shipping_address.province_code }} {{ shipping_address.zip }}<br>
    {{ shipping_address.country }}
  </div>

  <div class="opk-items">
    <table>
      <thead>
        <tr>
          <th class="opk-qty">Qty</th>
          <th>Item</th>
          <th>SKU</th>
        </tr>
      </thead>
      <tbody>
        {% for line_item in line_items %}
          <tr>
            <td class="opk-qty">{{ line_item.quantity }}</td>
            <td class="opk-item-title">{{ line_item.title }}</td>
            <td class="opk-sku">{{ line_item.sku | default: "No SKU" }}</td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
  </div>

  {% if note != blank %}
    <div class="opk-note">
      <strong>Order note</strong><br>
      {{ note }}
    </div>
  {% endif %}
</div>

Install wizard

Place the snippet before testing output.

1
Template area

New full template

2
Paste target

Replace a duplicate 4x6 test template, not the live invoice first.

3
Test order

One, three, and five item orders on the target printer

Paste location

Use this as a duplicate full template first, then tune margins in the browser and printer driver.

Test checklist

  • Duplicate the Shopify Order Printer template before editing the live one.
  • Preview with the regular order.
  • Test actual size or 100% scale before fit-to-page in the print dialog.
  • Print or save one test preview before using the template in production.

Common failure

  • Using invoice-only content on warehouse packing slips.
  • Forgetting to test long product names and multi-item orders.
  • Pasting line item fields outside the loop that renders products.

Mock preview

#1048|||| ||| ||||
Avery Chen
218 Market Street, Austin, TX
2Blue ceramic mugMUG-BLUE-01

Pack with care. Gift note included.

Use case

When to use this tool

Best for stores that want a warehouse-friendly packing slip without a monthly PDF invoice app.

Focuses on warehouse fields: SKU, quantity, item title, address, and notes.

Uses Shopify Order Printer Liquid structure.

Works as the base page for barcode, metafield, gift note, and order note additions.

Free tool fit

Use the snippet when the edit is narrow.

Generate a compact packing slip starter and copy the install steps.

  • You know which Shopify Order Printer template you want to edit.
  • You can test in a duplicate template before touching the live one.
  • The field or layout change maps to the Liquid objects listed on this page.

Manual fix fit

Request help when placement is risky.

Get your existing packing slip cleaned up with fields placed in the right Liquid loops.

  • Your current template already has custom loops, tables, CSS, or app-specific fields.
  • The snippet works in isolation but prints blank, repeats, or breaks layout in your real template.
  • The document is customer-facing, B2B, VAT, customs, or warehouse-critical and needs careful test notes.

Install steps

Copy into Shopify Order Printer carefully.

The preview uses sample data. Always test the template with real orders before using it for fulfillment, accounting, customs, or customer-facing documents.

  1. Step Back up your current packing slip template.
  2. Step Paste the starter code into a new Order Printer template.
  3. Step Preview orders with one item, many items, notes, and missing optional fields.
  4. Step Only then add barcode or metafield blocks.

FAQ

Common Shopify Order Printer issues

Can I hide prices on this packing slip?

Yes. A packing slip usually does not need prices, and this starter focuses on pick-pack fields.

Can I add barcode rows later?

Yes. Use the barcode generator and paste the line item snippet inside the item table.

Does this work with bundles?

Basic line items work. Bundle apps may add line item properties or custom fields that need a manual code fix.

Related exact fixes

Follow the next likely Order Printer problem.

These links connect adjacent search intents, such as blank metafields, item-level customs fields, B2B invoice data, and one-off template fixes.

Barcode snippet generator

Add a barcode to a Shopify packing slip

Best for merchants who need a scannable order number, SKU, variant barcode, or tracking number on a packing slip without installing a full PDF invoice app.

Open related fix

Line item properties

Show Shopify line item properties in Order Printer

Best for merchants whose product options, personalization notes, bundle details, or gift messages are stored as line item properties instead of metafields.

Open related fix

Gift note packing slip

Show Shopify gift notes on a packing slip

Best for merchants whose gift messages or gift wrap choices need to print clearly for the packing team without showing hidden app metadata.

Open related fix

Order note packing slip

Show Shopify order notes on a packing slip

Best for merchants who need checkout notes, delivery instructions, gift messages, or packing instructions printed once on a packing slip.

Open related fix

4x6 packing slip starter

Shopify 4x6 packing slip template code

Best for warehouses and small stores that want a compact packing slip for thermal labels without moving to a full invoice app.

Open related fix

Metafield Liquid generator

fix blank Shopify Order Printer metafields

Choose order, customer, product, or variant paths before pasting Liquid.

Open related fix

Commercial invoice fields

Shopify commercial invoice template fields

Place HS code, origin, customs description, and EORI notes in the right row.

Open related fix

VAT invoice fields

Shopify VAT invoice template fields

Add VAT IDs, tax notes, and B2B invoice fields with cautious scope.

Open related fix

Common Order Printer fixes

Keep editing the same Shopify template.

These are the highest-signal internal paths for merchants who need template code, packing slip layout, barcodes, metafields, or 4x6 print fixes.

Template code generator

free Shopify Order Printer template code generator

Start with a printable template before adding fields.

Open tool

Barcode snippet generator

add a barcode to a Shopify packing slip

Print order, SKU, variant, tracking, or QR codes.

Open tool

Metafield Liquid generator

Shopify Order Printer metafields

Print product, variant, order, or customer metafields.

Open tool

4x6 packing slip starter

Shopify 4x6 packing slip template

Test thermal printer layout, margins, and item overflow.

Open tool

Line item properties

Shopify Order Printer line item properties

Show personalization, bundle details, and gift options.

Open tool

Liquid objects

Fields this page usually touches

  • order.name
  • shipping_address
  • line_items
  • line_item.title
  • line_item.sku
  • note

Common errors

Watch these before saving

  • Using invoice-only content on warehouse packing slips.
  • Forgetting to test long product names and multi-item orders.
  • Pasting line item fields outside the loop that renders products.

Limits

What this does not replace

  • This is a packing slip template, not a customer invoice.
  • Carrier labels, postage, and fulfillment purchasing are not included.
  • Highly branded packing slips may require custom CSS work.