For many Magento merchants, one of the easiest ways to drive additional incremental revenue is by implementing a solid cart abandonment solution.  Luckily, Magento actually tracks abandoned carts natively in the platform making it incredibly easy to create such a strategy.  However, for most merchants, a fundamental issue that arises when trying to scale revenue through your Magento cart abandonment program.  The issue is that the majority of users are not logged in and thus are not identifiable for cart abandonment purposes.  In fact, for every logged in user that we have who abandons their cart there are 50-100 carts abandoned by guests on the site.

At we have come up with a number of solutions to deal with this issue allowing us to more than double the revenue that comes from our cart abandonment program.  Before I explain them, let me start by explaining that we are using an extension from Extendware called Abandoned Cart Email to power our cart abandonment program.  This extension comes with some awesome features that I explain below.  Other pieces that I will describe have been custom developed by the MyBinding development team.

Now let’s take a look at the details.  Here are four specific things that we are doing to improve the number of recognized abandoned carts in Magento allowing us to drive additional revenue.

Capture information from Guest Checkout / Partial Checkout sessions

The native functionality in Magento for abandoned carts only allows you to track customers who are logged in.  If you are using the default Magento checkout and require users to create an account before checking out you can track those user’s carts.  However, if you have guest checkout enabled or are using a one page checkout extension (or a custom developed checkout) this can create a substantial problem.    By definition most guest checkout sessions do not create an account on your site and thus their carts are not registered in the abandoned cart list in Magento.

At MyBinding, we recently switched our checkout to onepage using the Onepage Checkout extension from Amasty.  As a result the default for users is to checkout as a guest with an option in the checkout to create an account when they complete the process.  This greatly reduces friction for customers.  However, it means that for the purpose of abandoned cart tracking that virtually no abandoned carts are recognized.  Here is a screen shot of what our new cart looks like. One Page Checkout from Amasty

The key to solving this problem is to capture the email address during the checkout process using Ajax and register the information in the quote model in Magento.  This ensures that if a user completes the first portion of the checkout process but then leaves that they will be eligible for cart abandonment.  This should happen in real time as the user fills out the email field in the one page checkout or guest checkout.  That way if they abandon when they get to the shipping method, payment step or final review you will still have their information.

The extension that we use from Extendware offers this functionality out of the box and works with both Magento native guest checkout and with the Amasty one page checkout.  This is incredibly handy and is functionality that we have expanded on further as we explored different solutions to this problem.

Capture Information from Your Email Collector

Now that you have a solution in place to gather the email address from guest users during checkout, the next step is to expand this behavior to apply to users who give you email addresses in other contexts.  At MyBinding we use a modal email collector to entice users to give us their email.  We currently trigger this collector using an exit intent technology which means that users may have something in our cart.  However, we have also tested running the collector on site entrance, on the second page and after a certain amount of time on the site.  In all of these cases the solution that we found works.

Here is the current modal that we use on the site…

MyBinding Exit Intent Email Popup Modal

When someone fills out their email in this modal we use jquery to extract the email address on submit and then insert it into the session cookie.  This is an essential step since users may or may not have an item in their cart.  After the user adds something to their cart (or if they already have someone thin their cart when filling this out) the email address will be added to the quote model making them eligible for cart abandonment.

Capture Information from Your Newsletter Signup and other Onsite Forms

Now that the functionality is in place to capture an email address into the session and later apply it to the quote model inside Magento, you can expand this to include other places where emails are collected on your site.  We have this email signup in our footer…

Email NewsLetter Signup

We implemented the functionality that when someone subscribes to our email they will become eligible for add to cart.  Perhaps you have a contact us form, a request a quote feature or a newsletter signup form in your footer.  Any of these can be an opportunity to expand the number of identifiable carts that are eligible for cart abandonment emails.

Auto log in / track customers who click links from your email marketing

Even with all of these strategies you will still find that the percentage of identifiable carts for your site will still be very low.  However, there is another major step that you can take to identify non logged in users.  This involves uniquely tagging the links from your email marketing efforts to identify users who click through from your email marketing efforts.  However, this same concept can be applied to your transactional emails and shipment notification emails with some modification.  We use Mailchimp at MyBinding and here is how we accomplished this.  If you use another ESP the same thing should be achievable with a little bit of tweaking.

The first step in order to make this happen was to export our email list from our Mailchimp account.  Once we had the email list exported as a CSV, we developed a PHP script to use Magento’s internal hash encryption to convert the email addresses into a hashed value.  This is essential for privacy reasons since you don’t want to be passing customer email addresses unhashed in URL strings.  Your Magento instance has an encryption key built into it that you can use for this purpose.  This same encryption key will be used to decode the email address later on in the process.

Now that you have generated the hashed values for all of your email addresses you can follow the steps from this Mailchimp knowledge base Article to create a custom text field, import the data and user merge tags to insert the hashed values into a query parameter in URL’s in your emails.  There are several Magento extensions that are designed for auto login that accomplish something similar to this including This One specifically for Mailchimp.  However, we decided that auto login wasn’t the right answer for us because it assumes the customer must have an account and many of our email subscribers either checked out as guests or have not purchased from us in the past.  Plus I was a little bit leery of the security issues created with auto login.

Using merge tags we were able to insert the unique hashed versions of the email addresses into query parameters in our marketing campaigns.  We then created an observer in Magento that recognized the specific query parameter from the URL, decrypted the hashed value and inserted in email into the session cookie for storage until the quote model is created when a user adds an item to their cart.

Unfortunately with the current implementation we are required to update new subscribers manually which is a bit tedious.  Eventually we may leverage the Mailchimp API and update the hashed value automatically.  For now however, it is easy enough to export subscribers without a hashed value on a monthly basis and update them manually.

What is Next? – How to Expand from Here

With these strategies, we have massively increased the number of trackable abandoned carts in Magento.  However we are not done yet.  We have a number of additional ideas planned including adding hashed variables into our auto generated transactional emails and finding ways to persistently cookie customers at checkout with an id that can be applied on subsequent visits to our site.

Have you implemented similar strategies to send abandoned cart notifications to non logged in customers In Magento?  What do you think about these ideas?  Any ideas for improving them?  I would love to hear from you.