Shopify App

The Fullstory Shopify app captures standard events and session replay across your store. What you get depends on your Shopify plan and your Fullstory plan:

Functionality
Shopify plan
Fullstory plan
Shopify App integration
All plans
All plans
Standard events on checkout pages
All plans
All plans
Session replay on storefront & legacy account pages
All plans
All plans
Session replay on checkout pages (excludes Shop.app & Shop account pages)
Shopify Plus
All plans
Revenue Insights
All plans
Enterprise or Advanced
Native mobile apps (Shopify Checkout SDK)
Not currently supported
Switching from the legacy Shopify Web Pixel? Customers using the Shopify Web Pixel (legacy) who are looking to switch to the Shopify App Pixel are encouraged to reach out to support@fullstory.com for additional guidance.

This guide walks you through installing and configuring the Fullstory Shopify app, from capturing standard events and session replay to setting up Revenue Insights. It also covers the known limitations of session replay on Shopify checkout pages and answers frequently asked questions about how the integration behaves across different store configurations.

Table of Contents

Configuration

Setting up the Fullstory Shopify app involves three steps, outlined below. The exact steps that apply to you depend on your Shopify plan and which Fullstory features you want to use:

  • Step 1 sets up standard Shopify events for checkout pages (all plans) and session replay for checkout pages (Shopify Plus only).
  • Step 2 adds session replay for your storefront pages.
  • Step 3 configures a revenue event in Fullstory (requires Fullstory Enterprise or Advanced).

Step 1 - Set up Session Replay (Shopify Plus Only) & Standard Shopify Events for Checkout Pages

Sensitive Data Warning for Shopify Plus Customers: Because a variety of third-party payment gateways and apps can be integrated into your checkout flow, we strongly recommend auditing your checkout experience to ensure that any sensitive information (such as raw credit card numbers or banking details) is successfully masked or excluded before enabling session capture on checkout pages.
Additionally, if your organization's compliance guidelines restrict capturing Personally Identifiable Information (PII) like names, email addresses, or physical addresses, ensure you audit where these fields appear or consider enabling Private by Default.

Setup in Shopify

Part A: Install & Connect the App Pixel
  1. Locate the Fullstory app in the Shopify App Store.
  2. Click 'Install.'

    Install from Shopify App Store
  3. Review the app’s required permissions, then click ‘Install.’

    permissions.png
  4. Enter your Org ID in the ‘Fullstory Org ID’ field on the app configuration page.

    Screenshot 2026-04-07 at 13.07.42.png
  5. Custom Endpoint (Optional):
    This field should be left blank in most cases. You should only enter a URL here if your team has previously requested and configured a Custom Endpoint or Fullstory Relay to send data to Fullstory via your own first-party domain.
  6. Use Order Completed Event Checkbox:
    Select this option to allow the Fullstory Shopify App to capture the checkout_completed standard event provided by Shopify. Please make sure you review our limitations with session replay for checkout pages, which explains why this may not always be suitable.
    If your team plans on using server-side events e.g. via Shopify Flow or Segment etc, please make sure this box is unchecked to avoid duplicate events.
  7. Click ‘Connect App Pixel.’
Part B: Configure Identify Settings & EU Data Centers (App Embeds)

Once the app is connected, you can configure user identification and data residency in the App Embed settings. Because these settings affect how the Fullstory App Pixel captures data on Shopify-controlled Checkout or Account pages, these steps will still apply if your store uses a Headless storefront.

  1. Navigate to Shopify Admin > Sales Channels > Online Store.
  2. Click Edit Theme on your active / published theme, then select the App embeds icon in the left-hand sidebar.

    appembed.png
  3. The Toggle for the Snippet Script is expected to show as off (unless you have enabled the snippet to be added to your storefront as outlined in Step 2).

    Screenshot 2026-06-23 at 17.06.35.png
  4. For European Data Residency (EU Customers Only):
    • Locate the Fullstory Script and Fullstory Host fields.

      host.png
    • Set the Fullstory Host value to: eu1.fullstory.com
    • Set the Fullstory Script value to: edge.eu1.fullstory.com/s/fs.js
    • (If your org ID does not include -eu1, leave these fields at their default values).
  5. If using Custom Endpoints / Fullstory Relay:
    • Locate the fields shown above and enter the host/script details provided by Fullstory during configuration. (If you are unsure, you can check these fields match the configuration seen in the snippet on your main storefront).
  6. Namespace:
    • This value would usually be left as the default FS

      namespace.png
    • Changing this value may break standard integrations that listen for events in your frontend data layer (e.g., Google Analytics).
  7. Identify Users: Toggle the Identify Customers setting ON to automatically identify logged-in users based on the Shopify customer.id. When available, this setting will pull in the customer’s Name, Email Address, and Order Count as user properties.

    identify.png

    Important note: Your admin users will be notified of any end-user data deletion requests submitted through Shopify's platform, which is why we recommend you pass the customer.id from Shopify as the uid into Fullstory. If you are using another identifier, please consider how you will be able to locate users to be able to honor these requests.

    If our Identify API is being used on the storefront you will need to make sure this option is toggled off to avoid splitting user sessions, as different uid values will mean Fullstory is being told the session belongs to more than one user.
    Additional Note: If your organization’s privacy policies restrict you from capturing end-user PII (such as names and email addresses) in Fullstory, please ensure this setting is toggled Off. You will then need to manually identify your users by adding code directly to your site or theme.liquid file using our Identify Users API.
  8. Remember to click Save near the top right corner of your screen to keep any changes.

