Abandoned Cart for Magento 2

Up to three reminder emails for shoppers who leave items in their basket, with the basket contents, a one-click link that restores it and an optional single-use coupon, plus a report of the orders and revenue they win back.

  • Magento 2.4.6 – 2.4.9
  • PHP 8.2 – 8.5
  • Hyvä and Luma
  • Version 2.1.1
$169

One-off payment, with 12 months of updates.

What is included

  • Install with Composer, or download a zip from your account
  • Licence for one production domain, staging and development copies included

No subscription or automatic renewal. Keep using the versions included in your update period. Update and licence details

Key features

  • Up to three reminders, each with its own delay and template
  • Cart items with image, options, quantity and price
  • Signed "Return to your basket" restore link
See all features

Composer package commercegears/module-abandoned-cart

Abandoned Cart sends shoppers who leave items in their basket up to three reminder emails: the basket as they left it, a signed link that brings it back in one click and, if you want, a single-use coupon. The Recovery Report shows which emails were opened and clicked, which baskets turned into orders and how much revenue the reminders recovered. One-off payment, no subscription, and no per-email fees: the emails go out through your own Magento store.

How it works

  1. A basket is left behind. It has items, no order and no change for the time you set (60 minutes by default). Signed-in customers are always known; a guest's address is captured from the checkout email field, the newsletter form or the sign-in form.
  2. Up to three reminders follow. Each has its own delay (1, 24 and 72 hours by default), its own email template per store view, its own audience (everyone with a known address or newsletter subscribers only) and an optional single-use coupon from a cart price rule. Reminders stop when an order is placed, the basket is emptied or the shopper unsubscribes.
  3. One click back to the basket. The "Return to your basket" link reopens the basket, with the coupon applied if you choose. Customers sign in first, and in another browser a guest gets a copy of the items, so a forwarded link never opens someone else's checkout.
  4. You see what it earns. Abandoned and reminded baskets, emails sent, opened and clicked, recovered baskets, recovery rate and recovered revenue, by day, week or month and per store view.

Who it is for

Magento 2 stores on Luma or Hyvä that want basket reminders inside Magento, with their own email templates and cart price rules, without a monthly fee. Every reminder has a "Stop basket reminders" link with a confirmation page, and only the newest basket of an email address is reminded, so nobody gets a flood of emails.

Look elsewhere if you need SMS or push reminders, A/B tests of your emails or a full marketing automation platform with segments and campaigns: an email marketing service with a Magento integration fits that better.

Scope and compatibility

  • Exclusions: store views, customer groups and baskets below a minimum subtotal. Baskets older than a set number of days are ignored, so switching the module on does not email old baskets.
  • Admin: Abandoned Carts grid with preview, send now and stop, Mail Log, Recovery Report, Send Test Email, and command line tools to run, preview, test, report and manage the opt-out list.
  • Checkouts: the checkout email capture works on the Luma checkout and Hyvä's Luma checkout fallback. Hyvä Checkout and other one-step checkouts need a small integration that posts the address; reminders, restore links and the newsletter and sign-in capture work on any storefront.
  • Languages: reminder emails, the unsubscribe page and the restore page in English and German.

Magento Open Source or Adobe Commerce 2.4.6 – 2.4.9, PHP 8.2 – 8.5, Hyvä and Luma. Try it in the live demo: the Luma storefront, the Hyvä storefront and the admin.

  • Back to the basket in one click

    The restore link reopens the cart in the browser that still holds it, or copies the items (and the coupon) into the shopper's own cart anywhere else.

  • Your schedule, your words

    Choose when each of the three reminders goes out, which email template it uses per store view, and which one carries a coupon.

  • Respectful by design

    Send to everyone or to newsletter subscribers only, per reminder. Anyone who used the unsubscribe link is always skipped, and one address gets at most one series.

All features

What is included

Finding abandoned carts

  • Carts with items, not ordered and idle for a set number of minutes
  • Signed-in customers, and guests once their email address is captured
  • Guest capture from the checkout email field, newsletter and sign-in forms
  • Exclude store views, customer groups and carts below a minimum subtotal
  • Old carts ignored when the module is first switched on

