Abandoned Customers
Introduction
The "Abandoned Customer"-extension for Magento2.x helps you maintain your customer accounts in your storefront automatically. Because of data protection / data privacy reasons it's sometimes necessary to maintain "old" or "not active (abandoned)" customer accounts regularly. Maintenance actions could be:
- resetting passwords of customer accounts automatically
- disabling customer accounts automatically (additional extension needed!)
- deleting customer accounts automatically
All of these actions can be configured by a period of inactivity (from the last login). If the time period is exceeded, the corresponding action is performed automatically (cron job).
In detail four different actions are supported - these actions can be configured separately from each other.
Features-Overview
Automatic maintenance of customer accounts
Customer accounts will be maintained automatically by a cron job. Each maintenance mode has it's own configuration e.g. period of inactivity.
Different maintenance modes
Customer accounts can be maintained by
- a) resetting passwords of customer accounts automatically (without email notification)
- b) resetting passwords of customer accounts automatically (with email notification)
- c) deleting customer accounts automatically
- d) disabling customer accounts automatically (additional extension (enobis/magento2-advancedlogin) needed!)
Normally, the actions are performed in the following chronological order (looking from today to the past): a), b), (d)), c).
Optional email notification
An email notification can be send to the customer automatically during the maintenance. Separate email templates can be configured.
Bestpractices & Faq
Example Configuration
The following configuration gives a common example.1. After a period of 180 days (180d), all passwords of inactive users will be resetted (without a customer notification). This ensures that these customers can't login with old password. These users must use the "Forget password"-functionality to create a new password.2. After a period of 355 days (355d), all passwords of inactive users will be resetted and the customer will be notified by email (optionally). These users must use the "Forget password"-functionality to create a new password.3. After a period of 365 days (365d), all accounts of inactive users will be disabled and customers will be notified by email (optionally). Disabled users must be activated by the administrator in the backend. **Please note:** These functionality requires the "advanced login"-extension by enobis.4. After a period of 720 days (720d), all accounts of inactive users will be deleted and the customer will be notified by email (optionally). **Important:** Deleted customers will loose all data incl. their orders, wishlists and cart items.Best practice to get it running in a live environment
**1. Version**Based on the example configuration above the recommend the following order of action for existing environments:- reset customer password (with the shortest period of days - in this case 180days.) This ensures that all customers who will be deleted, disabled and resetted couldn't login in with the old password! It just a quick security enhancement!- reset customer password and notify with email (355days)- disable customer accounts (365days - **Important:** Activate this 10 days after the action before!)- delete customer accounts (720days - **Important:** Activate this 365 days after the action before!))Note: This is the "soft" way to activate the actions in an environment with existing customers. Con: It needs several configuration sessions and the customer will maybe informed more than once in a short period of time!**2. Version**- reset customer password (with the shortest period of days - in this case 180days.) This ensures that all customers who will be deleted, disabled and resetted couldn't login in with the old password! It just a quick security enhancement!- delete customer accounts (720days)- disable customer accounts (365days)- reset customer password and notify with email (355days)**Note** This is the "hard" way to activate the actions in environments with existing customers. Pro: Only one session needed to setup all actions in an environment. Con: The Customers won't be informed before deleting/disabling their accounts.Important: Since every action with an lower action index won't be executed again, it prevends that customers will get an information about resetting their password, after their account was disabled.Recommended activation sequence for environments with existing customers
If you install this extension into a running environment, there are existing accounts, who will maybe involved into your automatic actions! If you enable all actions at the same time (even with different periods) different actions may be executed at the same time! E.g. Based on the above configuration, the last login of a customer is older than 800 days. All of these actions will be executed.**Recommendations:**- Check your cron configuration- Check your email configuration - double check that emails reach the customer (recipient).- Activate your actions step by step!- Dont't start with deleting accounts directly!- Try the features in a test environment firstTest scenario
- Find a account for testing- Change the last login date of this account to something very old. E.g. 5 years back. Be sure no other account will be harmed!- Double check that all customers has at least one login date or their accounts has be older than 5 years.- Maybe change the last login in of your customers actual date- Password-Reset-Actions can be recognized by changed password-hashesPlease note: To avoid complications, a task priority will be introduced in one of our next versions. So only the action with the highest index will be executed. Please check the roadmap of the extension.
Configuration-Parameter
Please note: These documentation referes to the latest module version only!
To activate the functionalities, please first activate the module in general. Each individual action must be activated by configuring the corresponding time period (in days).
Possible actions are:
- resetting passwords of customer accounts automatically
- resetting passwords of customer accounts automatically and send email notification
- disabling customer accounts automatically (additional extension needed!)
- deleting customer accounts automatically
A cron functionality automatically checks if there are customers, who have been inactive(based on the last_login) for a timespan longer than the configured period of time.
Important: Please plan the individual action well - especially in existing environments with existing customers! Because with existing customers different actions could be executed at the same time! Please check the best practices above!
The period of inactitiy will be checked against two dates:
- first check: date of last login (for customers who have logged in at least once)
- second check: creation date of the customer (only for customers who were never logged in)
The execution of an action will be logged into the "customer_entity"-table. Each action has a different index to avoid the executing of an action (and action with lower indexes) more than once! Beware: This avoids the execution of one action more than once, but it doesn't prevend the execution of different actions at the same time!
Important: Even a customer_entity is deleted, it's customer_log-entry won't. So you can always check, if an account is deleted because of inactivity. This helps also for debugging purposes!
Action | Period | Index | Description |
reset password | period_account_password_reset | 0 | resets password hash to a random value |
reset password and send email | period_account_password_reset_email | 1 | resets password hash to a random value and sends an email (optionally) |
disable account | period_account_disable | 2 | disables a customer account and sends an email (optionally) Important: extra extension needed! |
delete account | period_account_delete | 3 | deletes a customer account and sends an email (optionally) |
With a new customer login these logged values will be deleted again!
Please read above the best practices for live environments!
Important: Please doublecheck your cron settings - This extensions relies on well configured cron settings! Please enter the period of inactivity in days like '100d'!
Stores->Configuration->Enobis->Abandoned Customer->General
Option Type Description Scope Enabled Yes, No (Default) Enable/ Disable the "abandoned customer"-feature System->Website
Stores->Configuration->Enobis->Abandoned Customer->Period (Account Password Reset)
Option Type Description Scope Period String Please specify time period in days. Format: 40d, 10d, 180d. Leave empty to disable this period.
System->Website
Stores->Configuration->Enobis->Abandoned Customer->Period (Account Password Reset + Email)
Option Type Description Scope Period String Please specify time period in days. Format: 40d, 10d, 180d. Leave empty to disable this period.
System->Website
Email Enabled Yes, No (Default) Email notification for the customer enabledSystem->Storeview
Email Sender Dropdown List of email sendersSystem->Storeview
Email Template Dropdown List of email templatesSystem->Storeview
Stores->Configuration->Enobis->Abandoned Customer->Period (Account Delete)
Option Type Description Scope Period String Please specify time period in days. Format: 40d, 10d, 180d. Leave empty to disable this period.
System->Website
Delete Customer Wishlist Yes, No (Default) With deletion of the customer, the wishlist items of the customer will be deleted too.System->Website
Delete Customer Order(s) Yes, No (Default) With deletion of the customer, the orders of the customer will be deleted too.System->Website
Email Enabled Yes, No (Default) Email notification for the customer enabledSystem->Storeview
Email Sender Dropdown List of email sendersSystem->Storeview
Email Template Dropdown List of email templatesSystem->Storeview
Module
extension-name: enobis/module-abandoned-customer
Latest stable version
version: 1.0.3Install & Update
First you need to add our private repo to your composer.json of your magento installation:
composer config repositories.enobis-your-reponame composer https://satis.enobis.de/customers/your-reponame/
Important: All repos are secured by an ip-protection or an user-authentication. Access Credentials are provided by us!
To install the CHILIconnector-extension use composer via ssh:
composer require enobis/extension-name
To update the CHILIconnector-extension use composer via ssh:
composer update enobis/extension-name
Afterwards you have to complete your Magento2.x installation by
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
php bin/magento cache:clean
php bin/magento indexer:reindexChangelog
- 1.0.3 - fix: php warning while cron run when handling data
- 1.0 - initial release
Roadmap
- introduction of a task priority to execute the tasks with the highest priority first.
Prerequisites
Our extensions are not available via the magento-marketplace or packagist.org! The extensions are only available via a (private) repository!
In order to get access, a valid license-agreement is required!
If you have no access to our repositories, please contact us!
Addons
The following modules are available as addons:- enobis/magento2-advancedlogin - adds the possibilty to disable customer accounts too. A default Magento has no feature for disabling of a customer account easily.
Support
If you need help using one of our extensions, please get in touch with us by sending us an email to support@enobis.de.