Notifications variables reference

Notifications sent out from your store are rendered using Liquid. Liquid is Shopify's simple, easy-to-use programming language. It's the same programming language that themes from the Theme Store are built on.

To edit the notifications that are sent from your store, you can make basic customizations to your notification templates. To access the complete list of the notifications you can customize, go to the Notifications page in your Shopify admin.

For help with more advanced changes, or to make changes to custom notification templates, you can reach out to the community on our forums, or you can also hire a Shopify Partner to do your customizations for you. Learn more about hiring a Shopify Partner.

Order properties

Many properties of an order are available directly using Liquid, in templates, and in additional scripts.

Descriptions of Liquid properties that you can use with the order object in notification templates
PropertyDescription
id

A system wide unique ID of the order for internal use. Use the following example to generate a link to the order in the admin section of your shop. For example, in your New order template, you can add the following code:

<a href="{{ shop.url }}/admin/orders/{{ id }}">View order</a>
email
The email associated with the order.
name

Typically this is a pound symbol followed by the order_number.

Example: #1004

order_name
Same as name.
order_number

Shop unique number of the order, without the pound # prefix, or any prefix or suffix added to the order ID by the shop-owner in their shop preferences.

Example: 1004

confirmation_number

A randomly generated alphanumeric identifier for the order that might be shown to the customer instead of the sequential order name. This value isn't guaranteed to be unique.

Example: XPAV284CT

created_at

The date and time the customer created the order. You can format this using the date filter.

Example: 2009-05-30T17:43:51+02:00

payment_terms

Payment terms specify the date that payment for an order is due to be paid.

Learn how to add payment terms to order invoices.

For more details, refer to the Liquid reference for payment_terms.

destination
The destination where the items should be sent.
tags
Returns an array of all of the order's tags. The tags are returned in alphabetical order. Refer to the Liquid reference documentation for more details.
transactions
Returns an array of transactions from the order.
tax_price
The combined taxes of all the items in the order.
tax_lines

Taxes broken up by type of taxation:

{% for tax_line in tax_lines %}
    {{ tax_line.title }} ({{ tax_line.rate_percentage }}%) : {{ tax_line.price | money_with_currency  }}
{% endfor %}
tax_line.title

The name of the tax.

Examples: QST or VAT

tax_line.price
The amount.
tax_line.rate
The rate. It will return 0.175 if it's 17.5%.
tax_line.rate_percentage
The tax rate in human readable form. It will return 17.5 if the rate is 0.175.
customer
Customer object containing the attributes of the customer output.
billing_address
The billing address.
billing_address.first_name
First name of the customer.
billing_address.last_name
Last name of the customer.
billing_address.company
Company name for billing.
billing_address.phone
Phone number from the billing address.
shop.name
Name of your store.
shop.phone
Your store's phone number.
subtotal_price
Sum of the order's line-item prices after any line-item discount or cart discount has been deducted. The subtotal doesn't include taxes (unless taxes are included in the prices), shipping costs, or tips.
discounts
A list of discounts.
discounts_amount

The amount of the discount applied by all discounts.

Example: +$5.00

discounts_savings

The amount of the savings caused by all discounts.

Example: -$5.00

total_price

Total of the order (subtotal + shipping cost - shipping discount + tax).

financial_status
The current payment status. One of: nil, pending, authorized, paid, voided, refunded.
requires_shipping
(boolean) Returns true if there is at least one item in the order that requires shipping.
shipping_method.title

The shipping rate name.

In customer-facing notifications, the shipping rate name is translated to the language the customer checked out in, when the language is different from the default store language.

Example: Standard Shipping
shipping_method.price

The shipping price including any shipping discount.

Example: {{ shipping_method.price | money }}

shipping_price

The shipping price.

Example: {{ shipping_price | money }}

shipping_address
The shipping address.
shipping_address.first_name
The first name for the shipping address.
shipping_address.company
Company name for shipping address.
shipping_address.phone
Phone number from the shipping address.
line_items
List of all line items in the order.
line_items_including_zero_quantity
List of all line items in the order, including those with a quantity of zero. Line items have a quantity of zero when they're fully refunded.
item_count
A sum of all the items' quantities.
fulfillment_status
The current fulfillment status of the order. One of: unfulfilled, partial, fulfilled.
note
The note which is attached to the order. The note can be obtained from the customer and/or edited in the order detail screen in your admin interface.
attributes