Setup in Fullstory

In Fullstory, an Admin user will need to toggle data capture On for ‘All other domains’ on the Settings > Data Capture and Privacy > Data Capture page in order to begin tracking standard Shopify events.

Fullstory Data Capture Settings

Step 2 - Set up Session Replay for Storefront Pages

Capture user sessions on your Storefront pages by adding your Fullstory data capture snippet to your Shopify store's theme or codebase, using one of the methods below.

Option A: Shopify Store using a Theme (deploy snippet via Fullstory App)

Use this method if you use a standard Shopify Theme for both the storefront and checkout.

  1. If you're still in the "App Embeds" section, click on the link to "Manage App". Otherwise, in your Shopify account, you can go back to Customer Events > App Pixels tab and click into the Fullstory App.
  2. Click on the ‘Enable Fullstory Snippet Theme.’

    enablesnippet.png
  3. Check your Org ID is correct in the ‘Fullstory Organization ID’ field on the left side of your screen.
  4. Review your Host, Script, and Namespace settings. (If you are on our EU data center, ensure you update the Host and Script URLs as outlined in Step 1 - Part B).
  5. Click ‘Save’ near the top right corner of your screen to apply any changes.

Option B: Headless Stores / Tag Manager

Use this method if you have a headless storefront, or prefer to deploy Fullstory via a Tag Manager like GTM or Segment.

The Fullstory code snippet handles capture from the storefront but the Fullstory App Pixel is needed for event and replay data , where available, on Shopify-controlled checkout or account pages.

Step 3 - Configure a Revenue Event in Fullstory (Requires Fullstory Enterprise or Advanced)

Revenue events can be set up after an 'Order Completed' event has been seen in a session. For customers on a Fullstory Enterprise or Fullstory Advanced plan, an Admin or Architect user can follow the steps below to configure a revenue event in Fullstory:

  1. Go to Settings > Data Management > Events
  2. Scroll down to ‘Configure Revenue Insights’
  3. Click ‘Update Revenue Event’

Select the 'Order Completed' event as well as totalPrice_real (single currency stores) or totalPrice.amount_real (multi-currency stores) as the revenue property.

Limitations with session replay for checkout pages

While Fullstory can unlock valuable data for Shopify Plus customers when it comes to analyzing your checkout flow, there are some restrictions on the data available from Shopify. These limitations affect most third-party analytics and session replay tools due to Shopify's security architecture.

Checkout, Revenue, and Payment Flows

  • Missing checkout_completed / Order Completed events: Fullstory listens for standard events shared by Shopify, but mobile performance optimizations can sometimes cause these API events to be skipped. If your team uses Fullstory to analyze revenue or conversion data, we recommend implementing server-side events for improved reliability.
  • Accelerated Checkout Flows: Transactions completed entirely via accelerated checkout environments (e.g., Apple Pay, PayPal) may not be captured. While some events might be logged before the redirect, subsequent steps within the express environment are outside the merchant's control and fall outside the scope of the Advanced DOM Pixel Events API.
  • Shop Pay checkout sessions: These sessions cannot be captured because the checkout transaction takes place entirely on a separate, Shopify-controlled domain (e.g., shop.app).
  • Buy Now Pay Later (BNPL) options: If your store offers BNPL options, you may encounter missing or zero-value Order Completed events. Because BNPL transactions often remain "Pending" while awaiting third-party authorization, the final amount may not be confirmed when the confirmation page loads. To ensure accuracy, we recommend using server-side events triggered only once the order transitions to "Authorized" or "Paid."
  • Fullstory Discrepancies to Other Sources: If your team is using other tools, such as Elevar, or Apps such as Google & YouTube, it is expected to see discrepancies for tools which have access to data not available to Fullstory client-side. We recommend implementing server-side events if you need to compare data across tools.

