Get in touch
  • WordPress
  • v1.3.1

Abandoned Cart Recovery for WooCommerce

Captures abandoned WooCommerce carts and brings the shopper back with a reminder email and a 1-click recovery link. Cart statuses, recovery statistics and a checkout error report in the admin panel. Pro — a chain of 3 emails, coupons, Viber/SMS, Telegram and CSV export.

Download Free
Pro · one-year licence The more sites, the less each one costs
Compatibility
WooCommerce 6.0+ · WordPress 6.2+
PHP
7.4 or newer
Version
Pro v1.3.1
Free v1.0.0 (wordpress.org)
Licence
two sites, annual
Trial
7 days, no card, one per site
Or all 173 Pro modules with All Access — 4 990 ₴ / year

The module in action — 41 sec

Clear even without sound: Ukrainian subtitles

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
Captures carts for logged-in customers and guests who entered an e-mail address at checkout ✔ ✔
Adjustable inactivity time after which a cart counts as abandoned ✔ ✔
Reminder email with a 1-click recovery link; subject and body fully editable ✔ ✔
Placeholders in the email: customer name, cart contents, link, store name ✔ ✔
One-time links with a limited lifetime (7 days by default) ✔ ✔
Cart statuses: active → abandoned → recovered / lost, with automatic recovery detection when an order appears ✔ ✔
A cart list in the admin panel with a status filter, e-mail search and four statistics tiles ✔ ✔
Anti-spam: no more than once every N days per address ✔ ✔
Auto-cleanup of personal data by retention period + export and erasure via WordPress's own tools ✔ ✔
Compatible with HPOS and the block checkout ✔ ✔
"Checkout Errors" report: what stopped the shopper at checkout — validation with the field name, payment refusal, JavaScript error, expired session (classic and block checkout) ✔ ✔
The report shows how many shoppers hit each error and how many of them left without an order ✔ ✔
Checkout error report depth 7 days 7, 30 or 90 days
A chain of up to 3 emails — each with its own delay, subject and body — ✔
Personal discount coupons — genuine one-time WooCommerce coupons, restricted to the customer's e-mail, as a percentage or a fixed amount, with their own expiry date — ✔
Viber or SMS reminder through TurboSMS for shoppers who left only a phone: Viber with SMS fallback, quiet hours, test message — ✔
Telegram notification to the store owner the moment a cart is abandoned — ✔
Export carts to CSV — ✔
"Details" for a checkout error: the last 20 occurrences with page, browser, payment method, cart and whether an order followed — ✔
Export checkout errors to CSV — ✔

What it looks like

Abandoned Cart Recovery for WooCommerce — cart list and statistics tiles
WooCommerce → Abandoned Carts: four statistics tiles (carts abandoned, recovered, recovered revenue, recovery rate) and a cart table with a status filter and e-mail search.
Abandoned Cart Recovery for WooCommerce — Pro fields in the free version
The free version hides nothing: Pro fields stay in place, greyed out, with a PRO badge and a line explaining what they give you. You can see the boundary, not an advert.
Abandoned Cart Recovery for WooCommerce — license block
The license block: status (“Free version” / “Pro enabled”), a key field with activation and unlinking, and a “Try Pro for 7 days” button.

Key points

Viber or SMS reminder

Many shoppers leave only a phone number at checkout and never type an e-mail.

Checkout error log

An abandoned cart does not always mean “changed my mind”. Some shoppers get all the way to checkout, hit a red message and leave.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — two sites

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • WooCommerce 6.0+ (classic and block checkout, HPOS)
  • WordPress 6.2+
  • PHP 7.4+
  • Working WP-Cron — or a system cron that calls wp-cron.php

Version history

v1.3.1 Current

The cart-recovery link no longer burns out when an e-mail scanner opens it.

v1.3.0

A new “Checkout Errors” report.

v1.2.2

Pro updates no longer come from wordpress.org, so WordPress will not offer to replace the Pro build with the free copy that shares its plugin name.

All versions (7)
v1.2.1

A purchased license stays yours: the Pro features keep working after the license term ends.

v1.2.0

Pro: a Viber or SMS reminder through TurboSMS for shoppers who left only a phone number at checkout (classic and block checkout).

v1.1.0

Pro no longer turns on by itself: a fresh install is the free version until the owner starts a trial or activates a key.

v1.0.0 First release

Cart capture, abandoned/recovered statuses, a reminder email with a one-time link, a cart list with statistics, data cleanup; Pro.

Frequently bought with Abandoned Cart Recovery for WooCommerce

4 modules in one order — 40% cheaper than separately

“Store starter” bundle Abandoned Cart Recovery Nova Poshta Premium Mono Acquiring Telegram notifications and Viber/SMS for customers Need more — all 173 modules in All Access for 4 990 ₴.
2 490 ₴ / year instead of 4 160 UAH bought separately
Buy the bundle →