Any attributes which were attached to the order.

Example: {{ attributes.gift-note }}

referring_site

Contains the url of the referrer that brought the customer to your store.

Example: https://www.google.com/?s=great+products

landing_site

Contains the path of the landing site the customer used. This is the first page that the customer saw when they reached the store.

Example: /products/great-product?ref=my-tracking-token

landing_site_ref

Reviews the landing site and extracts a reference parameter from it. Reference parameters can be: ref, source, r.

If the landing_site is /products/great-product?ref=my-tracking-token, then the landing_site_ref is my-tracking-token. You can perform a certain action if your ref is equal to a certain value:

{% if landing_site_ref == 'my-tracking-token' %}
My action...
{% endif %}
cancelled
(boolean) Returns true if the order has been canceled.
cancelled_at
The time when the order was canceled.
cancel_reason
The reason selected when canceling the order. One of: inventory, customer, declined, fraud, or other.
has_high_risks?
(deprecated)

Returns true if the order has high risk

unique_gateways

Returns a list of unique payment providers on an order. For example, if someone paid with a Visa, a Mastercard, and cash, then the returned list would be shopify_payments, cash.

location (POS only)

Displays the physical location of the order. There are several location properties available, listed here. You can configure locations in the Locations area of the admin.

order_status_url

Returns the link to the order status page for this order.

fulfilled_line_items
(deprecated)
List of line items which have been fulfilled.
unfulfilled_line_items
(deprecated)
List of line items which haven't been fully fulfilled.
b2b?

Returns true if the order is a B2B order. Use the property with B2B variables to display relevant information, such as the company name, company location, and address in emails. For example, on B2B orders, you might add a header to a template with the following information:

{% if b2b? %}
        <p> Customer:  {{ customer.name }}
        <p> Company:  {{ company.name }}
        <p> Location:  {{ company_location.name }}
      {% endif%}
      
company

The company that you’re selling to on a B2B order.

company.name

The name of the company on a B2B order.

company.id

The ID of the company on a B2B order.

company_location

The location of the company on a B2B order. A company that buys from you can have more than one location.

company_location.name

The name of the company location on a B2B order.

company_location.id

The ID number of the company location on a B2B order.

company_location.shipping_address

The shipping addressof the company location on a B2B order.

company_location.billing_address

The billing addressof the company location on a B2B order.

customer_order_url

The new order details page of an order a customer requested a return for using new customer accounts.

Draft order properties

Descriptions of Liquid properties that you can use with the draft order object in notification templates
PropertyDescription
id
A unique ID of the draft order for internal use.
invoice_url
A link the customer can follow to pay for the invoice using Shopify's secure checkout.
reserve_inventory_until

The date and time the line items in the draft are reserved until, for example, 2015-05-30T17:43:51+02:00.

You can format dates using the Liquid date filter.

user
The last staff who modified the draft order.
user.name
The name of the last staff who modified the draft order.
user.email
The email address of the last staff who modified the draft order.
email
The email address associated with the draft order.
name
The unique number of the draft order, prefixed by a number sign #.
number
The unique number of the draft order without the order prefix or suffix.
created_at

The date and time the customer created the draft order, for example, 2009-05-30T17:43:51+02:00.

You can format dates using the Liquid date filter.

tags
Returns an array of all of the order's tags. The tags are returned in alphabetical order. Refer to the Liquid reference documentation for more details.
tax_price
The combined taxes of all the items in the draft order.
tax_lines

Taxes broken up by type of tax:

{% for tax_line in tax_lines %}
{{ tax_line.title }} ({{ tax_line.rate_percentage }}%) : {{ tax_line.price | money_with_currency  }}
{% endfor %}
tax_line.title

The name of the tax.

Examples: QST or VAT

