Revert Creations · Shopify field guide 03Personalization → packing slip
REVERT CREATIONSFree production-sheet template →
For engraving, embroidery, printing, and personalized goods

Print Shopify line-item properties.

If a customer entered an engraving, monogram, color, or other item-level choice, Shopify can print that public value on the packing slip. The useful part is a small Liquid loop—not another export.

Where to edit

Use Shopify's document template.

  1. In Shopify admin, open Settings → Shipping and delivery.
  2. In Documents, open Packing slip template.
  3. Locate the existing line_items_in_shipment loop or add the complete example below where item details should appear.
  4. Preview with an order that contains real personalization values, then save.

A packing slip is generated for a shipment, so shipping_quantity can be more accurate than the order's total item quantity when fulfillment is split.

Copyable Liquid

Print only public, nonblank choices.

This complete loop prints the shipped item, shipped quantity, optional SKU, and every nonblank property whose name does not begin with an underscore.

{% for line_item in line_items_in_shipment %}
  <section class="production-line-item">
    <h2>{{ line_item.title | escape }}</h2>
    <p>
      Quantity: {{ line_item.shipping_quantity }}
      {% if line_item.sku != blank %}
        · SKU: {{ line_item.sku | escape }}
      {% endif %}
    </p>

    {% for property in line_item.properties %}
      {% assign property_first_character = property.first | slice: 0 %}
      {% unless property.last == blank or property_first_character == '_' %}
        <p>
          <strong>{{ property.first | escape }}:</strong>
          {{ property.last | escape }}
        </p>
      {% endunless %}
    {% endfor %}
  </section>
{% endfor %}

If your existing template already loops through line_items_in_shipment, copy only the inner for property block into the item markup. Do not nest a second item loop accidentally.

The complete example is also available as a reusable, MIT-licensed file in the open-source GitHub repository.

Document boundary

A packing slip is not a production sheet.

Packing slips travel with shipments and commonly contain customer and address information. That can be appropriate for packing and delivery, but it is usually more information than an engraver, printer, sewer, or assembler needs at the bench.

Use the packing-slip edit when the customer should receive the personalization details. Use a separate production sheet when the workshop needs a narrow artifact that avoids carrying unrelated customer data through production.

Troubleshooting

When nothing prints.

  • Confirm the customization is stored as a line-item property, not a cart attribute or product metafield.
  • Preview an order where the property value is present and the item belongs to the current shipment.
  • Property names beginning with _ are intentionally excluded by this example.
  • If a value is an uploaded-file URL or complex object, test its printed output before relying on it at the bench.

Want the Liquid block prepared for your real field names? Buy the fixed-price packing-slip setup.

When manual document editing stops being enough

BenchCue makes a separate maker-ready sheet.

BenchCue carries item, quantity, SKU, and public customization properties from the Shopify order into a focused production sheet. It is $7/month with a seven-day trial. Shopify App Store review is currently pending.

See BenchCue →