Cart Recovery

The Abandoned Cart Recovery Guide for Shopify and Klaviyo

A practical guide to abandoned cart recovery for Shopify brands on Klaviyo. It covers the three flows people mix up, what the timing evidence says, where the button should link, when to discount, and how to tell whether any of it adds revenue.

Sam Schrup · October 31, 2026

Abandoned cart recovery is the set of automated messages and landing pages that bring a shopper back after they added something to a cart and left. On Shopify with Klaviyo, a working setup comes down to five decisions: which flows to run, when to send, where the click goes, whether to discount and how to measure the result.

Abandonment is the normal case. Baymard's average cart abandonment rate is about 70%, so most carts on most stores won't become orders on that visit. Recovery flows try to win back a share of those.

Which flows are people talking about?

Three flows get lumped together as "abandoned cart". They trigger at different moments and have different tools available.

Browse abandonment Added to Cart Started Checkout
What the shopper did Viewed a product Added an item Began checkout
Native link to their cart Doesn't apply None checkout_url, restores across devices
Typical button destination Product page /cart, a product page or a hand-built permalink The payment form
Attributed revenue per recipient $2.08 average, $4.32 top 10% $6.77 average, $13.70 top 10% for abandoned cart email Not broken out here

The revenue figures come from Klaviyo's 2026 Abandoned Cart Benchmark Report, based on more than 110,000 customers. The same report gives abandoned cart SMS $4.48 per recipient. All of these are attributed revenue, which isn't the same as revenue the flow caused. We come back to that below.

Our glossary covers abandoned cart vs abandoned checkout in more depth. The short version: abandoned checkout has a working cross-device link already, because Shopify's checkout link restores the checkout on any device. Cart emails are the ones with a gap.

When should you send the first email?

Later than many templates suggest may be worth testing. In a field experiment by Xueming Luo and colleagues covering about 40,500 customers reached by email and app, messages sent 30 to 60 minutes after abandonment were less likely to produce a purchase. Per its press release, the Journal of Marketing paper found that a message after one to three days had a positive incremental effect.

That's one experiment, and your category may differ. Treat it as a reason to test your timing instead of copying a default. Our timing answer goes through the trade-offs.

Where should the button go?

This question gets less attention than timing, and it has the clearest failure. Picture a shopper who builds a cart on a laptop, then opens your email on a phone. If the button points to /cart, they find an empty cart. If it points to a product page, they see one item. They have to rebuild the rest from memory.

The options:

  • /cart works on the same device and shows whatever the other device holds, often nothing.
  • A product page shows one item and suits one-item carts.
  • A cart permalink can rebuild the items on any device. Shopify's documentation calls it a legacy feature that goes to checkout by default and doesn't support selling plans.
  • A cart recovery page puts the held cart back on a page where the shopper can edit it. It needs an app holding the cart, and it depends on consent.

Our post on where the click goes compares them in detail, and the second-device test shows you what your flow does today.

What's actually broken when recovery underperforms?

Three separate problems tend to get merged into one. Each has a different fix, so it pays to work out which one you have.

Problem What the shopper experiences What helps
The email never sends Nothing, because Klaviyo didn't know who it was Klaviyo's Extended ID and First-Party ID, event relay tools
The click lands in the wrong place An empty cart or a product page on another device A saved cart plus an identified click
A known customer gets a generic page A repeat buyer treated like a first-time visitor Recognition plus a page that uses it

The first problem is where cookies come in. Safari's limits on script-set cookies can make a browser forget a known shopper, and server-side cookies can extend how long the same device stays recognized. Turn on Klaviyo's Extended ID first, since it's on all plans, free and paid.

The second problem has nothing to do with cookie lifetime. A cookie never crosses devices. Cross-device recovery works when the email click or a store login identifies the person and the cart was saved on a server.

Should you discount?

Often not in the first message, and probably not for your regular buyers. A discount in every cart email teaches customers that leaving a cart earns a coupon, and repeat buyers learn this fastest. Consider splitting the flow by customer type. A first-time shopper may need a reason to take a chance on you. Someone who has ordered many times probably got interrupted and needs a working link.