tax_line.price
The tax amount.
tax_line.rate
The tax rate in decimal form. For example, a tax rate of 17.5% will return 0.175.
tax_line.rate_percentage
The tax rate in percentage form. For example, a rate of 0.175 will return 17.5.
customer
Customer object containing the attributes of the customer output.
billing_address
The billing address for the draft order.
billing_address.first_name
The customer's first name.
billing_address.last_name
The customer's last name.
billing_address.company
The company name in the billing address.
billing_address.phone
The phone number in the billing address.
shop.name
The name of your store.
shop.phone
Your store's phone number.
subtotal_price
Sum of the draft order's line-item prices after any line-item discount or cart discount has been deducted. The subtotal doesn't include taxes (unless taxes are included in the prices) or shipping costs.
discounts
A list of discounts.
discounts_amount

Amount of the discount applied by all discounts.

Example: +$5.00

discounts_savings

Amount of the savings caused by all discounts.

Example: -$5.00

total_price
The total price of the order (subtotal + shipping cost - shipping discount + tax).
amount_due_now

The amount required by the draft order invoice.

requires_shipping
Returns true if there is at least one item in the draft order that requires shipping. Returns false if no items in the draft order require shipping.
shipping_method.title

The Shipping rate name.

Example: Standard Shipping

shipping_method.price
The price of the shipping method. Returns the same information as shipping_price.
shipping_price

The shipping price.

You can format this amount using Liquid money filters.

shipping_address

The shipping address.

Note: Unlike in regular orders, a draft order's shipping address might be incomplete.

shipping_address.first_name
The first name for the shipping address.
shipping_address.company
The company name in the shipping address.
shipping_address.phone
The phone number in the shipping address.
line_items
A list of all line items in the draft order.
item_count
A sum of all the item quantities in the draft order.
note
The note attached to the draft order. The note can be obtained from the customer and also edited in the draft order detail screen in your Shopify admin.
location

The physical location of the order. There are several location properties available.

You can configure locations in the Locations page of your Shopify admin.

b2b?

Returns true if the order is a B2B order. Use the property with B2B variables to display relevant information, such as the company name, company location, and address in emails. For example, on B2B orders, you might add a header to a template with the following information:

{% if b2b? %}
          <p> Customer:  {{ customer.name }}
          <p> Company:  {{ company.name }}
          <p> Location:  {{ company_location.name }}
        {% endif %}
        
company

The company that you’re selling to on a B2B order.

company.name

The name of the company on a B2B order.

company.id

The ID of the company on a B2B order.

company_location

The location of the company on a B2B order. A company that buys from you can have more than one location.

company_location.name

The name of the company location on a B2B order.

company_location.id

The ID number of the company location on a B2B order.

company_location.shipping_address

The shipping addressof the company location on a B2B order.

company_location.billing_address

The billing addressof the company location on a B2B order.

Payment schedule properties

Descriptions of Liquid properties that you can use with the payment schedule object in notification templates
PropertyDescription
payment_schedule.amount_due

The amount to be paid for a payment schedule.

You can format amounts with currencies using the Liquid money filter.

payment_schedule.due_at

The due date for the payment schedule.

You can format dates using the Liquid date filter.

payment_schedule.due_in_days

The number of days until the due date if the payment schedule is still due (unpaid).

payment_schedule.due_later?

Returns true if a payment schedule hasn't been paid and its due date is in the future.

payment_schedule.number_of_days_overdue?

The number of days from the due date when a payment schedule is overdue.

payment_schedule.overdue?

Returns true if a payment schedule hasn't been paid and it's past its due date.

Payment status properties

Descriptions of Liquid properties that you can use with the payment status object in notification templates
PropertyDescription
has_pending_payment

(boolean) Returns true if the order has a transaction with a pending payment.

Learn more about pending payments.

buyer_action_required

(boolean) Returns true if an order has a transaction with a pending payment, and a buyer action is required to unblock the payment. When this value returns true and the payment method supports payment instructions, the buyer_pending_payment_instructions provides details that the buyer can use to complete their purchase offline.

Learn more about the Liquid transaction object.

Line item properties

Each line in the list of line_items or subtotal_line_items has the following properties.

