Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Shopify Order Printer Template with product image, variations and line item properties
<p style="float: right; text-align: right; margin: 0;">
{{ "now" | date: "%m/%d/%y" }}<br />
Invoice for {{ order_name }}
</p>
<div style="float: left; margin: 0 0 1.5em 0;" >
<strong style="font-size: 2em;">{{ shop_name }}</strong><br /><br />
{{ shop.address }}<br/>
{{ shop.city }} {{ shop.province_code }} {{ shop.zip | upcase }}<br/>
{{ shop.country }}
</div>
<hr />
<h3 style="margin: 0 0 1em 0;">Item Details</h3>
<table class="table-tabular" style="margin: 0 0 1.5em 0;">
<thead>
<tr>
<th>Product Image</th>
<th>Quantity</th>
<th>Item</th>
<th>Device<th>
{% if show_line_item_taxes %}
<th>Taxes</th>
{% endif %}
<th>Price</th>
</tr>
</thead>
<tbody>
{% for line_item in line_items %}
<tr>
<td><img src="{{ line_item.product.featured_image | product_img_url: 'thumb' }}" /></td>
<td>{{ line_item.quantity }} </td>
<td>{{ line_item.quantity }} <b>{{ line_item.title }}</b></td>
{% comment %}
<td>
{% unless line_item.variant.title contains 'Default' %}
{{ line_item.variant.title }}
{% endunless %}
</td>
{% endcomment %}
<td>
{% assign property_size = line_item.properties | size %}
{% if property_size > 0 %}
{% for p in line_item.properties %}
{% unless p.last == blank %}
<b>{{ p.first }}:</b>
{% if p.last contains '/uploads/' %}
<a href="{{ p.last }}">{{ p.last | split: '/' | last }}</a>
{% else %}
<b>{{ p.last }}</b>
{% endif %}
<br>
{% endunless %}
{% endfor %}
{% endif %}
<td/>
{% if line_item.tax_lines %}
<td>
{% for tax_line in line_item.tax_lines %}
{{ tax_line.price | money }} {{ tax_line.title }}<br/>
{% endfor %}
</td>
{% endif %}
<td>{{ line_item.price | money }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% if transactions.size > 1 %}
<h3 style="margin: 0 0 1em 0;">Transaction Details</h3>
<table class="table-tabular" style="margin: 0 0 1.5em 0;">
<thead>
<tr>
<th>Type</th>
<th>Amount</th>
<th>Kind</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{% for transaction in transactions %}
<tr>
<td>{{ transaction.gateway | payment_method }}</td>
<td>{{ transaction.amount | money }}</td>
<td>{{ transaction.kind }}</td>
<td>{{ transaction.status }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
<h3 style="margin: 0 0 1em 0;">Payment Details</h3>
<table class="table-tabular" style="margin: 0 0 1.5em 0;">
<tr>
<td>Subtotal price:</td>
<td>{{ subtotal_price | money }}</td>
</tr>
{% for discount in discounts %}
<tr>
<td>Includes discount "{{ discount.code }}"</td>
<td>{{ discount.savings | money }}</td>
</tr>
{% endfor %}
<tr>
<td>Total tax:</td>
<td>{{ tax_price | money }}</td>
</tr>
{% if shipping_address %}
<tr>
<td>Shipping:</td>
<td>{{ shipping_price | money }}</td>
</tr>
{% endif %}
<tr>
<td><strong>Total price:</strong></td>
<td><strong>{{ total_price | money }}</strong></td>
</tr>
{% if total_paid != total_price %}
<tr>
<td><strong>Total paid:</strong></td>
<td><strong>{{ total_paid | money }}</strong></td>
</tr>
<tr>
<td><strong>Outstanding Amount:</strong></td>
<td><strong>{{ total_price | minus: total_paid | money }}</strong></td>
</tr>
{% endif %}
</table>
{% if note %}
<h3 style="margin: 0 0 1em 0;">Note</h3>
<p>{{ note }}</p>
{% endif %}
{% if shipping_address %}
<h3 style="margin: 0 0 1em 0;">Shipping Details</h3>
<div style="margin: 0 0 1em 0; padding: 1em; border: 1px solid black;">
<strong>{{ shipping_address.name }}</strong><br/>
{% if shipping_address.company %}
{{ shipping_address.company }}<br/>
{% endif %}
{{ shipping_address.street }}<br/>
{{ shipping_address.city }}
{{ shipping_address.province_code }}
{{ shipping_address.zip | upcase }}<br/>
{{ shipping_address.country }}
</div>
{% endif %}
<p>If you have any questions, please send an email to <u>{{ shop.email }}</u></p>
@ahmedesoliman

This comment has been minimized.

Copy link

@ahmedesoliman ahmedesoliman commented Oct 4, 2018

That's Amazing!! Thank You so much!

@ahmedesoliman

This comment has been minimized.

Copy link

@ahmedesoliman ahmedesoliman commented Oct 4, 2018

Is there is a way to include the product SKU no to the template? Thanks in advance1

@MrBayoumi

This comment has been minimized.

Copy link

@MrBayoumi MrBayoumi commented Oct 18, 2019

Almost a year later and i have put this to good use, thanks a lot!
I still have a question: What is this for?

 <td>
        {% assign property_size = line_item.properties | size %}
                    {% if property_size > 0 %}
                      {% for p in line_item.properties %}
                        {% unless p.last == blank %}
                          <b>{{ p.first }}:</b>

                          {% if p.last contains '/uploads/' %}
                            <a href="{{ p.last }}">{{ p.last | split: '/' | last }}</a>
                          {% else %}
                            <b>{{ p.last }}</b>
                          {% endif %}

                          <br>
                        {% endunless %}
                      {% endfor %}
                    {% endif %}
        <td/>
@enamhasan

This comment has been minimized.

Copy link
Owner Author

@enamhasan enamhasan commented Oct 19, 2019

Hi,

Glad to know this helps to you. The part of code above is for line item properties / custom fields from shopify product page.
To know more about line item properties, you can read this article

https://help.shopify.com/en/themes/customization/products/features/get-customization-information-for-products

Thank you.
Enam

@IrakliZakaidze

This comment has been minimized.

Copy link

@IrakliZakaidze IrakliZakaidze commented Apr 2, 2020

@enamhasan My friend, I copied up your html template and saved it in Shopify's order printer. I'm satisfied with everything, except that it's in letter size. I have a small zebra label printer which is a length of 8inch and width of 4inch. If you can, please provide a template for this data.

@gabesqueda

This comment has been minimized.

Copy link

@gabesqueda gabesqueda commented Aug 22, 2020

This is very useful, I only have one question, how can I delete the word "VAT" in the tax description, I live in Mexico so I only need the Tax and the amount but not the VAT word.
Captura de Pantalla 2020-08-22 a la(s) 8 15 43 a  m

@csanyipeti

This comment has been minimized.

Copy link

@csanyipeti csanyipeti commented Sep 16, 2020

Hey there! Big question: is there a way to enlarge the product image in the template? Much appreciate your help :)

@briscolion

This comment has been minimized.

Copy link

@briscolion briscolion commented Sep 24, 2020

is there a way to minus discount amount from to show actual outstanding amount after discount

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.