Customer Data Integrity & Magento One-Page Checkout
Do you have clients who are reporting that their customers are unable to checkout, but you can't find any problem with your client's Magento checkout process? Are customers of your Magento site complaining that they have to re-enter their address because they can't check out? We may have an answer for you!
Yesterday, we discovered the source of a particularly ugly issue that has been plaguing one of our clients.
For months, customers of this client's Magento site have been complaining of problems checking out, but we've never been able to reproduce their issues. We found out yesterday that their was a gap in some of the customer data that had been imported into Magento when the site was first built. Some customers have customer accounts with saved addresses, but those addresses do not have phone numbers. This discovery came from a detailed email sent by a very kind customer talking about their problems.
When a customer logged into their account and attempted to check out using an address with no phone number, Magento was showing them an error like this: http://files.classyllama.com/c689cb8e/customer_address_warning.png
The big problem here is that there is no readily apparent way for customer to fix this issue. Customers ended up becoming irritated and were abandoning orders and leaving the site.
If your client is reporting the following kinds of problems with their Magento site, they may potentially be affected by this bug:
"My customers complain that Magento won't let them checkout."
"Magento is telling my customers there is something wrong with their address."
"My customers complain that they have to enter their billing/shipping address again in order to be able to checkout."
"Magento is telling my customers they need to enter a phone number, but they can't figure out how to do it."
This problem can only occur when addresses have been imported without phone numbers. A customer can never enter a new address in Magento without a phone number. So, if this problem is being reported but no customer data was ever imported, then the problem has a different root cause. However, if customer data was imported, what is most likely happening is that some customer addresses were imported without phone numbers.
The simplest fix for this problem is to locate all the customer addresses in the Magento database which do not have phone numbers, and populate the phone number field with a string of seven 0s (0000000000). This will allow a customer to check out without being blocked by this error outlined above.
The important takeaway for any new Magento build is this: when importing customer data, ALL CUSTOMER ADDRESSES MUST HAVE PHONE NUMBERS. You must check to make sure that there are no gaps in the phone number data, and if there are, you must work with your client to identify a way to fill these gaps - whether with 0s or real data. These gaps must be filled so that the error outlined here does not occur.
For reasons all of the technical folks reading this article will understand, this is a very ugly bug that can be extremely troublesome for customers, but nearly impossible to catch and diagnose. Knowing this information will help you prevent your clients from falling prey to this problem, or help them fix it if they have the problem already.
Posted on June 14, 2012
Posted by Rob Tull