Descriptions of Liquid properties that you can use with the line item object in notification templates
PropertyDescription
line.applied_discounts
(POS and draft orders only)
List of discounts applied to this item (each discount has the title, code, amount, savings and type properties).
line.bundle_components
(Draft orders only)
List of line items that are bundle components of this item. Only returns a list if this line item is a bundle product.
line.bundle_parent?
(Draft orders only)
(boolean) Returns true if the line item is a bundle product.
line.custom
(Draft orders only)
(boolean) Returns true if the item is a custom line item for a draft order.
line.delivery_agreement
The Delivery Agreement associated with this line item.
line.grams
Weight of a single item.
line.image
Returns the URL of the image associated with this line item. You can also use the img_url filter to get specific image sizes, for example {{ line.image | img_url: 'small' }}
line.line_price
The price multiplied by the quantity for that item.
line.original_line_price
The combined price of the quantity of items included in the line, before discounts were applied.
line.final_line_price
The combined price of all the items in the line item, including all line level discount amounts.
line.pre_tax_price
The pre-tax price for the line items, multiplied by the quantity of the line item purchased.
line.price
The price for a single item.
line.product.metafields

The Metafields at the product level. Use the following syntax:

line.product.metafields.NAMESPACE.KEY

line.product.title
The current name of the product.
line.product.vendor
The vendor for the item.
line.properties
Returns an array of custom information for an item. Line item properties are specified by the customer on the product page, before adding a product to the cart.
line.quantity
Quantity for that item.
line.current_quantity
The item's current quantity after removals.
line.requires_shipping
(boolean) Returns true if the variant for the item has the checkbox This is a physical product checked on the product page.
line.selling_plan_allocation
Returns a selling_plan_allocation object, which describes how a selling plan such as a subscription impacts the line item.
line.taxable
(boolean) Returns true if the variant for the item has the checkbox 'Charge taxes on this product' checked on the product page.
line.title

The name of the product at the time of sale, followed by a dash and the name of the variant at the time of sale. The variant name isn't included when it's a “Default Title”.

In customer-facing notifications, the product name and variant name is translated to the language the customer checked out in, when the language is different from the default store language.
line.url
The relative URL of the line item's variant. The relative URL doesn't include your store's root URL (mystore.myshopify.com).
line.variant.barcode
The barcode associated with the product variant.
line.variant.compare_at_price
The compare-at price associated with the product variant.
line.variant.image
The image for the product variant. Only returns an image if there is a specific image assigned to the variant in the line item.
line.variant.metafields

The Metafields at the variant level. Use the following syntax:

line.variant.metafields.NAMESPACE.KEY

line.variant.sku
The SKU associated with the product variant.
line.variant.title

The current names of the variant's option values, joined by / characters.

Example: small / red

line.refunded.quantity
(within refund notifications)

The quantity of an item to be refunded. You can use this property to add an identifier to refunded items in an order.

For example: {% if line.refunded_quantity > 0 %}Refunded line identifier{% endif %}

Refunds properties

Descriptions of Liquid properties that you can use with the refund object in notification templates
PropertyDescription
amount
The amount of money refunded.
refund_line_items
A list of refund line items to be refunded.

Refund_line_item properties

Each refund_line in the list of refund_line_items has the following properties:

Descriptions of Liquid properties that you can use with the refund line items object in notification templates
PropertyDescription
refund_line.line_item
The line_item that is being refunded. This has access to all the line_item’s properties.
refund_line.quantity
The quantity of the line item to be refunded.

Fulfillment properties

Descriptions of Liquid properties that you can use with the fulfillment object in notification templates
PropertyDescription
service_name
The name of the custom service as defined in the Settings > Shipping page. (Fulfillment request only)
fulfillment.estimated_delivery_at
An estimated delivery date based on the tracking number (if available) provided by one of the following carriers: USPS, FedEx, UPS, Canada Post (Canada only). This property is only available when carrier-calculated rates are in use.
fulfillment.fulfillment_line_items
A list of fulfillment line items to be fulfilled.
fulfillment.item_count
A sum of all the items' quantities. The total number of items being fulfilled.
fulfillment.requires_shipping
(boolean) Returns true if this fulfillment request requires shipping.
fulfillment.tracking_company
The company doing the tracking.
fulfillment.tracking_numbers
A list of tracking numbers.
fulfillment.tracking_urls
A list of tracking URLs.
items_to_fulfill
(deprecated)
A list of line items that are to be fulfilled by this particular custom fulfillment service. (Fulfillment request only)
items_to_fulfill_count
(deprecated)
The total number of items to be fulfilled by this request. (Fulfillment request only)

Fulfillment_line_item properties

