ProductHow it worksDocsBlogPricingGet Framer Plugin
← Blog

Abandoned Cart Email on Shopify From a Framer Storefront

An abandoned cart email on Shopify works from a Framer storefront, but only once the cart has become a Shopify checkout. Shopify records an abandoned checkout when a shopper adds contact information and does not buy — not when items sit in a cart on your Framer page. Create the cart through the Storefront API, attach the email before the handoff, and the recovery flow has something to fire on.

That one condition is where most design-led stores quietly lose their recovery revenue. The cart feels real to the shopper and looks real in the browser, yet Shopify never sees it, so the abandoned checkout queue stays empty and nothing sends.

Abandoned Cart Email on Shopify Starts With a Checkout

Shopify recovers checkouts, not carts. The Admin API states the rule plainly:

"A checkout is considered abandoned when a customer adds contact information but doesn't complete their purchase." — Shopify Admin GraphQL API documentation

Two details follow from that. Shopify's help documentation specifies that a checkout counts as abandoned once it remains incomplete for more than ten minutes after the customer has provided their email, and a shopper who enters a phone number instead of an email gets no recovery email at all. Shopify also deletes abandoned checkouts older than three months, so the window to act on them is finite.

The prize is worth the plumbing. Across 50 studies, Baymard Institute puts the documented average cart abandonment rate at 70.22% — roughly seven in ten carts never convert on their own.

Why a Framer Storefront Often Has Nothing to Recover

On a conventional Liquid theme, every add-to-cart writes to a Shopify cart on Shopify's own domain, so the abandoned checkout path is already wired. A Framer storefront usually works the other way around: the catalog renders from your design system, cart state lives in the browser, and Shopify is only contacted at the moment of checkout handoff.

That architecture is exactly why designers choose it — see our breakdown of using Framer as a headless Shopify frontend — but it means Shopify abandoned cart recovery has no input until the handoff happens. Everything before that is invisible to Shopify, which is the same reason inventory has to be synced deliberately rather than assumed.

Recovery Readiness by Cart Method

The readiness gap is entirely a function of how your Framer site builds the cart. Four methods are in common use, and they behave very differently.

Cart method When Shopify records an abandoned checkout Email captured pre-checkout Flows that can fire Attribution accuracy
Buy Button embed Only after the shopper enters an email at Shopify's checkout No Shopify's native automation; Klaviyo on checkout started Credited to the Buy Button channel, not your Framer pages
Cart permalink (/cart/...) Only after the shopper enters an email at Shopify's checkout No Shopify's native automation Online store channel, but the Framer referral is usually lost
Storefront API cart After handoff, once contact information is on the checkout Yes — set buyerIdentity.email on the cart Native, plus any email platform you send the cart event to Full, because you control the cart ID and the events around it
Plugin-managed cart Depends on whether the plugin creates a real Storefront API cart Only if the plugin passes the email through Whatever the plugin forwards Varies by plugin; verify before you rely on it

Read down the third column and the strategy writes itself. Only a Storefront API cart lets you hold an email address before the shopper reaches Shopify, and cartBuyerIdentityUpdate is the mutation that puts it there — the input accepts an email string alongside country, phone and customer access token.

How to Find Abandoned Carts in Shopify

Abandoned checkouts live in your Shopify admin under Orders, in the Abandoned checkouts view, where each row carries the line items and a recovery link you can send manually. Programmatically, the abandonedCheckouts query in the Admin GraphQL API returns the same list — including both abandoned and recovered checkouts — and requires the read_orders scope.

If that view is empty while your Framer analytics show carts being built, you have confirmed the architecture problem rather than a configuration one. No checkout, no row.

Capture the Email Before the Checkout Handoff

Three changes close the gap, in order of effort.

  1. Build the cart in Shopify, not just in the browser. Create a cart with the Storefront API on first add-to-cart and keep the returned cart ID. From that point the cart has a Shopify identity and a checkoutUrl.
  2. Ask for the email at the first natural moment. A newsletter field, a shipping estimator, a save-my-cart prompt, or an account login all give you an address. Push it onto the cart with cartBuyerIdentityUpdate so Shopify's checkout opens with contact information already attached.
  3. Send the cart event to your email platform. Shopify's native automation covers the abandoned checkout. For an abandoned cart email that goes out before a checkout exists, a Klaviyo abandoned cart flow needs an identified profile plus a cart event from your Framer site.

If guest shoppers make up most of your traffic, read how guest checkout behaves from a Framer site first, since that path determines how early an email is realistically available.

How Many Abandoned Cart Emails Should I Send?

Two to three emails is the working consensus, and the benchmark data suggests the ceiling is set by relevance rather than volume. Klaviyo's 2026 report, drawn from more than 110,000 customers, puts the average abandoned cart email click rate at 6.0%, against 11.3% for the top 10% of brands, with revenue per recipient of $6.77 on average and $13.70 at the top. SMS clicks better at 10.3% average.

The spread between average and top decile is roughly double on both click rate and revenue. That gap is not won with a fourth email; it is won by having the cart, the email address and the product detail available when the first one sends — which is the part your storefront architecture decides.

FramerLink creates Storefront API carts and passes buyer identity through on the handoff, so the abandoned checkout record exists without custom code. See what that includes.

The sequence matters less than the prerequisite. Get the cart into Shopify with an email attached, and your recovery flow is working with the same raw material a Liquid theme has always had.

Frequently asked questions

Do abandoned cart emails work on a Framer and Shopify store?

Yes, but only once the cart exists in Shopify as a checkout with contact information. Build the cart through the Storefront API, attach the shopper's email to it, and hand off to Shopify checkout. A purely client-side cart on a Framer page creates no abandoned checkout record and triggers nothing.

Does a Shopify Buy Button on Framer trigger abandoned checkout emails?

Yes. Shopify's documentation confirms that Online Store and Buy Button checkouts both qualify for abandoned checkout recovery emails, while point-of-sale and third-party channel checkouts do not. The tradeoff is that the Buy Button captures the email only at Shopify's checkout, so you cannot send anything earlier.

Can Klaviyo send abandoned cart emails for a headless Shopify storefront?

Klaviyo can, provided it receives an identified profile and a cart event. On a Framer storefront that means firing a started-checkout or added-to-cart event with the shopper's email once you have it. Without an identified profile, Klaviyo has no one to send the recovery email to.

Why are no abandoned checkouts showing in my Shopify admin?

The most common reason is that no checkout ever existed with contact information. Shoppers who browse, add to a client-side cart and leave never reach Shopify, so nothing is recorded. Shopify also deletes abandoned checkouts automatically once they are older than three months.

Sources