Tracking checkout funnel events with Littledata

Updated on 2021-12-31

Supported checkouts

Littledata supports checkout funnel event tracking for:

This includes the latest customizable checkout being rolled out by Shopify.

The Shopify checkout also includes checkout apps handling subscriptions and upsells. i.e. The checkout steps are the same for these customer journeys, but the resulting order is differentiated.

If you have a headless Shopify site (a headless ecommerce site with a Shopify checkout), please follow the headless setup guide first.

Default checkout steps

When the customer starts and progresses through the checkout on your ecommerce site, Littledata sends a Checkout Step event to your tracking destination for the following three checkout steps. These steps cover the default configuration for most popular checkout flows such as Shopify checkout and Recharge checkout.

Step 1: Contact information

Step 2: Shipping information

Step 3: Payment method

Transaction (Order complete)


This article outlines how we send checkout step events. For more information on checkout tracking, see how to configure your checkout funnel in Google Analytics.

Event triggers and labels

For all destinations, the checkout journey starts when a user clicks the checkout button.

Let's take a closer look at the structure of these events, what we call them when they're triggered, and how they work.

Google Analytics destination

We send the following checkout step events.

With the Google Analytics connection, all checkout step events are sent upon landing on the respective step.


Check out a detailed list of all events supported in Littledata's GTM and Google Analytics data layer.

Segment destination

We send the following checkout step events.

* Thank you Page Viewed is sent from the browser, and won't exactly match the situations where Order Completed. See why


Check out a detailed list of all events tracked by our Segment connection.

How it works behind the scenes

For security reasons, third-party apps such as Littledata don’t have direct access to the checkout pages on Shopify. We have to depend on Shopify's webhooks to infer the checkout pages viewed by a particular user.

Edge cases

When a user zips through the checkout pages in quick succession (specifically under 10 seconds), Shopify only informs us of the last page viewed by the user. This leads to misleading spikes in some of the steps and makes the funnel nonsensical. See the example below:

Littledata's solution

For every checkout step, Littledata checks back if it has sent events for all previous steps for the same user ID and checkout ID in the last 3 days.

In cases where previous step events were NOT sent in the last 3 days, Littledata retroactively adds checkout steps to make sure the user’s journey looks complete in the checkout funnel.

For example, let’s say a user is already logged in and gets through to the payment page within 10 seconds. For this user, even if Shopify only communicated the final end-state (i.e. payment page), Littledata will assume that they went through all steps of the funnel as expected and send 3 separate step hits to GA:

  1. Contact Information (retroactively added)
  2. Shipping Information (retroactively added)
  3. Payment Method (webhook end-state)


Although retroactively adding steps makes the funnel a lot more meaningful, there are a couple of trade-offs that should be kept in mind while analyzing the data:

  1. This method could misrepresent the cases where the users actually started the session in the middle of the funnel by retroactively sending step hits to GA.
  2. Events on the same user checkout beyond the 3-days cut-off will be resent, which could lead to duplicate events sent to GA. However, we believe a 3-days will cover the vast majority of cases for most e-commerce stores.

Checkout Steps FAQ


My store has both Shopify checkout and Recharge checkout, can I see the checkout funnels separately for each?


How did the checkout funnel events work before October 2019?