Answer
Why is the cart empty when a customer clicks an abandoned cart email?
The cart is usually empty because a cart normally stays with the browser where it was built, and the email opened in a different one. A shopper who starts on a laptop and opens the email on a phone reaches a cart that never held their items. Fixing it takes two things: a way to know who clicked and a copy of the cart saved on a server.
October 31, 2026
The cart is usually empty because a cart normally stays with the browser where it was built, and the email opened in a different one. A shopper starts on a laptop, opens your email on a phone, and finds an empty cart or a product page. Then they rebuild from memory or give up.
Which clicks land on an empty cart?
| What the shopper does | What they find at /cart |
|---|---|
| Builds the cart on a laptop and clicks on the same laptop browser | Their cart |
| Builds the cart on a laptop and clicks on a phone | Whatever that phone already holds, often nothing |
| Builds the cart in one browser and clicks into another on the same device, including a browser built into an email app | Whatever that second browser holds |
This is why the problem hides during testing, and why a second-device test is worth five minutes. Your flow report counts the click either way, so it can't show what the shopper found.
Why doesn't the email link bring the cart with it?
Klaviyo's Added to Cart event has no native saved-cart link. Merchants typically use /cart, a product page or a hand-built permalink. A 2022 Klaviyo community thread describes exactly this, and its accepted fix is a custom permalink that takes "a fair bit of custom coding."
Started Checkout is different. Its checkout_url restores across devices, though it lands on a payment form. See abandoned cart vs abandoned checkout for the split.
Would a longer-lasting cookie fix it?
It wouldn't. A cookie never crosses devices. Durable cookies and server-side identifiers help recognition on the same device over time. Cross-device cart restoration needs two different things: the email click or a store login to identify the person, and a cart saved on a server.
How does reOtter handle it?
With reOtter's cart recovery page, you keep your Klaviyo Added to Cart flow and change the button link. When reOtter holds that 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 for 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.
Key takeaways
- A cart usually stays with one browser, so a click on another device or browser can land on an empty cart.
- Longer-lasting cookies help on the same device and can't carry a cart to a new one.
- Restoring across devices takes an identified click or login plus a cart saved on a server.
See how reOtter restores the cart → Abandoned cart recovery
Frequently asked questions
- Why does my cart email look fine when I test it?
- Most people test on the device where they built the cart, so `/cart` shows the items they just added. The problem appears when the click opens in a different browser. Test it by building a cart on a laptop and opening the email on a phone.
- Do abandoned checkout emails have the same problem?
- Generally they don't. Klaviyo's Started Checkout event includes `checkout_url`, and Shopify's checkout link restores across devices. The shopper lands on the payment form rather than a shopping page.
- Will a server-side cookie fix an empty cart?
- It won't fix this one, because a cookie never crosses devices. A durable cookie helps the same browser recognize someone over time. A cross-device restore depends on identifying the person from the email click or a store login and having their cart saved on a server.
- Can reOtter restore every cart?
- It can't. reOtter restores a cart when it holds that shopper's cart and knows who clicked, and carts are held only with analytics consent from the store's banner. When either piece is missing, the shopper sees the page with whatever cart that device has.