Liquid variables
Exporteo makes use of the Liquid template language to transform orders to a desired output format.
The base variable is the order
object, or the orders
list if you are processing orders in bulk. The order
object has the same properties as orders returned by Shopify REST API: https://shopify.dev/docs/admin-api/rest/reference/orders/order
Experteo has the ability to pull additional data related to the processed order when you reference a specific property in the output template.
order metafields
order.metafields
fulfillment orders
order.fulfillment_orders
customer metafields
order.customer.metafields
product metafields
item.product.metafields
variant metafields
item.variant.metafields
transactions
orders.transactions
Billing Address
The mailing address associated with the payment method. This address is an optional field that won't be available on orders that do not require a payment method. It has the following properties:
order.billing_address.address1
: The street address of the billing address.order.billing_address.address2
: An optional additional field for the street address of the billing address.order.billing_address.city
: The city, town, or village of the billing address.order.billing_address.company
: The company of the person associated with the billing address.order.billing_address.country
: The name of the country of the billing address.order.billing_address.country_code
: The two-letter code (ISO 3166-1 format) for the country of the billing address.order.billing_address.first_name
: The first name of the person associated with the payment method.order.billing_address.last_name
: The last name of the person associated with the payment method.order.billing_address.latitude
: The latitude of the billing address.order.billing_address.longitude
: The longitude of the billing address.order.billing_address.name
: The full name of the person associated with the payment method.order.billing_address.phone
: The phone number at the billing address.order.billing_address.province
: The name of the region (province, state, prefecture, …) of the billing address.order.billing_address.province_code
: The two-letter abbreviation of the region of the billing address.order.billing_address.zip
: The postal code (zip, postcode, Eircode, …) of the billing address.
Company
B2B orders include order.company
variable that represents information about the purchasing company for the order.
order.company.id
order.company.external_id
order.company.name
order.company.location_id
order.company.location.id
order.company.location.external_id
order.company.location.name
Discount codes
order.discount_applications
an ordered list of discount applications. Each discount application consists of the following properties:
allocation_method: The method by which the discount application value has been allocated to entitled lines. Valid values:
across
: The value is spread across all entitled lines.each
: The value is applied onto every entitled line.one
: The value is applied onto a single line
code: The discount code that was used to apply the discount. Available only for discount code applications.
description: The description of the discount application, as defined by the merchant or the Shopify Script. Available only for manual and script discount applications.
target_selection: The lines on the order, of the type defined by
target_type
, that the discount is allocated over. Valid values:all
: The discount is allocated onto all lines,entitled
: The discount is allocated only onto lines it is entitled for.explicit
: The discount is allocated onto explicitly selected lines.
target_type: The type of line on the order that the discount is applicable on. Valid values:
line_item
: The discount applies to line items.shipping_line
: The discount applies to shipping lines.
title: The title of the discount application, as defined by the merchant. Available only for manual discount applications.
type: The discount application type. Valid values:
automatic
: The discount was applied automatically, such as by a Buy X Get Y automatic discount.discount_code
: The discount was applied by a discount code.manual
: The discount was manually applied by the merchant (for example, by using an app or creating a draft order).script
: The discount was applied by a Shopify Script.
value: The value of the discount application as a decimal. This represents the intention of the discount application. For example, if the intent was to apply a 20% discount, then the value will be
20.0
. If the intent was to apply a $15 discount, then the value will be15.0
.value_type: The type of the value. Valid values:
fixed_amount
: A fixed amount discount value in the currency of the order.percentage
: A percentage discount value.
A discount application of $5 off with code HIFIVE.
order.discount_codes
contains a list of discounts applied to the order. Each discount object includes the following attributes:
amount: The amount that's deducted from the order total. When you create an order, this value is the percentage or monetary amount to deduct. After the order is created, this property returns the calculated amount.
code: When the associated discount application is of type
code
, this property returns the discount code that was entered at checkout. Otherwise this property returns the title of the discount that was applied.type: The type of discount:
fixed_amount
: Appliesamount
as a unit of the store's currency. For example, ifamount
is 30 and the store's currency is USD, then 30 USD is deducted from the order total when the discount is applied.percentage
: Applies a discount ofamount
as a percentage of the order total.shipping
: Applies a free shipping discount on orders that have a shipping rate less than or equal toamount
. For example, ifamount
is 30, then the discount will give the customer free shipping for any shipping rate that is less than or equal to $30.
In most cases it's possible to apply only one discount code to a Shopify order. Even though order.discount_codes
is a list, you can assume that there will be at most one discount code. Here is a code snippet that returns a discount value or 0 if there was no discount :
Note Attributes
order.note_attributes
are custom form fields that let you collect additional information from your customers on the cart page. They appear in the Additional Details section of an order details page.
order.note_attributes
is a list of objects that consist of name
and value
, for example:
To get an attribute value by name, you can use the following Liquid expression:
Line Items
order.line_items
contains the list of order line items. Each line item has the following properties:
current_quantity: The line item's quantity, minus the removed quantity.
discount_allocations: An ordered list of amounts allocated by discount applications. Each discount allocation is associated to a particular discount application.
amount
: The discount amount allocated to the line in the shop currency.discount_application_index
: The index of the associated discount application in the order'sdiscount_applications
list.amount_set
: The discount amount allocated to the line item in shop and presentment currencies.
duties: A list of duty objects, each containing information about a duty on the line item.
fulfillable_quantity: The amount available to fulfill, calculated as follows:
quantity - max(refunded_quantity, fulfilled_quantity) - pending_fulfilled_quantity - open_fulfilled_quantity
fulfillment_service: The service provider that's fulfilling the item. Valid values:
manual
, or the name of the provider, such asamazon
orshipwire
.fulfillment_status: How far along an order is in terms line items fulfilled. Valid values:
null
,fulfilled
,partial
, andnot_eligible
.gift_card: Whether the item is a gift card. If
true
, then the item is not taxed or considered for shipping charges.grams: The weight of the item in grams.
id: The ID of the line item.
name: The name of the product variant.
options_with_values: An array of selected values from the item's product options. Each option is a key-value pair with
option.name
as the option andoption.value
as the option value. Elements inline_item.options_with_values
can be displayed using afor
loop.origin_location: The location of the line item’s fulfillment origin.
id
: The location ID of the line item’s fulfillment origin. Used by Shopify to calculate applicable taxes. This is not the ID of the location where the order was placed. You can use the FulfillmentOrder resource to determine the location an item will be sourced from.country_code
: The two-letter code (ISO 3166-1 format) for the country of the item's supplier.province_code
: The two-letter abbreviation for the region of the item's supplier.name
: The name of the item's supplier.address1
: The street address of the item's supplier.address2
: The suite number of the item's supplier.city
: The city of the item's supplier.zip
: The zip of the item's supplier.
price: The price of the item before discounts have been applied in the shop currency.
price_set: The price of the line item in shop and presentment currencies.
product_id: The ID of the product that the line item belongs to.
product.description: A stripped description of the product, single line with HTML tags removed.
product.featured_image_url: The URL of the main image of the product.
product.product_type: The product type. A categorization for the product used for filtering and searching products.
product.tags: The list of product tags.
properties: An array of custom information for the item that has been added to the cart. Each array element is an object consisting of
name
andvalue
. Often used to provide product customization options, for example, by the Infinite Options app.quantity: The number of items that were purchased. Doesn't reflect edited or removed items.
requires_shipping: Whether the item requires shipping.
sku: The item's SKU (stock keeping unit).
title: The title of the product.
variant_id: The ID of the product variant.
variant_title: The title of the product variant.
variant.barcode: The barcode of the product variant.
variant.harmonized_system_code: The harmonized system code of the item. Also known as the HS tariff code.
variant.compare_at_price: The compare at price of the product variant. The value is taken from current product data. If you are exporting historical orders, then the compare at price may not reflect the value that was present when an order was placed.
variant.cost: The unit cost of the product variant.
variant.country_code_of_origin: The two-letter code of the country of origin.
vendor: The name of the item's supplier.
taxable: Whether the item was taxable.
tax_lines: A list of tax line objects, each of which details a tax applied to the item.
title
: The name of the tax.price
: The amount added to the order for this tax in the shop currency.price_set
: The amount added to the order for this tax in shop and presentment currencies.rate
: The tax rate applied to the order to calculate the tax price.rate_percentage
: The tax rate in percentage format.
tip_payment_gateway: The payment gateway used to tender the tip, such as
shopify_payments
. Present only on tips.tip_payment_method: The payment method used to tender the tip, such as
Visa
. Present only on tips.total_discount: The total amount of the discount allocated to the line item in the shop currency. This field must be explicitly set using draft orders, Shopify scripts, or the API. Instead of using this field, Shopify recommends using
discount_allocations
, which provides the same information.total_discount_set: The total amount allocated to the line item in the presentment currency. Instead of using this field, Shopify recommends using
discount_allocations
, which provides the same information.
The best way to process line items is to use a for loop.
Sum tax lines
You can notice that each line item has a list of tax_lines. Use the following code snippet to calculate total tax and net price per line item:
Metafields
Metafields contain additional information associated with an order, customer, product or variant. You can configure metafields in your store settings. They can be also created and filled in by other apps. To get value of a specific metafield, you need to provide its namespace and key. For example:
Shipping Address
The mailing address to where the order will be shipped. This address is optional and will not be available on orders that do not require shipping. It has the following properties:
order.shipping_address.address1
: The street address of the billing address.order.shipping_address.address2
: An optional additional field for the street address of the billing address.order.shipping_address.city
: The city, town, or village of the billing address.order.shipping_address.company
: The company of the person associated with the billing address.order.shipping_address.country
: The name of the country of the billing address.order.shipping_address.country_code
: The two-letter code (ISO 3166-1 format) for the country of the billing address.order.shipping_address.first_name
: The first name of the person associated with the payment method.order.shipping_address.last_name
: The last name of the person associated with the payment method.order.shipping_address.latitude
: The latitude of the billing address.order.shipping_address.longitude
: The longitude of the billing address.order.shipping_address.name
: The full name of the person associated with the payment method.order.shipping_address.phone
: The phone number at the billing address.order.shipping_address.province
: The name of the region (province, state, prefecture, …) of the billing address.order.shipping_address.province_code
: The two-letter abbreviation of the region of the billing address.order.shipping_address.zip
: The postal code (zip, postcode, Eircode, …) of the billing address.
Shipping Cost
order.total_shipping_price_set
: The total shipping price of the order, excluding discounts and returns, in shop and presentment currencies. Iforder.taxes_included
is set totrue
, thentotal_shipping_price_set
includes taxes.
Shipping Method
order.shipping_lines
: An array of objects, each of which details a shipping method used. Each object has the following properties:code: A reference to the shipping method.
discounted_price: The price of the shipping method after line-level discounts have been applied. Doesn't reflect cart-level or order-level discounts.
discounted_price_set: The price of the shipping method in both shop and presentment currencies after line-level discounts have been applied.
price: The price of this shipping method in the shop currency. Can't be negative.
price_set: The price of the shipping method in shop and presentment currencies.
source: The source of the shipping method.
title: The title of the shipping method.
tax_lines: A list of tax line objects, each of which details a tax applicable to this shipping line.
carrier_identifier: A reference to the carrier service that provided the rate. Present when the rate was computed by a third-party carrier service.
requested_fulfillment_service_id: A reference to the fulfillment service that is being requested for the shipping method. Present if the shipping method requires processing by a third party fulfillment service;
null
otherwise.
If you are sure that your orders won't be divided into multiple shipments, then you can simplify getting the shipping method to {{ order.shipping_lines[0].title }}
.
You can use case/when instructions to map shipping method names to supplier-accepted codes.
Status
Shopify includes 2 fields describing order status:
order.financial_status
The status of payments associated with the order. Can only be set when the order is created. Possible values:pending: The payments are pending. Payment might fail in this state. Check again to confirm whether the payments have been paid successfully.
authorized: The payments have been authorized.
partially_paid: The order have been partially paid.
paid: The payments have been paid.
partially_refunded: The payments have been partially refunded.
refunded: The payments have been refunded.
voided: The payments have been voided.
order.fulfillment_status
The order's status in terms of fulfilled line items. Possible values:fulfilled: Every line item in the order has been fulfilled.
null: None of the line items in the order have been fulfilled.
partial: At least one line item in the order has been fulfilled.
restocked: Every line item in the order has been restocked and the order canceled.
Totals
If you added an item filter, and selected the checkbox to exclude items not matching the filter, then you may need to calculate totals based on the filtered line items. For example, check out the code snippet to calculate total weight.
order.total_discounts
The total discounts applied to the price of the order in the shop currency.order.total_discounts_set
The total discounts applied to the price of the order in shop and presentment currencies.order.total_discounts_set.shop_money.amount
order.total_discounts_set.shop_money.currency
order.total_discounts_set.presentment_money.amount
order.total_discounts_set.presentment_money.currency
order.total_line_items_price
The sum of all line item prices in the shop currency.order.total_line_items_price_set
The total of all line item prices in shop and presentment currencies.order.total_line_items_price_set.shop_money.amount
order.total_line_items_price_set.shop_money.currency
order.total_line_items_price_set.presentment_money.amount
order.total_line_items_price_set.presentment_money.currency
order.total_outstanding
The total outstanding amount of the order in the shop currency.order.total_price
The sum of all line item prices, discounts, shipping, taxes, and tips in the shop currency.order.total_price_set
The total price of the order in shop and presentment currencies.order.total_price_set.shop_money.amount
order.total_price_set.shop_money.currency
order.total_price_set.presentment_money.amount
order.total_price_set.presentment_money.currency
order.total_shipping_price_set
The total shipping price of the order, excluding discounts and returns, in shop and presentment currencies. Iftaxes_included
is set totrue
, thenorder.total_shipping_price_set
includes taxes.order.total_tax
The sum of all the taxes applied to the order in the shop currencyorder.total_tax_set
The total tax applied to the order in shop and presentment currencies.order.total_tax_set.shop_money.amount
order.total_tax_set.shop_money.currency
order.total_tax_set.presentment_money.amount
order.total_tax_set.presentment_money.currency
order.total_tip_received
The sum of all the tips in the order in the shop currency.order.total_weight
The sum of all line item weights in grams.
Transactions
order.transactions
contains the list of transactions. Each transaction has the following properties:
The best way to output all transactions is to use a for loop.
To get credit card details (company, masked number):
Last updated