show item prices on packing slip - line_item.properties?

Topic summary

Goal: display per-item prices on Shopify packing slips using Liquid templating within the packing slip template.

Early approach: edit the template and, inside the for loop over line_items_in_shipment, match each displayed line item to order.line_items (often by SKU) and output item.final_price | money. Several users confirmed it worked, with formatting tweaks (e.g., placing price under SKU).

Order totals: add order.subtotal_price, order.tax_price, order.shipping_price, and order.total_price after the loop to show invoice-like totals.

Breakages/changes: many later reports show incorrect pricing (all items same, last item’s price, variant issues). Community notes suggest Shopify changed available line_item fields in packing slips; unique identifiers (sku, id, variant_id) may be unavailable when iterating line_items_in_shipment. The official variable list for packing slips is limited.

Workarounds: match by title + variant_title to fetch item.final_price from order.line_items (works unless duplicate names/variants). Another shared method maps original_price from order.line_items, and several customized templates were posted.

Open issues: line-item subtotals (qty × price), per-line discounts, sale/discounted pricing accuracy, alignment/styling, and adding fulfillment location/contact number. Some recommend invoice apps (e.g., drag‑and‑drop editors). Status: ongoing; code snippets and attachments are central; no official Shopify resolution noted.

Summarized with AI on December 12. AI used: gpt-5.

To save anyone the bother of investigating this further… These are the only variables available on a packing slip.

Obviously this is just a hack to get around something like line_item.original_price not being available, so Shopify, just make that available please!

The hack no longer works because Shopify have removed some of the parameters of the line_item object that they suggest ARE genuinely available on their docs page.

It looks like anything that makes line_item unique (key, id, sku & variant_id params), are all unavailable when looping through: line_items_in_shipment.

Started my first Shopify site a little while ago and already seen this identical confusing, undocumented behaviour on handling blogs in templates:

  • Docs suggests it object is available
  • Community post still exists referencing legacy method
  • Try method, it doesn’t work, looks like Shopify changed how it works
  • Find other community posts complaining about it no longer working
  • No follow up from Shopify staff clearing up the issue on community post
2 Likes