I have a problem with default checkout in Mangeto, customers can't register, even if they complete all fields in the checkout Billing section I have this error - Invalid email address. I try to install any other extensions like IWD and I have the same error.

I check with firebug: and in the Response I have this:

{"error":-1,"message":"Invalid email address \"\"."}

The error is look like in the following image:

enter image description here

  • Do you mind sharing the url? – pong Nov 4 '16 at 23:28
  • Hi, please take a look: goo.gl/rKGsuo – Robert Nov 5 '16 at 8:40
  • Weird. Especially if there's no checkout extension in place. Might be a misconfigured firewall on your server - unlikely, but you can check for this by testing if the email is still available in index.php. Might be an observer messing with the request parameters: is there any custom code watching for the "company" field? This would be my first place to check. Apart from that, your best bet imo is to backtrace up to the point where the email parameter disappears. – pong Nov 5 '16 at 11:10
  • I just add a fresh copy of magento files to the actual database and is the same error, so maybe something missing in the database? – Robert Nov 5 '16 at 11:23
  • You should do the backtrace approach. To make sure the issue is not caused by anything outside the scope of Magento, add something like if ( strpos ( $_SERVER['REQUEST_URI'], 'checkout/onepage/saveBilling' ) !== false ) { file_put_contents ( 'var/log/email.log', sprintf ( 'File: %s Line: %d Value: %s%s', __FILE__, __LINE__, $_POST['billing']['email'], PHP_EOL ), FILE_APPEND | LOCK_EX ); } to the beginning of your index.php. You might want to add a condition so that logging will only take place if the request is yours. Check email.log if the email value is there. If this is the case ... – pong Nov 5 '16 at 13:43

Turned out that the root cause of this was a corrupted DB. It missed customer's email attribute for the checkout_register form_code in customer_form_attribute table. This was fixed by issuing INSERT INTO customer_form_attribute VALUES ('checkout_register', 9) with 9 being the customer email attribute_id.

  • @RobertD you may have to add some more form_codes as well for other functionality in case those are missing, too. please see chat for further information. – pong Nov 5 '16 at 17:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.