Shopify by Littledata Source

Littledata is a smart analytics app that automates ecommerce tracking. Littledata’s Shopify-to-Segment connection automatically tracks key ecommerce events on a Shopify or Shopify Plus store, so you can use Shopify as a source in your Segment workspace.

Littledata is available as an independent Shopify App. When you install the Littledata app on your store, Littledata does two things:

  1. It inserts a smart tracking script to your store’s front end. You can use this script with any custom Shopify site, and uses analytics.js under the hood to send data in a spec-compliant manner to Segment.

  2. The app also sets up server-side webhook forwarding to ensure 100% accuracy of important Customer and Order data.

Here’s an architecture diagram that shows how the Littledata app mediates data flow between Shopify and Segment.


This integration is maintained by Littledata and is not supported by Segment directly. The Littledata app has been reviewed by the Segment team for conformance with the E-Commerce Spec, and is the recommended way of using Segment with Shopify. However, it does require a paid subscription with Littledata, who mediates the connection between Shopify and Segment. Contact the Littledata Support team with any questions.

Getting Started

  1. Login to your Shopify Store account.
  2. Go the Shopify app store listing for by Littledata.
  3. Click Add app to begin the installation process.
  4. Sign up for a Littledata account using an email address, Google login or Facebook login. More team members can be added to the subscription after completing the installation process.
  5. Add the Segment write key for the source that is going to send data in the input field.
  6. Choose either an Automatic or a Manual install. Automatic installs work in most instances, but if you choose to do a manual install, just follow this guide.
  7. Segment’s analytics.js library, Littledata tracking script and webhooks will be automatically applied to the store and the installation proccess will then be complete.

Device-mode Events

Below is a table of events that Shopify by Littledata sends to Segment through the analytics.js libary. These events will show up as tables in your warehouse, and as regular events in your other Destinations supporting device-mode.

Event Name Description
Page Viewed The user has viewed a page
Product Clicked The user has clicked a product within a product list
Product Image Clicked The user has clicked a product image
Product List Viewed The user has viewed a product as they scroll down the collection page
Product Shared User has shared a product through social links
Product Viewed The user has viewed a product page
Thankyou Page Viewed User has viewed the thank you page after completing an order *

* This is less reliable than the de-duplicated Order Completed event sent from the Littledata servers, but you can use it in device-mode destinations to trigger a conversion. The payment_method and shipping_method properties are not available with this event.

In addition to the events tracked as standard, the following hits can be tracked based on page path:

Event Name Description
Blog Viewed A prospect has viewed the blog
Cart Viewed A prospect has viewed the cart
Registration Completed A prospect has completed registration
Registration Viewed A prospect has viewed the registration page

Cloud-mode Events

Below is a table of events that Shopify by Littledata sends to Segment from Littledata’s servers. These events appear as tables in your warehouse, and as regular events in your other Destinations that support cloud-mode. They include the anonymousId that links them to the device-mode events where the event was part of a previous user session, or associated with a userId that was previously linked with an anonymousId. See Littledata’s troubleshooting guide on attribution for more details.

