WooCommerce Abandoned Cart Recovery: Emails, Timing, and What Actually Works
70% of WooCommerce carts are abandoned. Email recovery sequences, timing, subject lines, and the plugins that automate it without a dedicated ESP.
The Baymard Institute puts the average cart abandonment rate at 70.19%. In WooCommerce terms: for every 10 people who add something to their cart, 7 leave without buying. That's not a marketing problem you can solve by redesigning your checkout page — it's the baseline behaviour of online shoppers.
The question isn't whether to run cart recovery. It's whether to do it in a way that actually recovers revenue without burning your list. A single nagging email with a desperate "COME BACK" subject line does more damage than no email at all. A well-timed, honest sequence that gives people three chances over 72 hours — with increasing incentive — typically recovers 5–15% of abandoned carts, depending on your average order value and audience.
This guide covers why carts get abandoned, how WooCommerce tracks abandonment, how to build the recovery sequence, and which tools do it without requiring a full email service provider integration.
Why WooCommerce carts get abandoned
Understanding why shoppers leave gives you the framing for what to say in recovery emails. Generic "You left something behind" copy ignores the actual objection. Baymard's data on the leading causes:
Unexpected shipping costs account for roughly 48% of abandonments. The customer thought the item was £40. At checkout, they see £40 + £7.99 shipping. They leave to find it elsewhere. Your recovery email for this segment should acknowledge shipping costs — offer free shipping on order 2, or explain your shipping policy clearly.
Required account creation is second at around 24%. Forcing registration before checkout is a conversion killer that WooCommerce enables by default. If you haven't turned on guest checkout (WooCommerce > Settings > Accounts & Privacy > Guest Checkout), fix that first. Recovery emails can't rescue a checkout that's actively hostile.
Checkout process too long or complex accounts for about 18%. Multi-step checkouts with too many required fields. The recovery email here should link directly back to the cart, not to the product page.
Payment method not available — no PayPal, no Apple Pay, no buy-now-pay-later option. Recovery emails can't fix this, but tracking which abandoned carts correlate with no payment selection tells you what to add.
Just browsing — some people will never buy. They use the cart as a wishlist. Recovery emails for this segment should lean on product information and social proof rather than urgency.
The recovery sequence you build should acknowledge this reality. Email 1 is a neutral reminder — no assumption that the person forgot, no pressure. Email 2 introduces social proof and a mild incentive. Email 3 is the last attempt with the strongest offer.
How WooCommerce cart abandonment tracking works
WooCommerce doesn't have native abandoned cart tracking. Here's what's actually happening under the hood, and why most recovery plugins work the way they do.
WooCommerce stores cart data in the wp_woocommerce_sessions table. Each visitor gets a session record containing their cart contents (serialised), session token, and expiry timestamp. The session is tied to a cookie on the visitor's browser. Unauthenticated users have sessions but no email address — this is the core problem.
WooCommerce captures the customer's email address at the billing fields during checkout. At that point, the session can be associated with an email. Most abandonment plugins hook into woocommerce_checkout_billing_email or woocommerce_checkout_posted_data to capture the email address the moment a visitor types it into the billing email field — before they click "Place Order." This is what makes recovery possible for guests who never completed the purchase.
The technical flow:
- Visitor adds items to cart — session created in
wp_woocommerce_sessions, no email yet - Visitor begins checkout, enters email address in billing fields — plugin hooks capture the email and associates it with the session
- Visitor leaves without completing purchase — plugin marks cart as abandoned after a configurable delay (usually 15–60 minutes of inactivity)
- Recovery automation fires based on the configured schedule
If the visitor completes the purchase at any point, the abandonment record is cleared and the recovery sequence stops. Getting this cancellation logic right is the difference between a good recovery plugin and one that emails people after they've already bought.
Setting up recovery emails with Brevo
Brevo (formerly Sendinblue) handles abandoned cart recovery natively — you don't need to configure webhooks or a custom WooCommerce integration. The official WooCommerce plugin passes cart data directly to Brevo's automation engine.
Step 1: Install the Brevo plugin
From your WordPress admin, go to Plugins > Add New and search for "Brevo." Install and activate the official Brevo for WooCommerce plugin. You'll need a Brevo account — the free tier supports 300 emails/day which covers most small stores.
Step 2: Connect your API key
In the Brevo plugin settings, enter your Brevo API v3 key (found in Brevo > Account > API Keys). The plugin will sync your WooCommerce contact list and product catalogue to Brevo. Allow a few minutes for the initial sync.
Step 3: Enable transactional and marketing sync
Make sure both "Sync WooCommerce contacts" and "Track ecommerce events" are enabled in the plugin settings. The ecommerce event tracking is what feeds cart data to Brevo for abandonment detection.
Step 4: Build the automation workflow in Brevo
In Brevo, navigate to Automations > New Workflow. Select "Ecommerce" from the template options. Choose "Abandoned cart" as the trigger. Brevo defines an abandoned cart as a session where cart items were added but no order completed within your configured window (default is 1 hour — you can adjust this).
Build the three-step sequence (covered in the next section) inside the automation builder. Each step is an email node with a delay before the next trigger. Brevo's email builder supports product blocks that pull in the actual cart items — cart image, product name, price, and a direct cart link.
Step 5: Set up the email template
For abandoned cart emails, keep the design simple: store logo, short copy, the cart contents block (Brevo populates this dynamically), and a clear CTA button back to the cart. No navigation bar, no footer links beyond the unsubscribe. The goal is a single action.
Test the workflow by adding items to your store's cart (while logged in with a contact that exists in Brevo), abandoning the cart, and verifying that the automation fires after the configured delay.
The 3-email recovery sequence
| Timing | Subject line formula | Expected recovery rate | |
|---|---|---|---|
| Email 1 | 1 hour after abandonment | "You left [Product Name] behind" | 2–4% of abandoned carts |
| Email 2 | 24 hours after abandonment | "[Product Name] is waiting — here's 10% off" | 2–4% of remaining carts |
| Email 3 | 72 hours after abandonment | "Last chance: your cart expires today" | 1–2% of remaining carts |
Email 1 — The neutral reminder
Send one hour after abandonment. No discount offer. The goal is to catch the people who genuinely got distracted — a phone call, an interruption, a browser crash. These people intend to buy; they just need the link back.
Copy framework: Acknowledge the cart, show the items, link back to checkout. One sentence of copy, no hard sell. "You left [Product Name] in your cart. It's still there when you're ready."
Do not offer a discount in Email 1. You're training customers to abandon carts on purpose if they know a discount is coming. Start with the reminder, reserve the incentive for Email 2.
Email 2 — Social proof + small incentive
Send 24 hours after abandonment, only to those who didn't convert from Email 1. Introduce a 5–10% discount code or free shipping offer. Add a social proof element: a product review, a trust badge, or a "X customers bought this this week" line if you have the data.
The discount code should be single-use and time-limited (expires in 48 hours). A permanent discount code trains shoppers to save it for later and abandon carts again next time.
Email 3 — Urgency and final close
Send 72 hours after abandonment. This is the last email in the sequence — if they don't convert here, stop emailing about this cart. Pushing beyond three emails crosses from recovery into harassment.
Use genuine scarcity if you have it (low stock numbers from WooCommerce inventory). If you don't have stock limitations, use time-based urgency ("Your saved cart expires at midnight"). Increase the discount to the maximum you're willing to offer — this is your final position.
After Email 3, mark the cart as closed regardless of outcome. Do not loop back to Email 1 for future carts from this customer unless they explicitly abandon again.
Subject line formulas that get opened
1. Product name in subject line "Your [Product Name] is still waiting" — personalisation at the product level outperforms generic cart reminders. Open rates consistently 20–30% higher than "You left something in your cart."
2. No emoji in subject line Emoji use in abandoned cart subjects has declined in performance as inboxes became saturated with them. Plain text subjects ("Did you forget something?") often outperform emoji-heavy versions in A/B tests, especially for B2B or higher-ticket products.
3. Scarcity with a real number "Only 3 left in stock — your cart won't last" — only use this if the inventory number is accurate. Fake scarcity destroys trust permanently when customers check your site and see 50 in stock.
4. Social proof subject "1,247 people bought this in the last 30 days" — works when the number is real and impressive. Don't fabricate.
5. Direct question "Did the checkout give you trouble?" — disarms the usual abandonment assumption and opens a dialogue. Works well for higher-ticket items where purchase anxiety is a real factor. Follow up in the email body with a link to your FAQ or a direct contact option.
WooCommerce plugins for cart recovery
| Plugin | Price | Sequences | Native Brevo integration |
|---|---|---|---|
| CartFlows | From $99/year | Multi-step, conditional | Via Brevo API |
| Recover WooCommerce Cart Abandonment | Free | Up to 3 emails | No (SMTP only) |
| Retainful | From $19/month | Multi-step + coupons | Yes (native) |
| Brevo for WooCommerce | Free plugin | Handled in Brevo automations | Yes (native) |
Recover WooCommerce Cart Abandonment (free) is the simplest option. It captures emails at the billing field, marks carts as abandoned after a configurable timeout, and sends recovery emails via WordPress's built-in wp_mail(). No external service required. The limitation is deliverability — wp_mail() without a proper SMTP plugin and sending domain authentication (SPF/DKIM) will land in spam for many recipients. Pair it with WP Mail SMTP and a transactional email service.
Retainful handles sequences natively and includes dynamic coupon generation (single-use coupons created in WooCommerce automatically). The UI is cleaner than building automations in a general ESP. If your entire email operation is WooCommerce cart recovery and post-purchase follow-up, Retainful is purpose-built for that.
CartFlows is more than a recovery plugin — it's a full checkout funnel builder. Order bumps, one-click upsells, A/B testing of checkout pages. If you're optimising conversion across the entire funnel, not just recovery, CartFlows is worth the cost. If you only need cart recovery emails, it's overkill.
Brevo for WooCommerce is the best balance of functionality and cost, especially at the free tier. The automation engine is mature, the WooCommerce integration passes cart data accurately, and you get a real ESP (transactional infrastructure, deliverability monitoring, list management) rather than a WordPress plugin trying to be one.
GDPR and email marketing compliance
This section matters more than most ecommerce guides acknowledge. The legality of sending abandoned cart emails in the EU depends on how you captured the email address and what consent was given.
The legitimate interest argument: Some operators send recovery emails under the "legitimate interest" lawful basis — the argument being that someone who began a checkout had clear commercial intent and contacting them about their incomplete transaction is within reasonable expectations. This is a defensible position in many jurisdictions, but it requires a Legitimate Interest Assessment (LIA) and the emails must include a clear opt-out.
The explicit consent argument: The safest position is to only send recovery emails to customers who have explicitly opted in to marketing communications. Add a checkbox at checkout: "Send me order updates and exclusive offers" — unchecked by default, GDPR-compliant, and only tick this for your recovery sequences. You'll have a smaller eligible list but zero compliance risk.
In practice: Use WooCommerce's built-in marketing consent checkbox (WooCommerce > Settings > Accounts & Privacy > Marketing). When connected to Brevo, the plugin syncs this consent status and Brevo will only add opted-in contacts to marketing lists. Contacts who didn't opt in still get transactional emails (order confirmations, shipping updates) but should not receive recovery emails.
Always include unsubscribe. Every recovery email must have a working unsubscribe link. In Brevo, this is handled automatically through the {{ unsubscribe_link }} variable. In Recover WooCommerce Cart Abandonment, you need to configure this manually. No unsubscribe link means GDPR violation, potential CAN-SPAM violation, and inbox placement penalties from major email providers.
Related reading
// new_articles
Get notified when new guides drop
Practical WordPress guides from a working agency owner. No filler. Unsubscribe any time.
Was this article helpful?
Thanks for the feedback!