Developer, API, and Data Layer Restrictions

  • Fullstory's Browser APIs: These APIs will not execute on Shopify Checkout pages due to Shopify's security restrictions. This means you cannot instrument browser-specific calls, such as the Identify Users API, Analytics Events API, Set Page Properties API, or Shutdown & Restart APIs.
  • Data layer considerations: If your Fullstory account relies on a frontend integration to pull data from your data layer (such as Google Analytics/GA4), note that this will not function on Shopify Account or Checkout pages. Because the dataLayer is inaccessible to third-party scripts during checkout, you must pass these events via a server-side integration accompanied by the session ID field to map them back to the user's session.
  • Testing in Staging and Dev environments: The Fullstory App can only capture data if the domains from your storefront to your checkout are related. Depending on your store's configuration, this can restrict testing in non-production environments.
  • Third Party Widgets: If your store is using third party widgets, please check if these are contained within an iframe hosted on a different domain to your site. In some cases capture of content may not be available or require additional configuration as explained in our guide to iframes.

Compliance and User Experience

  • Shopify User Consent Permissions: If an end-user opts out of Marketing & Analytics permissions via Shopify's consent mechanisms, Fullstory will respect this choice and will not capture their session.
  • Dev Tools functionality: Console logs and network calls are not exposed to Fullstory via Shopify's API. Consequently, you will not have access to features like uncaught exception errors, HTTP request/response details, timings, or network error URLs.
  • Core Web Vital Metrics: These performance metrics are not exposed through Shopify's checkout APIs and will be unavailable in Fullstory. Note that Shopify extensively monitors checkout page performance internally for all merchants and reporting is available within your Shopify account.

Frequently Asked Questions

Why does my Shopify revenue data differ from what Fullstory is reporting?

By default, Fullstory can only report revenue for captured sessions (see the limitations section above). We cannot track revenue changes that happen after purchase, such as order cancellations or refunds. We also cannot track orders that bypass the client-side checkout flow, including manually created orders, recurring subscriptions, and POS system purchases.

Additionally, if end users or their sessions are permanently deleted in Fullstory, this will also affect revenue reporting accuracy. Because of these factors, some differences between Shopify and Fullstory revenue data are expected.

If you are noticing a large discrepancy (for example, if most of your customers purchase products through the Shop app), Fullstory is able to ingest data via our server APIs. You can work with your Shopify developer to pass the Order Completed event over to Fullstory server-side, using a tool like Shopify Flow. Since every Shopify store is different, the exact implementation steps will vary, which is why we recommend working with your Shopify developer directly.

Why is session replay for checkout pages only available to customers on a Shopify Plus plan?

In order to capture sessions that occur on your Checkout pages, you must be on a plan that includes access to Shopify’s Advanced DOM Pixel Events API. At this time, Shopify limits this API to their Shopify Plus plan.

What standard Shopify events will be captured in Fullstory?

All Shopify app customers will be able to capture these standard Shopify events that occur on Checkout and Account pages in Shopify:

Any other standard Shopify events that occur on pages outside of the Shopify Checkout flow or Shop Account Pages will not be captured via the App pixel.

Need to access app settings after initial setup?

If you need to return to modify your Fullstory app configuration (including Identify settings), navigate to Shopify Admin > Online Store > Themes, click Edit Theme on your active theme, and then select the App embeds icon in the left-hand sidebar.

appembed.png

From there, you can click the "Manage App" link to configure other settings, such as updating your Org ID, custom endpoint value, or the Order Completed event checkbox. These settings are also accessible by navigating to Settings > Customer Events > App Pixels.

If we previously implemented additional code within the web pixel code that Fullstory provided us with in order to capture additional data, can we still pull that data in?

Generally, yes—keeping in mind that you'll want to exclude standard Shopify events that occur on Checkout pages to prevent duplicate tracking. Any code that your Shopify developers previously implemented should continue to work.

Here is what we recommend:

  1. Remove the existing custom web pixel.
  2. Complete the rest of the Shopify App setup.
  3. Create a new web pixel that includes your customizations, but exclude references to the standard Shopify events that occur on Checkout pages.

