How can I streamline the customer account activation process?

Finally! You made an app that does what Shopify should be offering to its
customers as part of the basic package. Congrats. I’ll try it out for sure.

@Sunny are you still with us? It’s been 3 years since the initial request and it still seems not to be a default functionality. One should not need another app for this basic functionality: When you create an account, you should activate it via email before logging in/have the account opened. It shouldn’t be possible to create an account with the email adress of another person.

The steps should be:

  1. Create customer account
  2. Send email “Please activate your account. If this wasn’t you, ignore this email.”
  3. If the user clicks on the link, activate the account and tell the customer: “Thanks, your account is now active.”
  4. (Optionally: send a confirmation email “Thanks for activating your account”)

I’ve found the customer_account_activate email notification template and a matching entry in the API docs: https://shopify.dev/api/examples/customer-accounts#activate-a-customer

So why isn’t there a simple option in the shopify backend to activate this opt-in functionality?

@jsen42 you are correct that email verification is still not offered natively by Shopify.

To be clear on one point, the steps you laid out are followed (more or less) when there is an existing customer profile, usually meaning the email address has subscribed to marketing or made a purchase as a guest.

Email verification is offered on Customer Field’s Lite plan, and while I understand the frustration

of wishing this was offered natively by Shopify, I do hope you can find $12 of value per month using our app which we’ve spent 6+ years developing.

This is so frustrating that that shopify doesn’t have this set up yet…Absolutely ridiculous…I tried Helium app, not of any use either - Looks like its gonna remain same —SO DISAPPOINTED OF SHOPIFY!

@NatalieG1 I agree it’s frustrating. Why exactly is the Helium app not helpful?
If you set your form’s Account Options to “require email verification” (see screenshot) the form will do exactly what the OP asked for:

  1. New customer enters details (Name, Email, Password)

  2. Page changes to “An activation email has been sent!” or something to that degree

  3. Customer activates by clicking email link sent

  4. Finally customer is redirected to login page and is required to login for access to the store

What about that doesn’t work for you?

He does not seem like he is looking to use the customer account for a different purpose. We just want one customer should not be able to enter the account page without verification or create 10.000 fake account on our store. If account is not verified we should be able to delete account.

So which purpose Shopify uses email verification?

@cnrtncy Shopify only verifies a customer’s email address if the customer has existing orders. If you want to enforce email verification prior to customer registration then try the Customer Fields app.
(Shopify still does not support this functionality.)

How can I restrict on customer email registration such that only a particular domain is allowed to register

Hi @umeshk01 - yes, this functionality is supported in the Helium Customer Fields app.

Here’s a video that shows how to do this in the app.https://youtu.be/RL-wQ_WX6ew

Dear Sir,

Thank you for the reply, but it is a paid app and I am looking a solution if we can do this by changing some code in register.liquid and login.liquid.

In this column,

{{ 'customer.login_page.email' | t }}

Please see.

Thank you

Not Exactly, But i have resolved issue with different approch, this is bigger issue in B2B login, because anyone can get OTP code on email and login.

Solution:

1. When customer register first time, I have used the hook or use FLOW App to tag customer as disabled.

2. Paste a code into theme.liquid file {% for tag in customer.tags %}

{% if tag == "disabled" %}

{% endif %}
{% endfor %}

3. in above script, I just wanted user to stay logout until they are verified.

4. I sent email customer with verify link.

5. Once customer click verification link, I use the graphQL or use restAPI call to remove the tag disabled and now customer can login.