Full module description

Abandoned Cart Recovery for WooCommerce is a plugin that tracks carts left behind before checkout and brings the customer back with a reminder email containing a personal link. One click and every item is back in the cart, with the checkout address already filled in. Carts belonging to logged-in customers are recorded straight away; guest carts as soon as the customer has entered an e-mail address at checkout.

Viber or SMS reminder

Many shoppers leave only a phone number at checkout and never type an e-mail. With Pro those carts come back too: after the delay you set, the shopper gets one short Viber message with a link to the saved cart, and an SMS if the number has no Viber or the message is not delivered. Messages go out through your own TurboSMS account, so you pay your own rate.

The plugin writes once per cart and never at night: quiet hours are a setting, and a message that falls into them goes out in the morning. The Viber/SMS link is separate from the e-mail link, so one never cancels the other. Before going live you can check the balance and send yourself a test message right from the settings screen.

Checkout error log

An abandoned cart does not always mean “changed my mind”. Some shoppers get all the way to checkout, hit a red message and leave. Since 1.3.0 the plugin records exactly those moments: what failed validation, what the payment gateway refused, what broke in the browser — and how many shoppers never placed an order afterwards.

The report holds four kinds of record: form validation — with the name of the field that failed; payment — the gateway refusal together with the payment method; JavaScript — a script error on the checkout page, which usually points at a theme or third-party plugin conflict; and other — an expired session, for example. Both checkouts are covered: the classic one is caught server-side, the block one through failed Store API responses, and whatever the browser showed before the form was even submitted is sent by the plugin’s own script.

No personal data goes into the log. Names, e-mail addresses and long numbers inside an error message are masked; only the message itself, the code, the field, the page path without its query string and a short browser signature are stored. Recording can be switched off entirely, or kept server-side only with the browser part disabled. Limits: at most 5 reports per page view and 300 per hour for the whole store. Rows are cleared by your retention period and never live longer than 180 days in any case, and “Erase personal data” in the WordPress tools removes them together with the cart.

How it works, step by step

  1. The customer builds a cart. Logged-in customers are recorded straight away; guests as soon as they enter an e-mail address at checkout. Works with both the classic and Checkout Blocks checkout.
  2. After a set period of inactivity (60 minutes by default) a background scan marks the cart as abandoned.
  3. After the chosen delay a reminder email is sent with a personal link. The subject and body are editable, with placeholders available: {customer_name}, {cart_items}, {recovery_link}, {store_name}.
  4. Clicking the link restores the cart and fills the checkout with the address already known. Once the customer places an order, the cart automatically moves to recovered.
  5. With Pro: instead of one email, a chain of up to three is sent — each with its own delay, subject and body — and from the second email on (the starting email is configurable) a personal discount coupon can be added automatically. The store owner gets a Telegram notification for every abandoned cart.

Under the hood

  • Nothing extra is collected — no personal data is stored from anonymous browsing. A guest cart is only recorded once the customer has entered an e-mail address at checkout.
  • The recovery link is safe to email — a 32-character random token, with only its SHA-256 hash stored in the database, compared via hash_equals(); the token is single-use and is stripped from the address bar as soon as the cart is restored.
  • Two background jobs: a scan every 15 minutes (catcode_abandoned_cart_scan) marks abandoned carts and sends emails; a daily job (catcode_abandoned_cart_cleanup) closes expired carts and clears data past the retention period.
  • Both checkouts feed one table: the classic checkout is captured server-side via update_order_review, the block checkout sends the e-mail to the plugin’s own REST route as soon as the field is filled in.
  • Pro coupons are genuine WooCommerce coupons, not a text placeholder: one-time use, tied to that customer’s e-mail, with their own expiry date.
  • English interface with a complete Ukrainian translation.
  • A phone only when it is needed: while the Viber/SMS reminder is off, the plugin stores no phone numbers at all. When it is on, it talks only to api.turbosms.ua — one message per cart with its own one-time token.

How licensing works

  • The key arrives by email after payment (or immediately if you took the trial). Paste it into settings and click “Activate key”.
  • Checked on the CatCode server. A trial key lasts exactly its 7 days.
  • “Unlink license” frees up the slot — the key can be activated on another domain right away, no need to contact support.
  • Someone else’s key won’t work: the key is tied to this specific module, not to “CatCode” in general.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
When does a cart count as abandoned?

If the customer added items and didn't complete the order within the time you set. The reminder email then kicks in.

How does the plugin learn a guest's e-mail?

A guest cart is recorded as soon as the customer enters an e-mail address at checkout, even if the order isn't completed.

What does the customer see in the email?

A list of their items and a link that restores the cart and fills in the checkout with one click.

How many emails are sent?

You set the number of emails and the delay between them yourself.

Can you see the effect?

Yes, the plugin includes statistics on recovered carts and amounts.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module