We've written up the discount decision separately. Test it with a holdout, because a discounted flow can show strong attributed revenue while giving margin away on orders that would have happened anyway.

How do you know it's adding revenue?

You need a holdout. Attributed revenue credits the flow for an order placed after a message, including orders the shopper was going to place regardless. Someone with a full cart and a real intention to buy is exactly that kind of shopper. Benchmarks can tell you how your attributed numbers compare with other brands, which is useful, but they can't tell you what the flow caused.

To measure it, hold back a random share of eligible shoppers from the flow and compare their orders with the group that received it. Look at orders from all channels, because the flow can shift where an order is credited. The answer on whether these emails add revenue goes further.

There's a second, narrower test worth running. Keep the flow the same and split the destination. That tells you whether one landing beats another, which is often easier to act on.

What should your setup checklist cover?

  1. Map every flow triggered by a cart, checkout or browse event, including any added by vendors. Parallel flows are common and easy to lose track of.
  2. Click every button in every message and write down where it goes.
  3. Run the second-device test.
  4. Turn on Klaviyo's Extended ID if you haven't.
  5. Confirm a recent cart shows up as an Added to Cart event on a test profile.
  6. Choose a test for timing or destination, and only one at a time.
  7. Set up a holdout before you change anything else.

Where does reOtter fit?

reOtter works on the destination. You keep your Klaviyo Added to Cart flow and change the button link. When reOtter holds a shopper's cart and knows who clicked, the cart goes back into the real Shopify cart on whatever device they're on, on a page inside your theme and domain. Carts are held only with analytics consent from your store's banner, and held carts last 30 days. If the cart isn't held or the clicker isn't known, the shopper sees the page with whatever cart that device has.

reOtter never sends email. Your Klaviyo account does that. A built-in holdout compares the page with your current destination. No brand has run it to a result yet, so there's no lift number to quote.

Read more about how it works on our abandoned cart recovery page.

Frequently asked questions

What's the difference between an abandoned cart flow and an abandoned checkout flow?
A cart flow triggers when someone adds an item and doesn't continue. A checkout flow triggers when someone started checkout and didn't finish. In Klaviyo, the checkout flow has a checkout_url that restores across devices, and the Added to Cart event has no native saved-cart link.
How many emails should an abandoned cart flow have?
We don't have a number we can stand behind, and we'd be wary of any universal answer. Start with a small flow and add a message only if a holdout shows it helps. Each extra email is also another chance to teach customers to wait.
Do I need a separate tool for abandoned cart recovery on Shopify?
Not to start. Klaviyo and Shopify cover the trigger, the email and the checkout link. Extra tools address specific gaps, such as emails that never send or clicks that land on an empty cart, so find out which gap you have first.

Keep exploring

Cart Recovery

Abandoned Cart Flow

An abandoned cart flow is an automated series of emails or texts sent after a shopper adds something to a cart and leaves without buying. In Klaviyo it usually starts from the Added to Cart event, which is a separate trigger from Started Checkout and browse abandonment.

Cart Recovery

Abandoned Cart vs. Abandoned Checkout

An abandoned cart means a shopper added items and left before starting checkout. An abandoned checkout means they started checkout and left before paying. In Klaviyo the Started Checkout event has a link that restores across devices, and the Added to Cart event has no native saved-cart link.

Cart Recovery

Browse Abandonment

Browse abandonment is when a known visitor views a product and leaves without adding anything to cart. A browse abandonment flow follows up with a reminder of what they looked at, using the product page as its natural link since there's no cart to bring back.

Cart Recovery

Cart Restoration

Cart restoration is putting a shopper's items back in their cart when they return. On the same browser the cart is often still there. On another device, restoration needs the items saved outside the browser or carried in a link, plus a way to get them to that shopper.

Cart Recovery

Klaviyo Added to Cart

Added to Cart is the Klaviyo event recorded when a visitor Klaviyo can identify adds a product to their cart. Brands use it to trigger abandoned cart flows. Unlike Started Checkout, it has no native saved-cart link, so the email button needs a destination chosen by the brand.