Full Answer
Abandoned cart tracking in Klaviyo depends on two independent systems working together — the WooCommerce plugin's event tracking and Klaviyo's flow engine.
The WooCommerce plugin monitors checkout page loads and fires a Started Checkout event to Klaviyo's API. This event carries the full cart payload: product IDs, names, images, quantities, individual prices, and cart total. When the same identified customer subsequently triggers a Placed Order event, Klaviyo marks the checkout as completed and suppresses the abandoned cart flow. The absence of Placed Order within the time window is what triggers the flow.
Email identification is the gating factor. Klaviyo cannot send an abandoned cart email to someone it cannot identify. For logged-in WooCommerce customers, identification happens automatically through the Klaviyo plugin's session matching. For guest visitors, identification requires the email field to be filled before abandonment — if a visitor adds items to cart and leaves before reaching checkout or entering their email, they fall outside Klaviyo's reach entirely.
The WooCommerce Blocks checkout introduces a complication. Classic checkout renders the email field at page load, giving Klaviyo an early identification opportunity. Blocks checkout uses React components that may render the email field asynchronously, potentially delaying identification. Stores using Blocks checkout should verify that Klaviyo's Started Checkout event includes the customer's email by testing with a guest checkout abandonment.
For recovery rates, Klaviyo's benchmark data reports abandoned cart flows recovering approximately 3-5% of abandoned carts, though this varies significantly by industry and email timing. Most stores configure a three-email sequence: first email at four hours, second at twenty-four hours, third at forty-eight hours.