Please note that Fullstory’s Support team is unable to provide specific code recommendations. We recommend working directly with your Shopify developers to instrument any custom code.

Why am I unable to see Express Checkout buttons (e.g., PayPal, Venmo) or credit card fields rendering in Fullstory?

Because these elements are rendered within a third-party iframe, Fullstory cannot capture them due to standard browser security restrictions (the Same-Origin policy). You can learn more about how Fullstory handles iframes here.

Is it possible to capture Account pages in Shopify?

Yes, Fullstory can capture session replays for pages when a user logs into their account. Your ability to capture Customer Account pages in Shopify depends on which version of accounts you are using. You can verify your version by heading to the Customer Accounts page in your Shopify admin and checking which option is selected under "Choose which version of customer accounts to link to."

New Customer Accounts: These pages typically appear on an account.yourstore.com subdomain and are hosted entirely by Shopify. While this version allows passwordless login, sessions can be captured via the Fullstory App, and URL paths will typically contain /orders, /settings, or /profile.

Classic Customer Accounts (Legacy): These pages are hosted on your primary Shopify store domain. You will be able to fully capture user sessions on these pages as long as you have added the Fullstory App or Snippet to your store as described above.

Why am I unable to locate a Shopify customer’s session in Fullstory?

In addition to the common reasons outlined in our Why can't I locate a user's session in Fullstory? article, Shopify’s user consent preferences may be playing a role. In order for Fullstory to capture data via the Shopify App, users must consent to Marketing, Analytics, and Preferences tracking. If consent is not granted, Fullstory will not capture that user's activity.

How can I locate the corresponding order in Shopify based on the order_number_str I see passed into Fullstory within the Order Completed event?

The order_number_str is an internal Order ID exposed via Shopify’s APIs, as it is the most reliable and consistent identifier for programmatic use. However, this specific ID is not typically displayed in the standard Shopify admin interface.

To locate the corresponding order, you can search for the order_number_str value directly within the search bar in your Shopify admin panel. Shopify will return the matching order, allowing you to see the user-facing Order Name/Number.

When should I use the Identify toggle for the app?

If your team is not already identifying users via our custom API call (FS.identify), you should switch this toggle on. You can create a segment looking for users where the signed-up status is "signed up" to verify if the API is currently being used. If you have any questions, please reach out to our Support team so we can review your setup and advise further.

How does the app work with my cookie banner?

Fullstory's Shopify App respects the consent settings registered by Shopify. If you use a third-party cookie banner (e.g., OneTrust), you may have a separate app installed to manage consent, or you may rely on the Customer Privacy settings defined directly in your Shopify Admin portal. You will need to ensure your cookie banner is integrated correctly with Shopify's consent API so that permissions map over as expected.

What if my store uses a Headless framework?

You will still need to follow the installation instructions by ensuring the Fullstory data capture snippet is added to your main storefront, the app is installed, and "All other domains" is toggled on in your Fullstory account settings. This ensures that Fullstory can capture data during checkout even if your storefront does not use a standard Shopify theme.

Will Fullstory's Shopify App work when my store and checkout are on different domains?

If the URLs share the same second-level domain (e.g., yoursite.com and checkout.yoursite.com), the Fullstory Shopify App will work as expected. However, if you are using a staging or developer store environment where the checkout flow is on an unrelated domain (e.g., yoursite.com and testcheckout.com), the App cannot pass session state across those domains, meaning Fullstory will not receive connected session replay or event data.

Do I need to do anything if my Shopify store changes from a single currency to multi-currency?

If you are tracking revenue events, you should verify if your revenue properties need to be updated, as Shopify may begin sending totalPrice.amount_real instead of total_price_real. Because only one revenue event property is supported globally for revenue metrics, you may need to adjust your metrics, filters, or dimensions manually to reference historical data captured under the older total_price_real property.

Can I capture activity from different regions into different Fullstory accounts (e.g., using Umbrella Management)?

The Fullstory Shopify App supports capturing data into one account per Shopify subdomain. If you run multiple subdomains (e.g., store-us.myshopify.com and store-eu.myshopify.com), you can point each subdomain's integration to a separate Fullstory Org ID.

However, if your store uses subdirectory paths for different languages or regions on a single domain (e.g., store.myshopify.com/us/ and store.myshopify.com/eu/), all user activity must be captured into a single, shared Fullstory account.


Was this article helpful?

Got Questions?

Get in touch with a Fullstory rep, ask the community or check out our developer documentation.