Klaviyo on Shopify: duplicate cart emails and missing events.
A customer pays and still gets the cart email. Or the cart flow goes quiet after a theme update. Both come from the store, not the email: who sends, and what the store tells Klaviyo.
Duplicate cart emails
Shopify can send its own abandoned-checkout email. Klaviyo sends the flow you built. If nobody turned Shopify’s off, both send, and a shopper gets two emails about one cart.
The other cause is in the theme: Klaviyo’s code added twice, once as the app embed and once as an old snippet left behind. Each copy reports the same event, and the flow starts twice.
And the worst one: a shopper who already paid still gets the cart series, because the store reported the cart but the flow never heard about the order.
Missing events
Klaviyo can only send on what the store tells it. The app can say “connected” while an event has stopped:
- Added to Cart stops after a theme update. The new theme doesn’t carry the code that sent it.
- Viewed Product fires twice. Two copies of the script, or a theme that loads it twice.
- A refund still gets “thanks for your order”. Returns, failed payments and restocks never pass through the browser, so they need to be sent to Klaviyo from Shopify itself.
How a Shopify store gets it right
- One sender for each email: Klaviyo, with Shopify’s own abandoned-checkout email off.
- One listener for each event: the app embed or a snippet, never both.
- Each event named for what happened: cart means cart, checkout means checkout, and nobody who paid gets the cart series.
- What the browser never sees (returns, failed payments, restocks) sent from Shopify.
- Checked again after every theme update, since that’s when events go missing.
This is the part of email that lives in the store, and it’s why we build email on your store’s own data. Our Klaviyo email builds start by checking all of the above.
FAQ. Straight answers.
Why are Shopify and Klaviyo both sending abandoned-cart emails?
Shopify can send its own abandoned-checkout email, and Klaviyo sends your flow. If both are on, the same cart gets two emails. Turn Shopify’s off in its notification settings and let Klaviyo send.
Is turning off Shopify’s email enough?
Usually, but not always. If Klaviyo’s script is in the theme twice, or an event fires after a purchase, the duplicate still goes out.
Why did Added to Cart stop after a theme update?
The new theme doesn’t have the code that sent it: the app embed is off, or the old snippet didn’t come across. The Klaviyo app can still say it’s connected.
What’s the difference between Added to Cart and Started Checkout?
Added to Cart fires on the storefront when something goes in the cart. Started Checkout fires when the shopper reaches checkout, which Klaviyo picks up from Shopify directly. A flow built on the wrong one emails the wrong people.