Show options on your packing slip
Optionize saves every option your customer picks onto the order, but Shopify's default packing slip doesn't print them. Add a few lines to your packing slip template and each selection shows under the product, ready for whoever packs the box.
Before you start
This is an edit to your Shopify packing slip template, not a setting inside Optionize. It's safe to try: Shopify keeps a Revert to default button on the template, so you can undo the whole thing in one click.
Add options to the template
- In your Shopify admin, go to Settings → Shipping and delivery.
- Scroll down to Documents and click Templates.
- Click Packing Slip.
- In the code editor, find this line:
{% for line_item in line_items_in_shipment %}
- A little below it, find the block that prints the SKU:
{% if line_item.sku != blank %}
<span class="line-item-description-line">
{{ line_item.sku }}
</span>
{% endif %}
- Paste this straight after that block:
{% for property in line_item.properties %}
{% assign first_character = property.first | slice: 0 %}
{% if property.last != blank and first_character != '_' %}
<span class="line-item-description-line">
{{ property.first }}: {{ property.last }}
</span>
{% endif %}
{% endfor %}
- Click Preview to check the layout, then click Save.
Each option now prints under the product name, in the same style as the SKU. The label that prints is the Option name you set on each option, so a customer's engraving text shows as "Engraving: Happy Birthday".
Why the underscore check matters
Optionize carries its add-on data in a hidden property whose name starts with an underscore. Shopify hides properties like that in your admin, but Liquid still passes them to the template.
The first_character != '_' line skips them. Without it you can end up with a long line of code printed on every slip. It also skips hidden properties added by your theme or by other apps, so it's worth keeping.
Where paid add-ons show up
Paid add-ons become their own line items on the order. The add-on products Optionize creates don't require shipping, so Shopify puts them in a separate group, and they usually won't appear on the packing slip for the physical shipment. That's fine: the customer's selections still print on the main product, which is what your packer needs.
If you linked one of your own products as an add-on, it follows that product's own shipping setting. A shippable one appears on the packing slip as a normal line item, labelled "Part of:" the main product. See Link add-on products to option values.
Invoices and pick lists
The Invoice and Pick list templates sit in the same Templates list and work the same way. Their line item loops are written a little differently (the invoice loops over order.line_items), so paste the same block inside their own loop, next to where the product title prints.
Still stuck? Message us from the chat in the app and we'll help.
Related: Track orders and add-on revenue and How add-ons appear in the cart and at checkout.