Each fulfillment_line in the list of fulfillment_line_items has the following properties.

Descriptions of Liquid properties that you can use with the fulfillment line items object in notification templates
PropertyDescription
fulfillment_line.line_item
The line_item being fulfilled. This has access to all the line_item's properties.
fulfillment_line.quantity
The quantity of the line item that is being fulfilled.

Prepared package properties

A prepared package includes the items marked as ready for pickup.

Descriptions of Liquid properties that you can use with the prepared package object in notification templates
PropertyDescription
item_count
A sum of all the item quantities in the prepared package.
prepared_package_line_items
A list of prepared package line items.

Prepared_package_line_item properties

Each prepared_package_line_item in the list of prepared_package_line_items has the following properties.

Descriptions of Liquid properties that you can use with the prepared package line item object in notification templates
PropertyDescription
line_item
The associated line_item. This has access to all the line_item's properties.
quantity
The quantity of the line item that has been marked as ready for pickup.

Delivery properties

Descriptions of Liquid properties that you can use with the delivery object in notification templates
PropertyDescription
delivery_agreements
List of all Delivery Agreements for the order.
delivery_instructions
Local delivery information to share with the customer. This information is controlled by the Delivery information field in your local delivery settings.
consolidated_estimated_delivery_time
Order delivery dates information to share with the customer. This information is controlled by the Processing time setting that you set up in your Shipping and delivery page. When the order has multiple delivery methods, a list of delivery methods and dates is displayed.
has_multiple_delivery_methods
(boolean) Returns true if the order has multiple delivery methods.

Delivery Agreement properties

Descriptions of Liquid properties that you can use with the delivery agreement object in notification templates
PropertyDescription
delivery_agreement.delivery_method_type
The delivery method type.
delivery_agreement.delivery_method_name
The delivery method type translated to the language the buyer checked out in, when the language is different from the default store language.
delivery_agreement.line_items
List of all line items associated with this delivery agreement.

Discount properties

There are two types of discount properties.

discount_applications describe why and how an item was discounted.

discount_allocations describe how a particular discount affects a line item and how it reduces the price. You should use this property at the line item level.

You can combine these properties to display discount information at the line item or order level.

Example

This example checks if a discount has been applied to the line item. If the discount wasn't applied at the order level (all), then the discount name and amount are displayed.

{% if line.discount_allocations %}
    {% for discount_allocation in line.discount_allocations %}
        {% if discount_allocation.discount_application.target_selection != 'all' %}
            {{ discount_allocation.discount_application.title | upcase }}
            (-{{ discount_allocation.amount | money }})
        {% endif %}
    {% endfor %}
{% endif %}

The result might be similar to this:

SPRING5 (-$5.00)

Discount_allocation properties

Each discount_allocation in the list of discount_allocations has the following properties.

Descriptions of Liquid properties that you can use with the discount_allocation object in notification templates
PropertyDescription
discount_allocation.amount
The amount of money saved by the customer on a line item. Must be entered in a loop if you want to allow multiple discount codes.
discount_allocation.discount_application
The discount application that allocates the amount on the line item.

Discount_application properties

Each discount_application in the list of discount_applications has the following properties.

Descriptions of Liquid properties that you can use with the discount_application object in notification templates
PropertyDescription
discount_application.target_selection

Describes how a discount selects line items in the cart to be discounted. One of:

  • all: The discount applies to all line items.
  • entitled: The discount applies to a particular subset of line items, often defined by a condition.
  • explicit: The discount applies to a specifically selected line item or shipping line.
discount_application.target_type
The type of item that a discount applies to (line_item or shipping_line).
discount_application.title

The customer-facing name of the discount.

Examples: Welcome10 or CBBWQQAKYBYY

discount_application.total_allocated_amount
The total amount that the price of an order is reduced by the discount.
discount_application.type
The type of the discount. One of: automatic, discount_code, manual, or script.
discount_application.value
The value of the discount.
discount_application.value_type
The value type of the discount. One of: fixed_amount or percentage.

Subscription properties

Details of a subscription contract, the current billing cycle, and its line items, delivery method, and payment method are available for all subscription email templates.

To edit subscription notification templates, install the Shopify Subscriptions app, and then find the template under Settings > Notifications under the Subscriptions section.

Subscription contract billing cycle properties

