Winning back customers who stopped ordering
Most shops have a list of good customers who quietly stopped ordering. How to find them in Magento 2, send a personal win-back offer and measure who returned.
We use necessary cookies to make this site work. With your permission we also use Google Analytics to understand how the site is used and Google Ads cookies to measure which of our ads lead to purchases. You can accept all cookies, reject the optional ones or choose which ones to allow. Cookie policy
Choose which cookies you allow. Necessary cookies are always on because the shop cannot work without them. You can change your choice at any time with the "Cookie settings" link.
Needed for the basket, checkout, login and security. They do not track you.
Google Analytics: how many people visit, which pages they read and how they found the site. It sets the _ga cookies and sends usage data to Google.
Google Ads: measures which of our ads lead to a purchase. It sets the cookies _gcl_au and _gcl_aw (90 days) and, when you buy, sends Google the order details and a hashed form of your contact details for matching. See our cookie and privacy policies.
Create rule-based customer segments and send personal coupons for birthdays, VIP rewards or win-back campaigns, with account offers and reports.
One-off payment, with 12 months of updates.
No subscription or automatic renewal. Keep using the versions included in your update period. Update and licence details
Composer package commercegears/module-promo-personalised-offers
Use purchase history already in your store to decide which customers receive each offer. Build segments for repeat buyers, high spenders or customers who have not ordered recently, preview their membership and attach a reward. This module uses rules you define; it does not use AI or an external prediction service.
Define a segment and preview its members before creating an offer. Set reward value, dates, eligibility, frequency limits and email options. Keep cron running for membership recalculation and coupon delivery. Luma and Hyvä storefront support is included; Coupon Wallet is an optional integration.
Install with Composer using composer require commercegears/module-promo-personalised-offers, then run bin/magento setup:upgrade. Composer installs the required CommerceGears dependencies: commercegears/module-core ^2.0, commercegears/module-promo-core ^2.0.
Segments and offers are rule based. A customer receives a reward only once per applicable offer period, subject to the global frequency limit. Time-based membership is refreshed by scheduled recalculation. Emails default to newsletter subscribers and respect quiet hours and opt-out settings.
Release 1.0.2; Magento 2.4.7 – 2.4.9; PHP 8.2 – 8.5. Read the included user guide and test your own theme, checkout and integrations before production use.
A win-back coupon after 60 days without an order, VIP 10% after £1,000 of spend, a birthday coupon: each customer gets the offer that fits their history.
Segments update after orders and every day, coupons are issued and e-mailed by cron and expire automatically.
Issued, used, conversion and revenue per offer, and how many customers join and leave each segment.
All features
Feature tour
01 / 06
Magento's rule editor with order, spend, product and customer conditions, a live member preview and the members per day.
02 / 06
On joining, every N days or before the birthday; percentage, fixed amount or free shipping; e-mail, account and banner.
03 / 06
Reason, discount, personal message, code with a Copy button and expiry date in the customer account.
04 / 06
A slim bar for logged-in members with the code, Copy and View offer buttons, loaded privately so pages stay cached.
05 / 06
Tailwind and Alpine.js templates for the account page and the My Coupons section, mobile first.
06 / 06
Exit Intent, Spin to Win and other CommerceGears promotions list your segments in their forms.
Live demo
A full Magento store with the module installed, on Luma and on Hyvä. The admin demo signs you in with one click.
Compatibility
| Magento | 2.4.6 – 2.4.9 |
|---|---|
| Platforms | Magento Open Source and Adobe Commerce (one price) |
| Storefront themes | Luma Blank Hyvä |
| PHP | 8.2 – 8.5 |
| Latest version | 1.0.4 |
| composer.json requires | php ~8.2.0||~8.3.0||~8.4.0||~8.5.0 ext-json * magento/framework ~103.0.6 commercegears/module-core ^2.0 free, installed by Composer with this module commercegears/module-promo-core ^2.0 free, installed by Composer with this module magento/module-backend * magento/module-catalog * magento/module-catalog-rule * magento/module-config * magento/module-customer * magento/module-directory * magento/module-email * magento/module-newsletter * magento/module-rule * magento/module-sales * magento/module-sales-rule * magento/module-store * magento/module-ui * |
Installation
After you buy, create a Composer key in your account. Then, in the root of your Magento project:
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
02Install the module
composer require commercegears/module-promo-personalised-offers
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
The user guide has its own page: how to install Personalised Offers, what each option does and how to use it in your store. Written for version 1.0.4; a copy ships with the module.
Changelog
FAQ
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
No. Version 1 is rule based: you decide the conditions of each segment and the offer for it. Everything is calculated from data already in your store.
Orders (days since the last order, number of orders, total spend, average order value, coupon use), the products in those orders (SKU, category or product attribute, with a minimum number of orders and a period), and the customer account (group, website, account age, date of birth, newsletter subscription, billing country). Conditions can be combined in AND/OR groups.
Segments are calculated by the database in batches of customer IDs, by cron, not on page requests. A full recalculation that does not finish in one cron run continues in the next one. After an order or an account change only that customer is re-checked. On the storefront, other promotions read membership with one indexed lookup.
Within about a minute (the queue is processed every minute by cron). Conditions that depend on time, such as "60 days since the last order", are updated by the daily full recalculation (configurable).
Only once per offer period: once per time they join the segment, once per repeat period for recurring offers, once per birthday. A global limit (default 1 offer per 7 days across all offers) stops customers getting several offers at once.
A percentage, a fixed amount off the basket or free shipping, optionally only on products of some categories and with a minimum basket subtotal. Each customer gets a unique single-use code for their own account that expires automatically.
By default only to newsletter subscribers, outside the quiet hours (21:00 to 08:00 store time by default) and in batches. You can switch e-mails off per offer. Customers who get no e-mail still see the offer in their account.
Yes. Every offer e-mail, also to customers who are not newsletter subscribers, has a "Stop these e-mails" link that works without logging in and asks for confirmation, plus List-Unsubscribe headers for the unsubscribe button of mail programs. Customers can also turn offer e-mails off or on again under Offers for You. You see and change the choice in the customer's account in the admin (*No Personalised Offer E-mails*). It applies to all offers and does not change the newsletter subscription.
In My Account > Offers for You, in My Coupons when CommerceGears Coupon Wallet is installed, in an optional banner on every page while they are logged in, and in the e-mail.
No. Pages stay cached; the banner text and code are loaded privately in the browser for logged-in customers, as Magento does for the mini cart.
Yes. Segments are offered to the other CommerceGears promotions through the Promotions core, so their forms list them, for example to show an exit offer only to lapsed customers.
The report shows per offer how many coupons were issued, e-mailed and used, the conversion and the revenue of the orders that used them, and per segment how many customers joined and left. The numbers also appear in the Promotions Overview.
Their segment memberships and offer records are deleted with the account. Segment data is derived from Magento data only and is not sent anywhere.
Support
From the blog
Most shops have a list of good customers who quietly stopped ordering. How to find them in Magento 2, send a personal win-back offer and measure who returned.
A goodwill code only helps if the customer can find it when they next order. How personal coupons work in Magento 2, and how to put them where customers will see them.