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 first
  • Test 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-hashes

    Please 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

    OptionTypeDescriptionScope
    EnabledYes, No (Default)Enable/ Disable the "abandoned customer"-feature

    System->Website

  • Stores->Configuration->Enobis->Abandoned Customer->Period (Account Password Reset)

    OptionTypeDescriptionScope
    PeriodString

    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)

    OptionTypeDescriptionScope
    PeriodString

    Please specify time period in days. Format: 40d, 10d, 180d. Leave empty to disable this period.

    System->Website

    Email EnabledYes, No (Default)
    Email notification for the customer enabled

    System->Storeview

    Email SenderDropdown
    List of email senders

    System->Storeview

    Email TemplateDropdown
    List of email templates

    System->Storeview

  • Stores->Configuration->Enobis->Abandoned Customer->Period (Account Delete)

    OptionTypeDescriptionScope
    PeriodString

    Please specify time period in days. Format: 40d, 10d, 180d. Leave empty to disable this period.

    System->Website

    Delete Customer WishlistYes, 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 EnabledYes, No (Default)
    Email notification for the customer enabled

    System->Storeview

    Email SenderDropdown
    List of email senders

    System->Storeview

    Email TemplateDropdown
    List of email templates

    System->Storeview

Module

extension-name: enobis/module-abandoned-customer
  • Latest stable version

    version: 1.0.3
  • Install & 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:reindex
  • Changelog

    • 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.