Skip to main content
All CollectionsIntegrations
Shopify Order Printer
Shopify Order Printer
Clemency Farmer avatar
Written by Clemency Farmer
Updated over a week ago

Shopify Order Printer allows you to print orders, auto-deliver branded invoices, packing slips, returns forms and receipts.

Zapiet - Product Options details can only be added to invoices and packing slips.

Follow the instructions for the version of Order Printer you're using:


Shopify Order Printer

Add the invoice template

  1. In Order Printer, click Templates, then Invoice.

  2. Click Duplicate.

  3. "Invoice Copy" template will open.

    • If you are using the default template, find line 54.

    • If you are using a custom template, we recommend placing our code after the code that displays the line item discount. Please ask your developer for help placing this code.

  4. Append the following code to the code above.

                  <!-- Display item properties here -->
    {% assign hiddenProperties = '_ZapietId,_AdditionalCost,_ProductOptionsBundle' | split: ',' %}
    {% assign propertySize = line_item.properties | size %}
    {% if propertySize > 0 %}
    <br>
    <ul>
    {% for prop in line_item.properties %}
    {% unless hiddenProperties contains prop.first %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% else %}
    {% if prop.first == '_AdditionalCost' and prop.last != '' %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% endif %}
    {% endunless %}
    {% endfor %}
    </ul>
    {% endif %}

  5. Click Save.

Your invoices will include each option your customer has selected and any details added.

Your invoice should look similar to the one below.


Add the packing slip template

  1. In Order Printer, click Templates, then Packing slip.

  2. Click Duplicate.

  3. "Packing slip Copy" template will open. Find the following code.

    <td style="text-align: left;">{{ line_item.title }}

  4. Append the following code to the code above, making sure to place it before </td>.

     <!-- Display item properties here -->
    {% assign hiddenProperties = '_ZapietId,_AdditionalCost,_ProductOptionsBundle' | split: ',' %}
    {% assign propertySize = line_item.properties | size %}
    {% if propertySize > 0 %}
    <br>
    <ul>
    {% for prop in line_item.properties %}
    {% unless hiddenProperties contains prop.first %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% else %}
    {% if prop.first == '_AdditionalCost' and prop.last != '' %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% endif %}
    {% endunless %}
    {% endfor %}
    </ul>
    {% endif %}

  5. Click Save.

Your packing slips will include each option your customer has selected and any details added.

Your packing slip should look similar to the one below.


Order Printer [Legacy]

Add the invoice template

  1. In Order Printer, click Manage templates.

  2. Find the Invoice and click Duplicate Template.

  3. Invoice--COPY template will open. Find the following code.

    <td><b>{{ line_item.title }}</b>

  4. Append the following code to the code above, making sure to place it between the </b> and </td>.

      <!-- Display item properties here -->
    {% assign hiddenProperties = '_ZapietId,_AdditionalCost,_ProductOptionsBundle' | split: ',' %}
    {% assign propertySize = line_item.properties | size %}
    {% if propertySize > 0 %}
    <br>
    <ul>
    {% for prop in line_item.properties %}
    {% unless hiddenProperties contains prop.first %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% else %}
    {% if prop.first == '_AdditionalCost' and prop.last != '' %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% endif %}
    {% endunless %}
    {% endfor %}
    </ul>
    {% endif %}

  5. Click Save.

Your invoices will include each option your customer has selected and any details added.

Your invoice should look similar to the one below.


Add the packing slip template

  1. In Order Printer, click Manage templates.

  2. Find the Packing slip and click Duplicate Template.

  3. Packing slip--COPY template will open.

    The default template does not include product information. Follow the steps below depending if you're using the default template, or a custom template with the product information included:


Default template

  1. At the bottom of your template, append the code below.

    {% comment %} Custom items section {% endcomment %} 
    <br>
    <div style="padding: 1.5em; border: 1px solid black;">
    <h2 style="margin: 0 0 1em 0;">Items</h2>
    {% for line_item in line_items %}
    {{ line_item.quantity }} x
    <b>{{ line_item.title }}</b>
    <!-- Display item properties here -->
    {% assign hiddenProperties = '_ZapietId,_AdditionalCost,_ProductOptionsBundle' | split: ',' %}
    {% assign propertySize = line_item.properties | size %}
    {% if propertySize > 0 %}
    <br>
    <ul>
    {% for prop in line_item.properties %}
    {% unless hiddenProperties contains prop.first %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% else %}
    {% if prop.first == '_AdditionalCost' and prop.last != '' %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% endif %}
    {% endunless %}
    {% endfor %}
    </ul>
    {% endif %}
    {% endfor %}
    </div>

  2. Click Save.

Your packing slips will include each product and every product option your customer has selected.

After you have added the code, the information will look similar to the packing slip below:


Custom template

  1. If your template already includes product information, we recommend adding the code after the line item title. Find this code:

    {{ line_item.title }}


    If you can't find this code, or need help editing the template, we recommend speaking to your template developer.

  2. Append this code to the code above:

              <!-- Display item properties here -->            
    {% assign hiddenProperties = '_ZapietId,_AdditionalCost,_ProductOptionsBundle' | split: ',' %}
    {% assign propertySize = line_item.properties | size %}
    {% if propertySize > 0 %}
    <br>
    <ul>
    {% for prop in line_item.properties %}
    {% unless hiddenProperties contains prop.first %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% else %}
    {% if prop.first == '_AdditionalCost' and prop.last != '' %}
    <li>{{ prop.first }}: {{ prop.last }}</li>
    {% endif %}
    {% endunless %}
    {% endfor %}
    </ul>
    {% endif %}

  3. Click Save.

Your packing slips will include each option your customer has selected and any details added.

After you have added the code, the information will look similar to the packing slip below:

Did this answer your question?