Cart Recovery

Cart Permalinks vs Cart Recovery Pages: Which Should Your Cart Email Use?

A cart permalink rebuilds a cart from a link. A cart recovery page puts a held cart back on a page the shopper can edit. Here's a fair comparison of both, including when a permalink is all you need.

Sam Schrup · October 31, 2026

A cart permalink is a URL that lists the items to put in a cart, usually sending the shopper to checkout. A cart recovery page is a page in your store that puts a held cart back for an identified shopper and lets them edit it. Both can solve the cross-device cart problem, and a permalink is the right call for plenty of stores.

Both are answers to the same scene. A shopper builds a cart on a laptop, opens your email on a phone, and finds an empty cart or a product page. Then they have to rebuild from memory. Klaviyo's Added to Cart event has no native saved-cart link, so if you want that click to show the cart, you need to add something.

How does a cart permalink work?

The link itself holds the cart. It lists variant IDs and quantities, and Shopify builds a cart from them when someone opens it. Shopify's cart permalink documentation gives the format and the limits.

For a Klaviyo flow, you construct that URL inside the email template using the event's data. A 2022 Klaviyo community thread gives this as the accepted fix and describes it as "a fair bit of custom coding". Some vendors make that easier. Elevar (now sold as Audiense Online) publishes a pasteable permalink for cross-device use in its docs.

The most useful thing about a permalink is that it stands alone. It doesn't require an app or a server-held cart, and it doesn't need to know who clicked. The items are right there in the link.

How does a cart recovery page work?

Here the cart is saved on a server as the shopper builds it. The email carries a link to a page in your store. When someone clicks, the page works out who clicked and looks for their cart. If both pieces are there, the page puts the cart back in the real Shopify cart and shows it to them.

That brings more moving parts, and it brings different limits. It needs an app. It only works for carts the app held and shoppers it can identify. In exchange, the shopper lands on a shopping page, with an editable cart, and the cart can reflect the latest state as opposed to one event's snapshot.

How do they compare?

Cart permalink Cart recovery page
Works across devices Yes When the cart is held and the clicker is known
Where it lands Checkout by default A cart page in your theme
Who needs identifying Nobody, since the items are in the link The person who clicked
Consent dependency Depends on how you get the event data Cart held only with analytics consent
Subscribe & save Selling plans not supported Available per line, where the product has it
Editing Limited on the checkout page Quantities, remove, add-ons
Line item properties Limited: first product, up to 25 Depends on the app
Upkeep You maintain template logic The app maintains it
Setup Custom coding or a vendor snippet Install an app, change the link
Cost Your time An app subscription
Status Shopify calls it legacy Depends on the vendor

When is a permalink enough?

Pick a permalink if most of these apply:

  • Your shoppers are ready to pay. They've chosen, and checkout is what they want.
  • You don't sell subscriptions, or you don't need them to carry through recovery.
  • You have someone comfortable with template code and able to look after it.
  • Your carts are simple, without complicated line item properties.
  • You don't want another app. That's a fair reason on its own.

Many stores fit this description. If yours does, build the permalink and spend your time elsewhere.

When does a cart recovery page make more sense?

  • Shoppers often change their minds. They left for a reason, and a checkout form is a hard place to take something out or change a quantity.
  • You sell subscribe & save. Permalinks can't carry selling plans, so a subscription choice has nowhere to go.
  • You want add-ons on the page. Checkout isn't the place for browsing.
  • You want the landing measured. Comparing destinations needs some way to split traffic and count orders.
  • Your email button promises a cart. Sending people to a cart page keeps that promise more literally than a payment form does.

Which edge cases should you test?

Whichever you use, run these in your own store, since behavior can vary with your theme and apps.

Case Why it matters
The shopper already has items on that device Does the click replace them, merge them or ignore them?
Same-device click Do quantities double?
Sold-out item Does the shopper see an error, a gap or a suggestion?
Price changed since the event Does the shopper get a surprise at checkout?
The shopper removed an item after the last event Does the removed item come back?
The shopper already bought Does the link rebuild a cart they paid for?

Our second-device test covers how to run these.

Could you use both?

Yes. Different flows may want different links. A brand might use a permalink in a late message for people ready to pay, and a cart page earlier. Started Checkout flows should stay on checkout_url, which already restores across devices. If you want to compare, split the destination and compare orders, and use the where the click goes post as a guide to what to include.

How does reOtter's cart recovery page work?

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 own theme and domain. They can change quantities, remove items and choose subscribe & save per line where the product has it. Add-ons are chosen from the cart and what they've bought before. Sold-out items suggest an alternative, and price changes get a quiet note. Nothing already on the device gets wiped, and a same-device click doesn't double quantities.

Its limits are the ones listed above, and a few more. Carts are held only with analytics consent from your store's banner, and they last 30 days. Strangers aren't identified. Carts they've already bought aren't put back. If the cart isn't held or the clicker isn't known, the shopper sees the page with whatever cart that device has, whereas a permalink would still have rebuilt the items. That's a real point in the permalink's favor.

A built-in holdout sends a share of shoppers to your current destination and compares orders, which measures whether the page beats that destination. No brand has run it to a result yet, so we can't tell you it will win. You can see more on our abandoned cart recovery page.

Frequently asked questions

Can I use a cart permalink in a Klaviyo Added to Cart flow?
Yes, with custom work. Klaviyo's Added to Cart event has no native saved-cart link, so you build the URL in the email template from the event's data. A Klaviyo community thread describes it as "a fair bit of custom coding".
Do cart permalinks work with subscriptions?
No. Shopify's documentation says selling plans aren't supported on cart permalinks. A shopper who chose subscribe & save would need to choose it again somewhere else.
Are cart permalinks going away?
Shopify's documentation calls them a legacy feature. That doesn't tell you when or whether anything will change, but it's a reason to check the current docs before you build on them.

Keep exploring