Reminders and coupons

  • Up to three reminders with their own delay and store-view template
  • "Send To" per reminder: everyone or newsletter subscribers only
  • Unique single-use coupon codes with an expiry, unused expired codes deleted
  • Stops when an order is placed, the cart is emptied or merged, or the customer unsubscribes
  • Only the newest cart of an email address is reminded

Links and privacy

  • Restore links signed with HMAC-SHA256 and a per-cart secret, with an expiry
  • Customer carts open only after signing in
  • Unsubscribe confirmation page (Luma and Hyvä) and opt-out list per website
  • One-click List-Unsubscribe headers (RFC 8058) on Magento 2.4.8 and later
  • Records deleted with the customer account and after a set history period

Admin and developers

  • Abandoned Carts grid with preview, send now, stop and delete
  • Mail Log with status, coupon, opens, clicks and orders
  • Recovery Report by day, week or month and store view
  • Send Test Email page and email preview
  • CLI: run, preview, test, stats and unsubscribe; separate ACL permissions

Feature tour

Everything your shoppers and your team see

01 / 06

The basket, as the shopper left it

Every reminder lists the cart items with image, name, chosen options, quantity and price, the subtotal, a "Return to your basket" button and a "Stop basket reminders" link.

02 / 06

A unique code when you want one

Pick a cart price rule with auto-generated codes for any reminder. Each email gets its own single-use code with an expiry, and it can be applied automatically when the basket is restored.

03 / 06

Every cart and where it stands

Customer, items, subtotal, last and next reminder, and a status with the reason: scheduled, recovered, unsubscribed, ordered before a reminder or not eligible. Preview, send now or stop from the row.

04 / 06

Three reminders, set up per store view

Each reminder has its own switch, audience, delay in hours, email template, coupon rule and coupon lifetime.

05 / 06

A clear way out, on Luma and Hyvä

The signed unsubscribe link opens a confirmation page, so mail scanners that open links do not unsubscribe anyone. Customers can switch reminders back on from the same page.

06 / 06

See it before your customers do

Send a test of any reminder to any address with a sample cart from the catalogue or a tracked cart, or preview it in a new tab. No real coupon is generated.

Live demo

Try it before you install it

A full Magento store with the module installed, on Luma and on Hyvä. The admin demo signs you in with one click.

Compatibility

Requirements and compatibility

Compatibility of Abandoned Cart
Magento2.4.6 – 2.4.9
PlatformsMagento Open Source and Adobe Commerce (one price)
Storefront themes Luma Blank Hyvä
PHP8.2 – 8.5
Latest version 2.1.1
composer.json requires php ~8.2.0||~8.3.0||~8.4.0||~8.5.0 magento/framework ~103.0.6 commercegears/module-core ^2.0 free, installed by Composer with this module magento/module-backend * magento/module-catalog * magento/module-checkout * magento/module-config * magento/module-customer * magento/module-directory * magento/module-email * magento/module-newsletter * magento/module-quote * magento/module-sales * magento/module-sales-rule * magento/module-store * magento/module-tax * magento/module-ui *

Installation

Up and running in minutes

After you buy, create a Composer key in your account. Then, in the root of your Magento project:

  1. 01Add the repository and your key (once per project)

    composer config repositories.commercegears composer https://repo.commercegears.com
    composer config --auth http-basic.repo.commercegears.com PUBLIC_KEY PRIVATE_KEY
  2. 02Install the module

    composer require commercegears/module-abandoned-cart
  3. 03Enable it

    bin/magento setup:upgrade
    bin/magento setup:di:compile
    bin/magento setup:static-content:deploy
    bin/magento cache:flush

    The last three are only needed in production mode.

Prefer a zip? Every version you are entitled to can be downloaded from My modules. More about Composer access

User guide

Setting up Abandoned Cart

The user guide has its own page: how to install Abandoned Cart, what each option does and how to use it in your store. Written for version 2.1.1; a copy ships with the module.

In the guide

Read the user guide

Changelog

Release notes

2.1.1

Latest
  • Fix: "Send Next Reminder Now" and "Stop Reminders" are back in the Abandoned Carts grid.
  • Improvement: calmer grid status colours; only a failed e-mail is shown in red.

2.1.0

New: German translation of the reminder e-mails, unsubscribe and basket restore pages.

