David Lewin David Lewin
E-Commerce, Research & Ads

How to recover abandoned carts on Shopify & WooCommerce without annoying buyers

Disclosure: some links in this guide are affiliate links. If you sign up through them, I may earn a commission at no extra cost to you. How this site makes money.

Short answer

Send a short sequence to shoppers who left checkout after entering their email: a plain reminder within about an hour, an objection-handling email around 24 hours later, and an optional incentive after two to three days. Add SMS only with explicit consent, and stop the flow the moment they buy.

Most shoppers who start checkout don't finish it, and a large share of them were never going to buy. They were comparing prices, checking shipping or saving items for later. A recovery flow isn't about chasing all of them. It's about catching the ones who were interrupted or put off by something fixable, without teaching everyone else to abandon carts to get a discount.

Fix the reasons people leave, before you email them

Baymard Institute's long-running checkout research keeps finding the same top reason for abandonment: unexpected extra costs (shipping, taxes and fees) showing up late in checkout. Close behind come forced account creation, slow delivery, a long or confusing checkout, and not trusting the site with card details.

  • Show shipping costs or a "free shipping over $X" threshold on the product and cart pages, not just at the last step.
  • Allow guest checkout. Enable express wallets (Shop Pay, Apple Pay, Google Pay, PayPal).
  • Put the delivery estimate and return policy next to the buy button.
  • Test your checkout on a phone over a slow connection. That's what most of your shoppers use.

Every point you fix here raises conversion for everyone, not just the people who get your emails.

Who you can actually contact

  • Checkout abandoners: they typed an email or phone number in checkout. This is the main recovery audience, and Shopify and WooCommerce recovery tools capture it automatically.
  • Cart abandoners: they added to cart but never reached checkout. You can only reach them if they're logged-in customers or subscribers your email platform already recognizes.
  • Browse abandoners: known subscribers who viewed products without adding to cart. Use a softer, single reminder.

The email sequence

MessageTimingJobDiscount?
1. Reminder30–60 min after leaving"You left something." Product image, price, one button back to the restored cart.No
2. Objections~24 hoursAnswer the likely hesitation: shipping times, returns, sizing, reviews, guarantee.No
3. Last nudge48–72 hoursLow-stock or "still deciding?" message. Optionally a small, expiring incentive.Optional

Keep the first email plain and fast. People who were interrupted only need the link. Save persuasion for email 2, and treat the discount in email 3 as a business decision, not a default.

Example: email 1

Subject: Your cart is saved
Preview: The {{product_name}} is still waiting for you.

Hi {{first_name}},

You were checking out the {{product_name}} - it's still in your cart.

[ Finish checkout ]

Questions about sizing or delivery? Just reply to this email.

Example: email 2 (objection handling)

Subject: Quick answers before you decide
- Ships in 1-2 business days, delivered in 3-5 to most of the US
- 30-day returns, free on exchanges
- 4.8/5 from 1,200+ reviews (real quote from a review here)

[ Return to your cart ]

Use your real policies and real review numbers. Made-up urgency ("only 2 left!" when there are 500) erodes trust, and in many places it's a consumer-protection issue.

Discounts without training customers to wait

  • Only include a discount in the last message, and only for first-time customers or carts above a minimum value.
  • Use unique, single-use codes with an expiry (48 hours), not a public code that ends up on coupon sites.
  • Exclude people who abandoned with a discount in the last 60–90 days.
  • Test it properly: send half the audience no discount and compare recovered profit, not just recovered orders.

Adding SMS without getting in trouble

SMS gets read fast, but the rules are stricter than for email. In the US, marketing texts need prior express written consent under the TCPA. A pre-checked box isn't enough, and you need opt-out handling ("Reply STOP") and quiet hours. Other countries have their own rules.

  • Collect SMS consent with a separate, unticked checkbox at checkout.
  • Send one SMS at most, typically 1–4 hours after abandonment, and keep it short with the cart link.
  • Never text a number that was only given for delivery updates.

Deliverability: make sure the emails arrive

Since 2024, Gmail and Yahoo require bulk senders to authenticate with SPF and DKIM, publish a DMARC record, support one-click unsubscribe, and keep spam complaints very low. Set these up for your sending domain in your email platform. A recovery flow that lands in spam recovers nothing.

Tools

  • Shopify: the built-in abandoned checkout automation (Shopify Email / Shopify Flow) is fine to start with.
  • WooCommerce: needs a plugin or an email platform integration to capture abandoned checkouts.
  • Email/SMS platforms such as Omnisend or Klaviyo add browse abandonment, segmentation, SMS and proper A/B testing.

What to measure

  • Recovered revenue per recipient, which beats open rate as a measure.
  • Discount cost as a share of recovered revenue.
  • Unsubscribe and spam-complaint rate per message. A spike means a message is too pushy or too frequent.
  • Exit conditions: confirm the flow stops the moment an order is placed, including orders placed on another device.
Quick win

If you have no flow at all, turn on your platform's built-in abandoned checkout email today with a one-hour delay and no discount. Then add emails 2 and 3 next week.

David Lewin
David Lewin

Founder of StealthScale.io and e-commerce infrastructure engineer writing field-tested playbooks on proxies, cloud VPS, anti-detect browsers and SEO.