A broken add-to-cart button is bad. A broken checkout is a catastrophe. Bloodhound monitors every stage of your Shopify checkout funnel — pageview through order complete — with error capture and timing data at each step.
Install free →Every part of your store matters, but no part matters as much as the checkout. A visitor who reaches the checkout has already made the decision to buy. The consideration phase is over. Conversion intent is at maximum. An error at this stage doesn't just fail to convert a visitor — it actively destroys a sale that was already won.
The business case for checkout monitoring is straightforward: if your checkout has a 5% error rate and 100 people reach checkout per day, that's 5 lost sales per day that were already in the bag. At an AOV of £80, that's £400/day, £12,000/month, £146,000/year in preventable revenue loss. These aren't abandoned carts in the traditional sense — they're completed decisions that your site failed to fulfil.
Shopify's checkout presents a specific technical challenge for monitoring: your theme scripts can't run in checkout. Shopify's checkout pages run in a sandboxed environment controlled entirely by Shopify. Third-party theme scripts, app embeds, and custom JavaScript are not executed there. This is by design — it protects payment security — but it means that any monitoring tool that relies on your theme to inject its tracking code is completely blind once a customer reaches the checkout URL.
The only sanctioned way to instrument Shopify checkout is through two APIs: the Web Pixel API for storefront and checkout events, and the Customer Events API for post-purchase flows. Bloodhound uses both.
Through the Web Pixel, Bloodhound captures the following checkout funnel events:
For each event, Bloodhound records the timestamp, session ID, page URL, and any error state. Drop-offs between stages are visible in the funnel analysis: if 100 sessions reach “checkout started” but only 60 reach “payment submitted”, that 40-session drop is quantified and can be investigated.
Stripe, PayPal, Klarna, Afterpay, and other payment processors all inject JavaScript into the checkout. Their SDKs can fail for various reasons: rate limiting, network errors, outdated browser APIs, or version incompatibilities with Shopify's checkout updates. These failures typically prevent the payment form from loading or the payment submission from succeeding.
Some themes and apps add custom address validation that can fail for edge cases: postcodes in non-standard formats, international address fields, or businesses with long address lines. These produce JavaScript errors that may silently prevent the “Continue” button from functioning.
The checkout API endpoint for discount code validation can return errors that are handled poorly in some implementations. A network timeout during discount validation might leave the checkout in a broken state without surfacing a user-visible error message.
Merchants on Shopify Plus can add custom JavaScript to checkout via checkout.liquid. This customisation code has more scope to introduce bugs — particularly with each Shopify checkout update that may change the DOM structure the customisation was written against.
The order confirmation page and post-purchase upsell flows run separate JavaScript from the checkout. Errors here don't lose the sale but can affect customer experience, loyalty app integrations, and conversion tracking.
Not every checkout drop-off is a technical error. Users genuinely abandon carts for non-technical reasons: unexpected shipping costs, indecision, price comparison, being interrupted. Good checkout monitoring distinguishes between:
The error-correlated drop-offs are the ones you can fix. The clean drop-offs need CRO work, not engineering work. Bloodhound separates these, so you can prioritise appropriately.
A healthy Shopify checkout has:
If your checkout error rate is above 2%, you almost certainly have a specific, fixable bug. With Bloodhound monitoring active, you'll know about it within minutes of it appearing.
Free plan includes Web Pixel checkout monitoring. No developer needed.
Install free →