2.0.2

  • Improvement: compatible with Magento 2.4.6 (PHP 8.2).

2.0.1

  • Improvement: user guide screenshots and links updated for the CommerceGears name

2.0.0

  • Improvement: renamed to CommerceGears (new Composer package, admin menu and settings paths)

FAQ

Questions, answered

Something else on your mind? The developers who wrote the module answer before and after you buy.

Ask a question →

Already installed it? Open a support ticket

When does a cart count as abandoned?

When it has items, has not been ordered and has not changed for the number of minutes you set (60 by default). No reminder is sent while the shopper is still changing the cart. Carts older than "Ignore Carts Older Than" (7 days by default) are never picked up, so switching the module on does not email old carts.

Are guests reminded too?

Yes, once their email address is known. The module captures it from the Luma checkout email field (also used by Hyvä stores through the Luma checkout fallback), the newsletter sign-up form and the sign-in forms. Each source can be switched off. Signed-in customers are always known.

How many reminders are sent, and when?

Up to three. Each has its own switch, delay in hours after the cart was last changed (1, 24 and 72 by default), email template per store view and optional coupon. If reminders are sent late, the gap between them is kept, so nobody gets two emails in a row.

What stops the reminders?

An order placed from the cart, the cart being emptied or merged, the customer unsubscribing, or you clicking "Stop Reminders" in the admin. When one email address has several carts on a website, only the most recently changed one is reminded.

How do the coupons work?

Create a cart price rule with Coupon = Specific Coupon and "Use Auto Generation" ticked, then choose it for a reminder. Each email gets its own single-use code, valid for the number of days you set (never past the rule's end date). If the same address still has an unused, valid code from the same rule, that code is sent again instead of a new one. Unused expired codes are deleted by an hourly cron job. The code can be applied automatically when the customer follows the restore link.

Is the restore link safe if an email is forwarded?

The link is signed and expires after a set number of days (14 by default). In the browser that still holds the guest cart, the cart is reopened. In any other browser the items and the coupon are copied into that browser's own cart, so the original cart never moves to another session. Customer carts are never opened without signing in.

Can I send reminders only to newsletter subscribers?

Yes. "Send Reminders To" can be set to everyone with a known email address or to newsletter subscribers only, and each reminder can override it with its own "Send To", for example the first reminder to everyone and the coupon reminder to subscribers only. Newsletter status is checked when each reminder is due. Check your local rules on marketing email before you choose.

How do customers unsubscribe?

Every reminder has a "Stop basket reminders" link to a confirmation page (Luma and Hyvä templates included). Opening the link alone does not unsubscribe, because mail scanners open links; the shopper confirms with a click and can switch reminders back on from the same page. On Magento 2.4.8 and later the emails also carry one-click List-Unsubscribe headers, so mail apps can show their own "Unsubscribe" button. You can add or remove addresses with the commercegears:abandoned-cart:unsubscribe command.

Can I change the email design and wording?

Yes. The default templates are "Abandoned Cart: Reminder 1/2/3" under Marketing > Email Templates. Load one, edit your copy and choose it in the configuration for each store view. The item table is rendered by CommerceGears_AbandonedCart::email/items.phtml, which your theme can override.

What does the module track?

Emails sent, opened (optional 1x1 image), clicked, recovered carts (an order from the reminded cart, or by the same email address on the same website within the attribution window) and recovered revenue (order base grand total). Open counts are an estimate, because many mail apps block or preload images.

Can I test the emails without emailing customers?

Yes. CommerceGears > Abandoned Cart Reminders > Send Test Email sends any reminder to any address with a sample cart or a tracked cart, and "Preview in New Tab" shows it without sending. No real coupon is generated for a test. On the command line, commercegears:abandoned-cart:preview writes the HTML to a file.

Does it work with Hyvä Checkout or one-step checkouts?

Reminders, restore links and the unsubscribe page work on any storefront. The checkout email capture is built for the Luma checkout (and Hyvä's Luma checkout fallback). Other checkouts need a small integration that posts the email address to abandonedcart/capture/email. The newsletter and sign-in capture work regardless of the checkout.

Support

Help from the developers who wrote it

From the blog

Guides and articles