You can include dynamic variables in customizable contents across Shipup:
- in your notification content and email templates
- in the tracking page's promotional banners
- in the link to your tracking page that will be included in your notifications
Those variables will be replaced by your store information when any of the above assets are generated. This store information can be data about your company, customers, or orders, including their delivery data.
Those variables can be included using the {{ variable_name }} syntax. If you want to dig deeper, the syntax used is the Liquid Markup Language.
Here's a list of variables and their availability. For variable availability in notifications, please note that Shipup notifications have a source. The source represents the resource the notification was generated for. It can be an order, fulfillment, tracker or feedback.
For instance, the order placed notification source is an order, the delay in fulfillment production notification source is a fulfillment, and all shipping event notifications sources are trackers.
📘A good way to know if a variable is available when editing an asset is to rely on the auto-complete liquid suggestions displayed in the text field for this asset
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| order.email | Customer's email | All | Yes |
| order.order_number | Order Number | All | Yes |
| order.ordered_at | Order date, formatted depending on the destination country | All | Yes |
| order.first_name | Customer's first name | All | Yes |
| order.last_name | Customer's last name | All | Yes |
| order.full_name | Customer's full name | All | Yes |
| order.phone | Customer's phone number (not recommended for the tracking page) | All | Yes |
| order.masked_phone_number | Masked customer phone number (for instance +33 X XX XX X1 23). Recommended for the tracking page only | All | Yes |
| order.fulfillment_count | Number of fulfillments for this order | All | Yes |
| order.tracker_count | Number of trackers for this order | All | Yes |
| order.language_code | Customer's order language code | All | Yes |
| order.order_datetime | Order date of the package in timestamp format | All | Yes |
| order.current_datetime | Current timestamp (for notifications, this will be the time at which the notification is generated. For a tracking page link, the time at which it is accessed, etc...) | All | Yes |
| order.custom_variables | Custom variables for order | All | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| order.order_details.total_order_price_excl_tax | Order total price (excl taxes). See MoneyBag variables | All | Yes |
| order.order_details.total_order_price_incl_tax | Order total price (incl taxes). See MoneyBag variables | All | Yes |
| order.order_details.shipping_cost | Order shipping cost. See MoneyBag variables | All | Yes |
| order.order_details.duty_paid | Order duty price. See MoneyBag variables | All | Yes |
| order.order_details.vat | Order VAT. See MoneyBag variables | All | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| shipping_address.name | Shipping address full name | All | Yes |
| shipping_address.first_name | Shipping address first name | All | Yes |
| shipping_address.last_name | Shipping address last name | All | Yes |
| shipping_address.company_title | Shipping address company name | All | Yes |
| shipping_address.address1 | Shipping address street first line | All | Yes |
| shipping_address.address2 | Shipping address street second line | All | Yes |
| shipping_address.city | Shipping address city | All | Yes |
| shipping_address.zip | Shipping address ZIP code | All | Yes |
| shipping_address.country_code | Shipping address country code (2 letters ISO code) | All | Yes |
| shipping_address.country | Shipping address full country name | All | Yes |
| shipping_address.state_code | Shipping address state code (for countries with states, like the US) | All | Yes |
| shipping_address.state | Shipping address full state name (for countries with states, like the US) | All | Yes |
| shipping_address.display_address | All shipping address information. Newlines are marked with tags | All | Yes |
| shipping_address.can_be_displayed | Boolean value indicating if shipping address' names, address1, city and zip are all present | All | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| shop.name | Name of your shop (needs to be added in the settings) | All | Yes |
| shop.phone | Support phone of your shop (needs to be added in the settings) | All | Yes |
| shop.website_url | URL of your website (needs to be added in the settings) | All | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| carrier.name | Name of the shipping carrier | Tracker only | Yes |
| carrier.code | Code of the carrier. See full list | Tracker only | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| carrier_service.name | Name of the shipping carrier's service | Tracker only | Yes |
| carrier_service.code | Code of the carrier's service. See full list | Tracker only | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| fulfillment.fulfillment_number | Fulfillment number | Tracker and fulfillment | Yes |
| fulfillment.warehouse_id | Identifier of the warehouse | Tracker and fulfillment | Yes |
| fulfillment.custom_variables | Fulfillment custom variables | Tracker and fulfillment | Yes |
| fulfillment.canceled_line_item? | Boolean value set to true if at least one of the items of the fulfillment is canceled or partially canceled | Tracker and fulfillment | Yes |
| fulfillment.tracker_count | Number of trackers for this fulfillment | Tracker and fulfillment | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| tracker.tracking_number | Tracking number of the shipped package | Tracker | Yes |
| tracker.expedition_date | Expedition date of the package | Tracker | Yes |
| tracker.expected_delivery_date | Expected delivery date of the package | Tracker | Yes |
| tracker.order_shipment_rank | Shipment rank of the current tracker for its order. e.g., if one package is already shipped, this rank will be 2 for the 2nd package when shipped. Value is null if the package is not shipped yet | Tracker | Yes |
| tracker.order_delivery_rank | Delivery rank of the current tracker for its order. e.g., if one package is already delivered, this rank will be 2 for the 2nd package when delivered. Value is null if the package is not delivered yet | Tracker | Yes |
| tracker.fulfillment_shipment_rank | Shipment rank of the current tracker for its fulfillment. e.g., if one package is already shipped, this rank will be 2 for the 2nd package when shipped. Value is null if the package is not shipped yet | Tracker | Yes |
| tracker.fulfillment_delivery_rank | Delivery rank of the current tracker for its fulfillment. e.g., if one package is already delivered, this rank will be 2 for the 2nd package when delivered. Value is null if the package is not delivered yet | Tracker | Yes |
| tracker.pickup_changed | Boolean value set to true if pickup point has changed during the life of the tracker | Tracker | Yes |
| tracker.untracked_carrier_name | Carrier name to be displayed as a fallback if Shipup can't find a matching carrier. This name is the carrier title raw value of your shop transmitted to Shipup. | Tracker | Yes |
| tracker.untracked_carrier_url | Raw link to the carrier's tracking page as received from your shop. Should only be used in very specific situations where Shipup doesn't know the package's carrier, e.g. for untracked packages | Tracker | Yes |
| tracker.tracking_link | Link to the package tracking on the carrier's website. If you're using Shipup's tracking page, this link should only be used when you want to bypass the Shipup tracking page and redirect your customer directly to the carrier's website. Not to be mistaken with notification.tracking_link which redirects either to the Shipup tracking page or the carrier's website. | Tracker | Yes |
| tracker.expedition_datetime | Expedition date of the package in timestamp format | Tracker | Yes |
| tracker.expected_delivery_datetime | Expected delivery date of the package in timestamp format | Tracker | Yes |
| tracker.pickup_point_merchant_id | If the carrier code is in_store_collection, allows to assign a pickup store to the tracker | Tracker | Yes |
| tracker.custom_variables | Tracker custom variables | Tracker | Yes |
These variables are only available if the carrier is in_store_collection
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| pickup_point.store_name | Collection store name | Tracker | Yes |
| pickup_point.phone | Collection store phone number | Tracker | Yes |
| pickup_point.display_address | Collection store address. The address is displayed on multiple lines. Each line break is marked with <br> tags. | Tracker | Yes |
| pickup_point.display_opening_hours | Collection store opening hours. Each day is shown on a separate line. Line breaks are marked with <br> tags. | Tracker | Yes |
| pickup_point.pickup_code | The code the merchant needs to provide to pick up his package at a given store | Tracker | Yes |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| notification.same_notification_count | Counts the number of occurrences of this same notification for the source of the notification (will be 0 for the first occurrence) | Order, Fulfillment and Tracker | No |
| notification.tracking_link | Redirects to either the Shipup tracking page or to the tracking page on the shipping carrier's website, depending on the option selected in your tracking page settings | Order, Fulfillment and Tracker | No |
| notification.cancel_sending | If this variable is rendered in the notification, the notification will not be sent | Order, Fulfillment and Tracker | No |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| short_tracking_url | Shortened URL version for the notification.tracking_link variable. Redirects to either the Shipup tracking page or to the tracking page on the shipping carrier's website, depending on the option selected in your tracking page settings. Looks like https://shp.ai/xxxxxxx (22 characters) | SMS only, all sources | No |
| short_survey_url | Shortened URL of the delivery survey. Looks like https://shp.ai/xxxxxxx (22 characters) | SMS only, all sources | No |
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| feedback.cancel_sending | If this variable is rendered in the notification, the notification will not be sent | Feedback | No |
| feedback.satisfied | Boolean value saying if the user clicked on the satisfied logo or not | Feedback | No |
| feedback.score | NPS filled up by the customer | Feedback | No |
| feedback.scenario | Scenario chosen by the customer if any | Feedback | No |
| feedback.sub_scenario | Sub-Scenario chosen by the customer if any | Feedback | No |
| feedback.dissatisfied_reason | Concatenation of the scenario and the sub-scenario | Feedback | No |
| feedback.city | Shipping address city | Feedback | No |
| feedback.properties | Hash value with all feedback properties | Feedback | No |
| feedback.free_text | Answer to the last question of the feedback | Feedback | No |
In this section, we describe how you can use a MoneyBag liquid variable. xx represents the instance you are using. For instance, if you want to display to formatted price of the item.price, you can replace xx by item.price, which gives {{ item.price.format }}
| VARIABLE NAME | DESCRIPTION | NOTIFICATIONS | TRACKING PAGE |
|---|
| xx.format | Formatted price using the presentment_money (amount and currency of the customer) | Depending of the source of the price (order or line item) | Yes |
| xx.presentment_money.amount | Price of the Order or Line item in the currency of the customer | Depending of the source of the price (order or line item) | Yes |
| xx.presentment_money.currency_code | Currency code of the Order or Line item displayed to the customer | Depending of the source of the price (order or line item) | Yes |
| xx.presentment_money.format | Formatted price in the currency of the customer | Depending of the source of the price (order or line item) | Yes |
| xx.merchant_money.amount | Price of the Order or Line item in the currency of the merchant | Depending of the source of the price (order or line item) | Yes |
| xxx.merchant_money.currency_code | Default currency code of the Order or Line item of the merchant | Depending of the source of the price (order or line item) | Yes |
| xx.merchant_money.format | Formatted price in the currency of the merchant | Depending of the source of the price (order or line item) | Yes |