Event Name Description
Checkout Started A user has started checkout
Checkout Step Completed A user has completed a step in the checkout
Coupon Applied Sent with Checkout Step Completed or Order Completed when user has applied a coupon
Customer Created User added as a customer
Customer Enabled (v2) A user has confirmed their email address and created a Shopify customer account with verified_email set as true
Customer Updated Customer information updated
Fulfillment Created (v2) An order fulfillment status has changed (including status, tracking_numbers and tracking_urls where the shipping integration allows)
Fulfillment Updated (v2) An order fulfillment status has changed (including status, tracking_numbers and tracking_urls where the shipping integration allows)
Order Cancelled (v2) An admin has cancelled an order (including the cancel_reason)
Order Completed A prospect has completed an order
Order Refunded An order has been refunded
POS Order Placed (v2) A user has placed an order through Shopify POS
Payment Failure (v2) A user completed checkout step 3 but the payment method failed (for example, the card details were valid but the [charge did not succeed(])
Payment Info Entered A user has entered payment info
Product Added A user has added a product to the cart, and left it in the cart for more than 10 seconds
Product Removed A user has removed a product from the cart

User identity

In the Littledata application, you can choose which of the following fields you want to send as the userId for known customers:

  • Shopify Customer ID (default)
  • Email
  • MD5 email hash
  • None 

For example, using ‘email’ allows you to match users across platforms that do not have access to the Shopify Customer ID. For Segment Personas we also send shopify_customer_id as an externalID for advanced matching.

Identify Calls

For every event where there is an identifiable Shopify customer (from both the device-mode and cloud-mode) Littledata also sends an Identify call. This happens when the customer logs into the storefront, on the last step of the checkout, with the order, and also after purchase with any customer update in Shopify admin.

The following traits are included with an Identify call:

Property Name Description Property Type
address The customer’s primary address String
createdAt The date customer record was created Date
customerLifetimeValue The total spend of customer on the Shopify store Double
description The customer notes String
email The customer’s email address String
firstName The customer’s first name String
lastName The customer’s email String
marketingOptIn The marketing_opt_in field from Shopify customer String
phone The customer’s phone number String
purchaseCount The bumber of orders by this customer Integer
state Whether the customer account is enabled or disabled String
tags The custom tags applied to the customer String
userId Chosen user identifier, defaulting to Shopify Customer ID Double
verified_email (v2) Whether the customer has verified their email Boolean

Support for email marketing destinations

Email marketing platforms such as Klaviyo, Iterable and Hubspot require an email property with any server-side event in order to associate events with a customer (they cannot use an anonymousId). Littledata adds that email property whenever an email address is set in the user traits() object (in device-mode) or from the Shopify customer record (in cloud-mode).

Alias Calls

To support seamless customer tracking the Mixpanel, Vero and KISSMetrics destinations, Littledata ensures the pre-checkout anonymousId is added as an alias of the userId (used from checkout step 2 onwards).

Subscription Ecommerce Events

Additional events available through Littledata’s ReCharge connection, and available in cloud-mode destinations.

Event Name Description
Charge Failed A failed to charge customer
Charge Max Tries Reached The maximum tries to charge customer is reached
Order Processed A recurring order is processed
Payment Method Updated A customer has updated the payment method
Subscription Cancelled A customer has cancelled a subscription
Subscription Created A customer has created a subscription
Subscription Updated A customer has updated a subscription

Event Properties

The list below outlines the properties included in the events listed above.

Property Description Property Type
affiliation The affiliation of the order String
checkoutId The ID of the checkout session String
context.uip The user’s IP address String
context['Google Analytics'].clientId The user’s Google Analytics Client ID String
context['Google Analytics'].geoid The user’s location String
coupon Comma-separated string of discount coupons used, if applicable String
currency The currency of the order String
discount The discounted amount Float
email Shopify email address, or email submitted on a storefront form String
order_id The ID of the order String
payment_method The payment method chosen for checkout String
presentment_currency The user’s local currency String
presentment_total The order total in local currency String
products A list of all the product at that step of the funnel * Array
sent_from A unique property to identify events sent by Littledata String
shipping_method The shipping method chosen for checkout String
shipping The shipping cost Float
step The checkout step Integer
subtotal The total less tax and shipping Float
tax The amount of tax on the order Float
total The total value of the order Float
userId Chosen user identifier, defaulting to Shopify Customer ID Double

* Prior to 1st February 2021, products on Product Added and Product Removed events was only the single product, not the whole cart.

Product Properties

Each item in the products array, or Product Viewed and Product Added events, will have the following properties

Property Description Property Type
brand The brand of the product String
category The category of the product (defaults to all) String
list_id The ID of the product collection String
list_name The name of the product collection String
list_position The product position in the collection Integer
name The product name String
price The product price Float
product_id Shopify product ID String
quantity The quantity of products Integer
shopify_product_id Also Shopify product ID String
shopify_variant_id The Shopify variant ID String
sku The product SKU String
variant The product variant name String

Advanced device-mode settings

You can edit the LittledataLayer object in your Shopify theme to manually change these advanced settings. For more information, see the Shopify tracker GitHub repository.


You can send any cookie set on a landing page (for example, a session identifier or marketing campaign name) to Segment with an Identify call.


If you have a proxy CDN setup to load Segment’s AnalyticsJS library from your own domain, you can specify it here.

This page was last modified: 15 Jan 2021

Get started with Segment

Segment is the easiest way to integrate your websites & mobile apps data to over 300 analytics and growth tools.
Create free account