The order object

Property Liquid representation Data type
remote id {{ order.id }} integer
number {{ order.number }} string
formatted number {{ order.formatted_number }} string
currency {{ order.currency }} string
financial status {{ order.financial_status }} string
fulfillment status {{ order.fulfillment_status }} string
total {{ order.total_price }} integer (cents)
subtotal {{ order.subtotal_price }} integer (cents)
payment method name {{ order.payment_method }} string
created via (channel) {{ order.created_via }} string
created date1 {{ order.date_created }} timestamp
paid date1 {{ order.paid_date }} timestamp
checkout url
(rebuilds cart + applies discounts)
{{ order.checkout_url }} string
status url {{ order.status_url }} string
billing address2 {{ order.billing_address }} object
shipping address2 {{ order.shipping_address }} object
properties {{ order.properties }} object
line items
(see line item object details)
{{ order.line_items }} array
fee items
(see fee item object details)
{{ order.fee_line_items }} array
shipping lines
(see shipping item object details)
{{ order.shipping_line_items }} array
refunds
(see refund item object details)
{{ order.refunds }} array
related products for order
(objects mirrored from product)
{{ order.related_products }} array

1 recommend using date format of %B %e, %Y, e.g.,: {{ order.date_created | date: "%B %e, %Y" }}. See more date formatting options.

2 Address properties: name, first_name, last_name, address1, address2, company, city, state_code, postal_code, country_code, phone

Example: {{ order.billing_address.country_code }} or {{ shop.address.city }}

Line item object

The following properties are available for each line item object. You’d need to iterate through the {{ order.line_items }} array to access each object:

{% for item in order.line_items %}
    {{ item.title }}<br />
{% endfor %}

(This table assumes your object is named line_item.)

Property Liquid representation Data type
title {{ line_item.title }} mirror from product
variant title
(should be used in most cases)
{{ line_item.variant_title }} mirror from product
SKU {{ line_item.sku }} mirror from product
unit price {{ line_item.price }} integer (cents)
line total price {{ line_item.line_price }} integer (cents)
quantity {{ line_item.quantity }} integer
product ID {{ line_item.product_id }} integer
product URL {{ line_item.product_url }} string
image URL {{ line_item.image }} string
requires_shipping {{ line_item.requires_shipping }} bool
downloadable_items1 {{ line_item.downloadable_items }} array

1 contains a download object with download.file_url and download.file_name properties

Looking for an example? Here’s a line items table that you can use as a customization starting point. It will output a table like this.

<table align="center" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;">
<thead>
<tr>
	<th style="vertical-align:middle;color:#000;border-bottom:1px solid #000;padding:10px;width:15%;">Item</th>
	<th style="vertical-align:middle;color:#000;border-bottom:1px solid #000;padding:10px;width:50%;">&nbsp;</th>
	<th style="vertical-align:middle;color:#000;border-bottom:1px solid #000;padding:10px;width:10%;">Qty</th>
	<th style="vertical-align:middle;color:#000;border-bottom:1px solid #000;padding:10px;width:25%;">Total</th>
</tr>
</thead>
{% for item in order.line_items %}
<tr>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;width:15%;"><img src="{{ item.image }}" width="75%" /></td>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;width:50%;">{{ item.title }}</td>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;width:10%;">&times; {{ item.quantity }}</td>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;width:25%;">{{ item.line_price | money }}</td>
</tr>
{% endfor %}
<tfoot>
<tr>
	<td colspan="3" style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">Subtotal:</td>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">{{ order.subtotal_price | money }}</td>
</tr>
<tr>
	<td colspan="3" style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">Tax:</td>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">{{ order.total_tax | money }}</td>
</tr>
<tr>
	<td colspan="3" style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">Fees:</td>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">{{ order.total_fees | money }}</td>
</tr>
<tr>
	<td colspan="3" style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">Shipping:</td>
	<td style="vertical-align:middle;color:#888888;border-bottom:1px dotted #ccc;padding:10px;">{{ order.total_shipping | money }}</td>
</tr>
<tr>
	<td colspan="3" style="vertical-align:middle;color:#000;border-bottom:2px solid #ccc;border-top:2px solid #ccc;padding:10px;">TOTAL:</td>
	<td style="vertical-align:middle;color:#000;border-bottom:2px solid #ccc;border-top:2px solid #ccc;padding:10px;">{{ order.total_price | money }}</td>
</tr>
</tfoot>
</table>

Fee item object

The following properties are available for each fee item object. You’d need to iterate through the {{ order.fee_line_items }} array to access each object:

{% for fee_item in order.fee_line_items %}
    {{ fee_item.title }} - {{ fee_item.total | money }}<br />
{% endfor %}

(This table assumes your object is named fee_item.)

Property Liquid representation Data type
fee title {{ fee_item.title }} string
fee total {{ fee_item.total }} integer (cents)

Shipping item object

The following properties are available for each shipping item object. You’d need to iterate through the {{ order.shipping_line_items }} array to access each object:

{% for item in order.shipping_line_items %}
    {{ item.title }} - {{ item.total | money }}<br />
{% endfor %}

(This table assumes your object is named shipping_item.)

Property Liquid representation Data type
shipping title {{ shipping_item.title }} string
shipping total {{ shipping_item.total }} integer (cents)
shipping meta {{ shipping_item.meta }} array

Refund item object

The following properties are available for each refund item object. You’d need to iterate through the {{ order.refunds }} array to access each object:

{% for refund in order.refunds %}
    Refunded {{ refund.total | money }} on {{ refund.date | date: "%B %e, %Y"  }} ({{ refund.reason }})<br />
{% endfor %}

(This table assumes your object is named refund.)

Property Liquid representation Data type
date {{ refund.date }} timestamp
reason {{ refund.reason }} string
total {{ refund.total }} integer (cents)

Notes