Skip to content

Instantly share code, notes, and snippets.

@enamhasan
Created March 23, 2016 11:12
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save enamhasan/eb9606a078b635fb54d6 to your computer and use it in GitHub Desktop.
Save enamhasan/eb9606a078b635fb54d6 to your computer and use it in GitHub Desktop.
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>
@geongeorge
Copy link

Hello all, I assume most of you are developers. We built a shopify order printer app that can take any value from the order object using graphql. I know it is a bit complicated but we realized for many use cases for our clients the shopify order printer app was not enough.

Our app is called Pixi order printer We have also open sourced the starter with with we built it from.

@harsh-b-eq
Copy link

Hello all,

I want to print discount title or code but
{{ discount.title }} is not working at all....

is there any one who know how to show discount title in order printer app?

@cbodron
Copy link

cbodron commented Apr 11, 2024

Hi everybody, I need to customise my order printer template to print :

{{ shipping_address.name }}
{{ shipping_address | format_address }}

I need to have adress in center, full width (80mm) and full height (50 mm) of my label.

Can someone help me please ? I deseperate....

@ksawalme
Copy link

hi, thank you very much for provide this for all that will give your much deed from allah and god blass you
I realy appraciate you help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment