Skip to content

Shopify data features

This article provides an overview of our Shopify features, including what Shopify data is tracked and example payloads, historical backfill, and product syncs.

Tracked Shopify events

Event: ecommerce.v1.product_viewed
Type: Recommended event
Triggered: When a customer views a product page
Use Case: Browse abandonment

Variable Liquid templating
product_id {{event_properties.${product_id}}}
product_name {{event_properties.${product_name}}}
variant_id {{event_properties.${variant_id}}}
image_url {{event_properties.${image_url}}}
product_url <your-store.myshopify.com>{{event_properties.${product_url}}}

Add your Shopify site domain before the URL.
price {{event_properties.${price}}}
currency {{event_properties.${currency}}}
source {{event_properties.${source}}}
sku {{event_properties.${metadata}[0].sku}}
type event_properties.${type}

Event: ecommerce.v1.cart_updated
Type: Recommended event
Triggered: When a customer adds, removes, or updates their shopping cart
Use Case: Cart abandonment

For Abandoned Cart Canvases, you first need to add the initial shopping cart Liquid tag to gain context of the shopping cart in your message.

Then you can add the following shopping cart Liquid tags into your message.

Variable Liquid templating
cart_id {{ shopping_cart.cart_id }}
currency {{ shopping_cart.currency }}
total_value {{ shopping_cart.total_value }}
product_id {{ shopping_cart.products[0].product_id }}
product_name {{ shopping_cart.products[0].product_name }}
variant_id {{ shopping_cart.products[0].variant_id }}
image_url {{ shopping_cart.products[0].image_url }}
product_url {{ shopping_cart.products[0].product_url }}
quantity {{ shopping_cart.products[0].quantity }}
price {{ shopping_cart.products[0].price }}
sku {{ shopping_cart.products[0].metadata[0].sku }}
source {{ shopping_cart.source }}
metadata (value) {{ shopping_cart.metadata[0].<add_value_here> }}

Event: ecommerce.v1.checkout_started
Type: Recommended event
Triggered: When a customer adds, removes, or updates their shopping cart
Use Case: Checkout abandonment

For Abandoned Checkout Canvases, you first need to use the following Liquid tag:

Then you can add the following Liquid tags into your message to reference the products within your cart at the point of checkout.

Variable Liquid templating
cart_id {{ shopping_cart.cart_id }}
currency {{ shopping_cart.currency }}
total_value {{ shopping_cart.total_value }}
product_id {{ shopping_cart.products[0].product_id }}
product_name {{ shopping_cart.products[0].product_name }}
variant_id {{ shopping_cart.products[0].variant_id }}
image_url {{ shopping_cart.products[0].image_url }}
product_url {{ shopping_cart.products[0].product_url }}
quantity {{ shopping_cart.products[0].quantity }}
price {{ shopping_cart.products[0].price }}
sku {{ shopping_cart.products[0].metadata.sku }}
source {{ shopping_cart.source }}
checkout_url {{ shopping_cart.metadata[0].checkout_url }}

Event: ecommerce.v1.order_placed
Type: Recommended event
Triggered: When a user successfully completes the checkout process and places an order
Use Case: Order confirmation, post-purchase retargeting, upsells or cross-sells

Variable Liquid templating
cart_id {{event_properties.${cart_id}}}
currency {{event_properties.${currency}}}
discounts {{event_properties.${discounts}}}
order_id {{event_properties.${order_id}}}
product_id {{event_properties.${products}[0].product_id}}
product_name {{event_properties.${products}[0].product_name}}
variant_id {{event_properties.${products}[0].variant_id}}
quantity {{event_properties.${products}[0].quantity}}
sku {{event_properties.${products}[0].metadata.sku}}
total_discounts {{event_properties.${total_discounts}}}
order_status_url {{event_properties.${metadata}.order_status_url}}
order_number {{event_properties.${metadata}.order_number}}
tags {{event_properties.${metadata}.tags}}
referring_site {{event_properties.${metadata}.referring_site}}
payment_gateway_names {{event_properties.${metadata}.payment_gateway_names}}

Event: shopify_fulfilled_order
Type: Custom Event
Triggered: When a user’s order is fulfilled and ready for shipping
Use Case: (Transactional) Fulfillment update

Variable Liquid templating
Order ID {{event_properties.${order_id}}}
Total Price {{event_properties.${total_price}}}
Total Discounts {{event_properties.${total_discounts}}}
Confirmed Status {{event_properties.${confirmed}}}
Order Status URL {{event_properties.${order_status_url}}}
Order Number {{event_properties.${order_number}}}
Cancelled Timestamp {{event_properties.${cancelled_at}}}
Closed Timestamp {{event_properties.${closed_at}}}
Item ID {{event_properties.${line_items}[0].product_id}}
Item Quantity {{event_properties.${line_items}[0].quantity}}
Item SKU {{event_properties.${line_items}[0].sku}}
Item Title {{event_properties.${line_items}[0].title}}
Item Vendor {{event_properties.${line_items}[0].vendor}}
Item Name {{event_properties.${line_items}[0].name}}
Item Properties {{event_properties.${line_items}[0].properties}}
Item Price {{event_properties.${line_items}[0].price}}
Shipping Title {{event_properties.${shipping}[0].title}}
Shipping Price {{event_properties.${shipping}[0].price}}
Fulfillment Status {{event_properties.${fulfillment_status}}}
Fulfillment Shipment Status {{event_properties.${fulfillments}[0].shipment_status}}
Status {{event_properties.${fulfillments}[0].status}}
Fulfillment Tracking Company {{event_properties.${fulfillments}[0].Fulfillment tracking_company}}
Fulfillment Tracking Number {{event_properties.${fulfillments}[0].Fulfillment tracking_number}}
Fulfillment Tracking Numbers {{event_properties.${fulfillments}[0].Fulfillment tracking_numbers}}
Fulfillment Tracking URL {{event_properties.${fulfillments}[0].Fulfillment tracking_url}}
Fulfillment Tracking URLs {{event_properties.${fulfillments}[0].Fulfillment tracking_urls}}
Fulfillment Status {{event_properties.${fulfillments}[0].line_items[0].fulfillment_status}}
Fulfillment Name {{event_properties.${fulfillments}[0].line_items[0].name}}
Fulfillment Price {{event_properties.${fulfillments}[0].line_items[0].price}}
Fulfillment Product ID {{event_properties.${fulfillments}[0].line_items[0].product_id}}
Fulfillment Quantity {{event_properties.${fulfillments}[0].line_items[0].quantity}}
Fulfillment Shipping {{event_properties.${fulfillments}[0].line_items[0].requires_shipping}}
Fulfillment SKU {{event_properties.${fulfillments}[0].line_items[0].sku}}
Fulfillment Title {{event_properties.${fulfillments}[0].line_items[0].title}}
Fulfillment Vendor {{event_properties.${fulfillments}[0].line_items[0].vendor
Variant ID {{event_properties.${line_items}[0].variant_id}}
Variant Title {{event_properties.${line_items}[0].variant_title}}

Event: shopify_partially_fulfilled_order
Type: Custom Event
Triggered: When part of a user’s order is fulfilled and ready for shipping
Use Case: (Transactional) Fulfillment update

Variable Liquid templating
Order ID {{event_properties.${order_id}}}
Total Price {{event_properties.${total_price}}}
Total Discounts {{event_properties.${total_discounts}}}
Confirmed Status {{event_properties.${confirmed}}}
Order Status URL {{event_properties.${order_status_url}}}
Order Number {{event_properties.${order_number}}}
Cancelled Timestamp {{event_properties.${cancelled_at}}}
Closed Timestamp {{event_properties.${closed_at}}}
Item ID {{event_properties.${line_items}[0].product_id}}
Item Quantity {{event_properties.${line_items}[0].quantity}}
Item SKU {{event_properties.${line_items}[0].sku}}
Item Title {{event_properties.${line_items}[0].title}}
Item Vendor {{event_properties.${line_items}[0].vendor}}
Item Name {{event_properties.${line_items}[0].name}}
Item Properties {{event_properties.${line_items}[0].properties}}
Item Price {{event_properties.${line_items}[0].price}}
Shipping Title {{event_properties.${shipping}[0].title}}
Shipping Price {{event_properties.${shipping}[0].price}}
Fulfillment Status {{event_properties.${fulfillment_status}}}
Fulfillment Shipment Status {{event_properties.${fulfillments}[0].shipment_status}}
Fulfillment Status {{event_properties.${fulfillments}[0].status}}
Fulfillment Tracking Company {{event_properties.${fulfillments}[0].tracking_company}}
Fulfillment Tracking Number {{event_properties.${fulfillments}[0].tracking_number}}
Fulfillment Tracking Numbers {{event_properties.${fulfillments}[0].tracking_numbers}}
Fulfillment Tracking URL {{event_properties.${fulfillments}[0].tracking_url}}
Fulfillment Tracking URLs {{event_properties.${fulfillments}[0].tracking_urls}}
Fulfillment Status {{event_properties.${fulfillments}[0].line_items[0].fulfillment_status}}
Fulfillment Name {{event_properties.${fulfillments}[0].line_items[0].name}}
Fulfillment Price {{event_properties.${fulfillments}[0].line_items[0].price}}
Fulfillment Product ID {{event_properties.${fulfillments}[0].line_items[0].product_id}}
Fulfillment Quantity {{event_properties.${fulfillments}[0].line_items[0].quantity}}
Fulfillment Shipping {{event_properties.${fulfillments}[0].line_items[0].requires_shipping}}
Fulfillment SKU {{event_properties.${fulfillments}[0].line_items[0].sku}}
Fulfillment Title {{event_properties.${fulfillments}[0].line_items[0].title}}
Fulfillment Vendor {{event_properties.${fulfillments}[0].line_items[0].vendor
Variant ID {{event_properties.${line_items}[0].variant_id}}
Variant Title {{event_properties.${line_items}[0].variant_title}}

Event: shopify_paid_order
Type: Custom Event
Triggered: When a user’s order is marked as paid within Shopify

Use Case: (Transactional) Payment confirmation

Variable Liquid templating
Order ID {{event_properties.${order_id}}}
Confirmed Status {{event_properties.${confirmed}}}
Order Status URL {{event_properties.${order_status_url}}}
Order Number {{event_properties.${order_number}}}
Cancelled Timestamp {{event_properties.${cancelled_at}}}
Total Discounts {{event_properties.${total_discounts}}}
Total Price {{event_properties.${total_price}}}
Tags {{event_properties.${tags}}}
Discount Codes {{event_properties.${discount_codes}}}
Item ID {{event_properties.${line_items}[0].product_id}}
Item Quantity {{event_properties.${line_items}[0].quantity}}
Item SKU {{event_properties.${line_items}[0].sku}}
Item Title {{event_properties.${line_items}[0].title}}
Item Vendor {{event_properties.${line_items}[0].vendor}}
Item Properties {{event_properties.${line_items}[0].properties}}
Item Price {{event_properties.${line_items}[0].price}}
Shipping Title {{event_properties.${shipping}[0].title}}
Shipping Price {{event_properties.${shipping}[0].price}}
Variant ID {{event_properties.${line_items}[0].variant_id}}
Variant Title {{event_properties.${line_items}[0].variant_title}}

Event: shopify_cancelled_order
Type: Custom Event
Triggered: When a user’s order is cancelled
Use Case: (Transactional) Order cancellation confirmation

Variable Liquid templating
Order ID {{event_properties.${order_id}}}
Total Price {{event_properties.${total_price}}}
Total Discounts {{event_properties.${total_discounts}}}
Confirmed {{event_properties.${confirmed}}}
Order Status URL {{event_properties.${order_status_url}}}
Order Number {{event_properties.${order_number}}}
Cancelled Timestamp {{event_properties.${cancelled_at}}}
Tags {{event_properties.${tags}}}
Discount Codes {{event_properties.${discount_codes}}}
Fulfillment Status {{event_properties.${fulfillment_status}}}
Fulfillments {{event_properties.${fulfillments}}}
Item ID {{event_properties.${line_items}[0].product_id}}
Item Quantity {{event_properties.${line_items}[0].quantity}}
Item SKU {{event_properties.${line_items}[0].sku}}
Item Title {{event_properties.${line_items}[0].title}}
Item Vendor {{event_properties.${line_items}[0].vendor}}
Item Name {{event_properties.${line_items}[0].name}}
Item Properties {{event_properties.${line_items}[0].properties}}
Fulfillment Status {{event_properties.${line_items}[0].fulfillment_status}}
Shipping Title {{event_properties.${shipping}[0].title}}
Shipping Price {{event_properties.${shipping}[0].price}}
Variant ID {{event_properties.${line_items}[0].variant_id}}
Variant Title {{event_properties.${line_items}[0].variant_title}}

Event: shopify_order_refunded
Type: Custom Event
Triggered: When a user’s order is refunded
Use Case: (Transactional) Refund confirmation

Variable Liquid templating
Order ID {{event_properties.${order_id}}}
Order Note {event_properties.${note}}}
Item ID {{event_properties.${line_items}[0].product_id}}
Item Quantity {{event_properties.${line_items}[0].quantity}}
Item SKU {{event_properties.${line_items}[0].sku}}
Item Title {{event_properties.${line_items}[0].title}}
Item Vendor {{event_properties.${line_items}[0].vendor}}
Item Name {{event_properties.${line_items}[0].name}}
Item Properties {{event_properties.${line_items}[0].properties}}
Item Price {{event_properties.${line_items}[0].price}}
Variant ID {{event_properties.${line_items}[0].variant_id}}
Variant Title {{event_properties.${line_items}[0].variant_title}}

Event: shopify_account_login
Type: Custom Event
Triggered: When a user logs into their account
Use Case: Welcome series

Variable Liquid templating
source {{event_properties.${source}}}

Supported Shopify custom attributes

Attribute Name Description
shopify_total_spent The total amount of money that the customer has spent across their order history.
shopify_order_count The number of orders associated with this customer. Test and archived orders aren’t counted.
shopify_last_order_id The ID of the customer’s last order.
shopify_last_order_name The name of the customer’s last order. This is directly related to the name field on the order resource.
shopify_zipcode The customer’s zipcode from their default address.
shopify_province The customer’s province from their default address.

Liquid personalization

To add Liquid personalization for your Shopify custom attributes, select + Personalization. Then select Custom Attributes as your personalization type.

The "Add Personalization" section with the "Attribute" dropdown extended.

After selecting your custom attribute, input a default value and copy the Liquid snippet into your message.

Pasting a Liquid snippet into a message.

Supported Shopify standard attributes

  • Email
  • First Name
  • Last Name
  • Phone
  • City
  • Country

SDK data collection

For more information on what data is collected by the Braze SDKs, see SDK data collection.

Historical backfill

During your Shopify store onboarding, you can initiate an initial data sync through historical backfill to immediately engage with your customers. As part of this backfill, Braze will run an initial data sync of all customers and order placed from the last 90 days prior to your Shopify integration connection.

Setting up Shopify historical backfill

  1. Turn on historical backfill in the Track Shopify data step.

The "Track Shopify data" step of the Shopify integration showing historical backfill selected.

  1. After you complete your integration setup, Braze will begin the initial data sync. You can monitor progress on the Shopify Data tab of your integration settings.

The Shopify Integration Settings page with a spinner showing that events are actively syncing.

Synced data

For the initial data sync, Braze will import customers and order placed from the last 90 days prior to your Shopify integration connection. When Braze imports your Shopify customers, it will assign the external_id type that you chose in your configuration settings.

HOW HELPFUL WAS THIS PAGE?
New Stuff!