4x6 packing slip starter

Shopify 4x6 packing slip template code

Generate compact Shopify Order Printer 4x6 packing slip starter code for thermal printers like Zebra, Rollo, and DYMO.

Quick answer

Shopify 4x6 packing slip template code for Shopify Order Printer

Generate a starter 4x6 template with compact layout, print CSS, optional barcode, and order-note handling. Start in a duplicate Shopify Order Printer template, paste the Liquid in the right placement area, and preview with real orders before saving.

  1. Create a new Order Printer template for your 4x6 packing slip.
  2. Paste the generated full template starter code.
  3. Preview a real order with multiple line items and a shipping address.

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 %}

4x6 packing slip starter

Shopify 4x6 packing slip template code

Generate a starter 4x6 template with compact layout, print CSS, optional barcode, and order-note handling.

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

  • Browser print margins shrink the 4x6 area even when the CSS page size is correct.
  • Long product titles wrap into too many lines and push content onto a second label.
  • Printer driver scaling is set to fit-to-page instead of actual size.

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 warehouses and small stores that want a compact packing slip for thermal labels without moving to a full invoice app.

Uses print CSS with a 4in x 6in page size.

Includes a compact pick/pack row layout for SKU, quantity, and item title.

Adds optional order barcode and customer note sections.

Keeps the full template starter in the copy box so merchants can test from a clean Order Printer template.

Calls out long title wrapping, multi-line addresses, and notes as the main causes of second-label overflow.

Calls out browser print margins and printer driver scaling before merchants blame the Liquid code.

Frames Zebra, Rollo, DYMO, and other thermal printers as test targets rather than guaranteed identical output.

Free tool fit

Use the snippet when the edit is narrow.

Generate a starter 4x6 template with compact layout, print CSS, optional barcode, and order-note handling.

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

Buy a polished 4x6 template or request a custom layout for your printer, browser, and packing workflow.

  • 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 Create a new Order Printer template for your 4x6 packing slip.
  2. Step Paste the generated full template starter code.
  3. Step Preview a real order with multiple line items and a shipping address.
  4. Step Check long product names, missing SKUs, apartment addresses, order notes, and orders with 5 or more items.
  5. Step In the browser print dialog, test actual size or 100% scale before fit-to-page.
  6. Step For Zebra, Rollo, DYMO, or similar printers, confirm the label preset is 4 x 6 inches and margins are zero or as low as the driver allows.
  7. Step Print one test label on the target thermal printer and adjust margins before using it in production.

Problem diagnosis

Match the symptom before changing Liquid.

Use these checks to decide whether the issue is field data, snippet placement, print settings, or a template merge problem.

The 4x6 slip prints on a second label.

Likely cause
Long product titles, multi-line addresses, gift notes, or too many item rows exceed the fixed 4 x 6 inch print area.
Fix
Test one-item, three-item, and five-item orders; shorten optional fields or request a custom layout for bundle-heavy orders.

The layout is too small on Zebra, Rollo, or DYMO.

Likely cause
The browser or printer driver is using fit-to-page, non-zero margins, or the wrong label preset.
Fix
Choose a 4 x 6 preset, print at actual size or 100% scale, and reduce driver margins before editing the Liquid code.

Barcode or SKU rows are hard to read.

Likely cause
The 4x6 template is trying to fit too many columns or optional fields into a compact item row.
Fix
Keep the first version to title, SKU, quantity, and one optional barcode or note field, then test on the target printer.

The barcode is clipped or too close to the label edge.

Likely cause
The printable area from the browser or thermal printer driver is smaller than the CSS page box.
Fix
Reduce nearby columns, keep the barcode away from the edge, and test actual-size printing before adding more fields.

Shipping label expectations do not match the output.

Likely cause
A Shopify Order Printer packing slip is being used when the workflow actually needs a carrier postage label.
Fix
Use this page for warehouse packing slips only; carrier labels still come from shipping or fulfillment software.

FAQ

Common Shopify Order Printer issues

Will this fit every thermal printer?

It is a 4x6 starter. Printer drivers and browser print dialogs can add margins, so test and adjust before using it live.

Should I use fit-to-page or actual size?

Start with actual size or 100% scale. Fit-to-page can shrink the design and make barcodes or item rows harder to read.

What should I check for Zebra, Rollo, or DYMO printers?

Use a 4 x 6 label preset, keep margins at zero or the driver minimum, disable unexpected scaling, and run a real test print before editing the template further.

Why does a long product title push the slip onto a second label?

4x6 space is tight. Shorten displayed titles, reduce optional columns, or request a custom layout for bundle-heavy orders.

How many items can fit on one 4x6 packing slip?

It depends on title length, address length, notes, and optional fields. Test 1-item, 3-item, and 5-item orders before using the layout in the warehouse.

Can I add barcodes and metafields to this template?

Yes. Use the barcode or metafield generators first, then paste their snippets into the 4x6 template.

Is this a shipping label?

No. It is a packing slip template for Shopify Order Printer, not a carrier label or postage label.

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

Metafield Liquid generator

Add metafields to Shopify Order Printer

Best for merchants adding product specs, HS codes, country of origin, VAT notes, wholesale fields, or customer fields to printed documents.

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

Line item properties

print Shopify line item properties

Show gift options, personalization, and bundle details without private fields.

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

PO number invoice

add a PO number to Shopify invoices

Handle B2B purchase order data without repeating it inside item rows.

Open related fix

HS code Order Printer

add HS codes to Shopify Order Printer

Print item-level HS codes from product or variant metafields.

Open related fix

Country of origin invoice

add country of origin to Shopify invoices

Print origin beside customs description, quantity, and HS code.

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

Packing slip template code

Shopify packing slip template code

Build the base pick-pack document for warehouse use.

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

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
  • order.created_at
  • shipping_address
  • line_items
  • line_item.quantity
  • line_item.sku
  • line_item.title
  • note

Common errors

Watch these before saving

  • Browser print margins shrink the 4x6 area even when the CSS page size is correct.
  • Long product titles wrap into too many lines and push content onto a second label.
  • Printer driver scaling is set to fit-to-page instead of actual size.
  • The thermal printer uses a saved preset with non-zero margins.
  • Too many optional fields are added before the base 4x6 layout is proven on real orders.
  • Address lines, gift notes, or bundle names are longer than the compact label can safely hold.
  • A packing slip is mistaken for a carrier shipping label or postage label.

Limits

What this does not replace

  • A 4x6 packing slip is not a carrier shipping label or postage label.
  • Thermal printer drivers and browser print dialogs may still need margin tuning.
  • Zebra, Rollo, DYMO, and browser combinations can render margins slightly differently.
  • Large orders may need a multi-page packing slip instead of forcing every item onto one label.
  • Warehouse-specific layouts with bins, bundles, or custom pick paths should be reviewed manually.