Jump to content

Guest checkout shouldn't create "An Account" Returning customer is told "An account with this email"


Recommended Posts

Guest checkout shouldn't create "An Account". We have returning customers who try to use guest checkout more than once and are told "An account with this email already exists."

 

Since the point of checking out as guest is to avoid account creation.

Link to comment
Share on other sites

  • 3 weeks later...

I suppose you have to build in 'Guest Tracking' because you don't know what type of payment systems with invoices or receipts will be made.

However it would be nice to have a guest checkout module that works assuming the invoice will be sent via email with no need to track anything. There are plenty of guest checkout systems that record the transaction without creating an account, allowing a customer to checkout as guest indefinitely. Eastbay.com for example.

Edited by rkinfo (see edit history)
Link to comment
Share on other sites

  • 3 weeks later...

Hello everybody,

 

To solve this problem, you have to modify "controllers/front/Authcontroller.php

 

On line 375 find:

 

if (Validate::isEmail($email = Tools::getValue('email')) && !empty($email))

 

replace by:

 

if (Validate::isEmail($email = Tools::getValue('email')) && !empty($email) && Tools::getValue('is_new_customer', 1))

 

On line 522 find:

 

if (Customer::customerExists(Tools::getValue('email')))

 

Replace by:

 

if (Customer::customerExists(Tools::getValue('email')) && Tools::getValue('is_new_customer', 1))

 

I hope this works for you

Link to comment
Share on other sites

Hello everybody,

 

To solve this problem, you have to modify "controllers/front/Authcontroller.php

 

On line 375 find:

 

if (Validate::isEmail($email = Tools::getValue('email')) && !empty($email))

 

replace by:

 

if (Validate::isEmail($email = Tools::getValue('email')) && !empty($email) && Tools::getValue('is_new_customer', 1))

 

On line 522 find:

 

if (Customer::customerExists(Tools::getValue('email')))

 

Replace by:

 

if (Customer::customerExists(Tools::getValue('email')) && Tools::getValue('is_new_customer', 1))

 

I hope this works for you

 

 

Can you tell us exactly what this does?

Link to comment
Share on other sites

  • 2 weeks later...

If the code could be modified such that PS will check if the email is already in use AND if it is also associated with a registered account, the customers who previously used guest checkout would still be able to register an account with the same email.

 

Because after all, during guest checkout the same email can be used multiple times, so why can't they register later on?

 

Hope someone can find the right piece of code for that.

Link to comment
Share on other sites

  • 3 months later...

In PS 1.4.10

in Controllers/AuthController.php line 49

replace:

elseif (Customer::customerExists($email, false, false))

by

elseif (Customer::customerExists($email, false, true))

 

in same file line 135 replace:

if (Customer::customerExists(Tools::getValue('email'), false, (Configuration::get('PS_GUEST_CHECKOUT_ENABLED') && Tools::getValue('is_new_customer') == 0)))

by

if (Customer::customerExists(Tools::getValue('email'), false, true))

 

It seems to work, thanks to confirm

Edited by cactusman2 (see edit history)
Link to comment
Share on other sites

In PS 1.4.10

in Controllers/AuthController.php line 49

replace:

elseif (Customer::customerExists($email, false, false))

by

elseif (Customer::customerExists($email, false, true))

 

in same file line 135 replace:

if (Customer::customerExists(Tools::getValue('email'), false, (Configuration::get('PS_GUEST_CHECKOUT_ENABLED') && Tools::getValue('is_new_customer') == 0)))

by

if (Customer::customerExists(Tools::getValue('email'), false, true))

 

It seems to work, thanks to confirm

 

What exactly does this do? I wasn't clear about this

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

In PS 1.4.10

in Controllers/AuthController.php line 49

replace:

elseif (Customer::customerExists($email, false, false))

by

elseif (Customer::customerExists($email, false, true))

 

in same file line 135 replace:

if (Customer::customerExists(Tools::getValue('email'), false, (Configuration::get('PS_GUEST_CHECKOUT_ENABLED') && Tools::getValue('is_new_customer') == 0)))

by

if (Customer::customerExists(Tools::getValue('email'), false, true))

 

It seems to work, thanks to confirm

It works in PS 149! Great work, thanks for sharing!

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...
  • 2 months later...
  • 3 weeks later...

We have some registered customers complaining it is too complex to check out. In an attempt to fix this we activated guest checkout.

 

We are on 1.5.6.1 and what works in there is:

 

Check out many times (tested two..) with the same email adress as a guest, works! (as long as that same email has not been used by any already formally registered customer...)

 

What is not working is:

It is not possible for an already registered customer to avoid login and check out as a guest. (Error displayed email already used)

 

It is not possible to transfer a customer to a guest...(or we could not find it...)

 

Workaround:

In our case the simplest way was to react to a customer complain by doing manual update of the customer db entry for this customer and change the customer db flag 'is_guest' from 0 to 1. (Using Cpanel; phpMySQL...)

 

Doing so, the PS system allowed for an already existing customer (email) to check out as a guest thereby creating a new "guest" account.

 

Would be nice to manage the 'is_guest' flag nicely from the BO, rather than our risky workaround. Maybe someone knows more?

 

Rgds

Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...