2

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

16
  • Do you mind sharing the url?
    – pong
    Nov 4, 2016 at 23:28
  • Hi, please take a look: goo.gl/rKGsuo
    – Robert
    Nov 5, 2016 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, 2016 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, 2016 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, 2016 at 13:43

1 Answer 1

3

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.

1
  • @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, 2016 at 17:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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