To access the properties of the subscription contract and its billing cycle, use the subscription_contract_billing_cycle object.

Example

{% assign contract = subscription_contract_billing_cycle %}
This contract is currently {{ contract.status }}.

Result:

This contract is currently paused.

Properties

Descriptions of Liquid properties that you can use with the subscription contract billing cycle object in notification templates
PropertyDescription
status
The status of the contract.

One of active, paused, cancelled, failed, expired, stale,
delivery_method
The delivery method of the subscription.

If the subscription is for a service or digital product, then
nil
is returned.
billing_frequency
How often the subscription is billed.
delivery_frequency
How often the subscription is delivered.
origin_order
The original order that first created the subscription.

If the subscription wasn't created from a Shopify order, then nil is returned.
customer
The subscription customer.
line_items
The line items in the subscription billing cycle.
product_names
A list of the names of the products included in the subscription billing cycle.
update_payment_method_url
The URL the customer can use to update the payment method for this contract.
shipping_address
The shipping address of the subscription.

If the subscription is for a service or digital product, then nil is returned.
billing_address
The billing address of the subscription.
subtotal_price
The subtotal price of the subscription line items.
shipping_price
The shipping price of the subscription.
total_tax
The total tax of the subscription.
total_price
The total price of the subscription.
total_discounts
The total discounts of the subscription.
customer_self_serve_url
The self-serve URL the customer can use to manage their subscriptions.
billing_attempt_expected_date
The billing date for this billing cycle.
next_billing_date
The next un-skipped billing date after this billing cycle.
last_attempted_billing_date
The last attempted billing date for the billing cycle.
days_overdue
The number of days billing is overdue for this billing cycle.
payment_instrument
The payment instrument associated with the subscription contract. This payment instrument is used to bill the customer.

Subscription contract line item properties

The properties for each line item included in the billing cycle. Access the contract line item properties through the parent subscription_contract_billing_cycle.line_items property.

Example

{% for line_item in subscription_contract_billing_cycle.line_items %}
  {{ line_item.url }}
{% endfor %}
Descriptions of Liquid properties that you can use with the subscription contract line item object in notification templates
PropertyDescription
url
The URL to the product details page for the line item product variant.
requires_shipping
Whether the line item requires physical shipping.
unit_price_measurement
The line item unit price measurement.
selling_plan_allocation
The line item selling plan allocation.

Subscription contract delivery method properties

The properties for the delivery method being used in this billing cycle. Access the delivery method properties through the parent subscription_contract_billing_cycle.delivery_method property.

Example

{% if subscription_contract_billing_cycle.delivery_method != blank %}
  Delivery method: {{ subscription_contract_billing_cycle.delivery_method.title }}
{% endif %}
Descriptions of Liquid properties that you can use with the subscription contract delivery method object in notification templates
PropertyDescription
title
The title of the shipping option associated with the delivery method.
type
The delivery method type.

One of shipping, local, or pick-up.

Subscription contract payment instrument properties

Details about the payment instrument for the subscription contract. This payment instrument is used to bill the customer. Access payment instrument properties through the parent subscription_contract_billing_cycle.payment_instrument property.

Example

{% assign instrument = subscription_contract_billing_cycle.payment_instrument %}

<img src="{{ instrument.payment_type | payment_type_img_url }} "  alt="{{ instrument.credit_card_company }}" />
{{ instrument.credit_card_company }} ending with {{ instrument.credit_card_last_four_digits }}
Descriptions of Liquid properties that you can use with the subscription contract payment instrument object in notification templates
PropertyDescription
payment_type
The type of payment method represented by the payment instrument.

Use payment filters to output an image URL or SVG.
credit_card_brand
The brand of the credit card.
credit_card_company
The name of the credit card company.
credit_card_last_four_digits
The last 4 digits of the credit card.

Email notification properties

Descriptions of Liquid properties that you can use with the email notifications object in notification templates
PropertyDescription
shop.email_logo_url
The url for the logo specified in the Customize email templates section of the admin.
shop.email_logo_width
The logo width (pixels) specified in the Customize email templates section of the admin.
shop.email_accent_color
The HEX code for the accent color specified in the Customize email templates section of the admin.
Can’t find the answers you’re looking for? We’re here to help.