Membership in Commerce Module

May 6, 2014 4:48 pm

Can anyone walk me through the process of adding the ability for customers to create accounts during checkout, vs. having everyone checkout as a guest? Most other e-commerce platforms do this out of the box, so I'm thinking this must be included in Freedom somewhere. Thanks!

May 6, 2014 9:45 pm

Hey Dave!

You are correct, Freedom does have the ability to restrict checkout by membership, as well as gives you the ability to edit every aspect of the entire process while doing so.

I'll walk you through how to setup a membership restricted checkout in the steps below:

  • Turn on Commerce, and Membership.
  • In membership add a new restriction, we'll use 'Checkout' as an example.
  • Then create a new category we'll call 'Customers', under membership and check 'Allow access to Checkout'.
  • Go ahead and add a test user and place the user in the 'Customers' category.
  • Then within Commerce go to Checkout Forms and edit the checkout form you want to use, and when loaded hit 'Edit Form Configuration' in the black bar.
  • Change the membership access to 'Customers'.

You can test it with the user created, the product lister and shopping cart will be visible but the checkout form will require users to sign in and/or signup depending how you format the login box.

Also note that when your testing the login process, use another browser or an incognito tab that isn't logged in already on the site or you wont be prompted for a login.

Thanks for using the new forums!

May 6, 2014 10:39 pm

Also if you wanted to add membership registration as a part of the checkout process here are the steps to include that:

  • Turn on or verify Forms are enabled.
  • Go to
    Blue -> Forms -> Web Forms
  • Add a new web form, you can create your own from blank or use the existing 'Standard Membership Signup' created by Jared Serfozo
  • If your using an existing form, or your not within the form editing page (looks like this) then click the 'Edit Form Configuration' button in the black bar.
  • Inside the form configuration you'll most likely want to insert a link that asks users to return to the checkout form from the 'Thank you page' or the checkout process will be interrupted (Chances are that link will be 'index.php?src=forms&id=commerce_checkout' but you'll want to double check by going through the process)
  • Then edit the default login box by going to
    Green -> Layouts -> Modules
    and you can filter by membership or search for '[Box]' and format the login how you'd like new potential customers to see it and create a button that links to the membership signup form we just created in the previous steps.

The possibilities of what you do with Freedom are endless and we are always on the look out for new ways to improve the checkout process feel free to add any tips or tricks you discover as well!

May 7, 2014 7:25 am

Thanks, Justin! I'm going to implement this this afternoon. Will I be able to permit guest checkout, also? Ideally, I want to give customers the option to create an account or login to complete the process, but also want to permit them to checkout as a guest if they prefer. I've found that forcing logins on customers results in fewer purchases. Thanks!

May 7, 2014 11:55 am

Another great question Dave, thanks for the login tip as well.

There are another number of ways to do this in Freedom, you can setup commerce to ask for a login, add a new user registration button, and add a 'checkout as guest' button.

  • To do it this way, follow the steps we went through above, copy the form you design and remove the membership restriction, and then just create another button on the login form that links to that checkout form that says 'Continue as a guest'.


Or you can default to checking out as a guest but create a new membership on checkout.

  • To do that you'll want to use a checkout form without a restriction, verify that form is active.
  • Just add 3 custom fields on a checkout form to create the membership account -> 'userid', 'password', and 'group'.
  • You'll want to setup userid and password similar to this, and group you'll want to make a custom hidden field with the value equal to whatever membership group you want them in, you can see my example here.


Edited for clarity

May 8, 2014 1:42 pm

Justin,

Thanks for the detailed instructions...this seems to be working well. A question: when I created the membership group for customers, I left the option for the group to require approval set to "no." However, when the new user is created during the checkout process, it is entered as pending, and must be approved manually from the membership module. Thoughts?

May 8, 2014 4:30 pm

Thats perfect Dave, your on the right track.

The members pending works that way until the new user verifies their account, when your creating your thank you email or even during the checkout process you'll want to add the note for customers to verify their newly created account via email. This is briefly covered in the help bubble if you hover over the help icon (super easy to miss I know, I often catch myself overlooking them too) it'll give you a brief description on how this works. I've gone ahead and quoted the exact help text below:

Users that have a status of Pending are users that have been sent an email that requires that they validate their email address by clicking a link in the email. Once the user clicks the link, the activation status is changed to Yes, or New, if the group is set up to require approval. In this case, a Blue administrator must change the status to Yes for the member to become active.

To send an approval email, click the Send Approval Email button. A new window will appear that will let you format the message that will be sent out. This message can contain plain text or HTML formatting.

So basically once your test members validate their email address they no longer will be 'pending', however when the commerce form is configured correctly they will still checkout but they will also create a membership id that will make future checkout easier.

Also note, this verification email by default is part of the thank you email that you must turn this on in Orange -> Commerce -> Checkout Forms sub tab, and edit the form your using then click 'Edit Form Configuration' in the black bar -- scroll to the bottom of the page and check the 'Send Thank You Email', and you should really go ahead and style this email at this point but you'll notice the email confirmation link is in the bottom of the WYSIWYG editor.

Edited again for clarity

May 13, 2014 1:13 pm

Justin,

Just getting back to this. I've added the username and password fields to the checkout form, and this works perfectly. I've also added a "My Account" link in a utility nav at the top of page linking to the MyAccount layout in the Membership module, which I was able to customize the style of to match the theme of the site, and added a logout button there. This seems to accomplish the lowest barrier to checkout for the customer while providing ease of access to the membership functionality. Thanks for the direction.

The only part of the process that continues to fail for me is the confirmation link for new members. You previous comment (if I'm understanding correctly) indicates that this should be included in the order confirmation email. However, no link appears in the email. If I manually approve a test user from the Membership module, then the confirmation email fires with no issues. It's only the confirmation link that I'm missing. Can you provide direction on this?

Thanks.

May 13, 2014 4:40 pm

Hey Dave!

I have been working on our production stage to follow all the steps laid out here so that I can see what you are missing. In the end I managed to register as a new user during checkout, then confirm my account through the email link. If you wish to include the confirmation link in the email, you will have to use a freedom include (those things inside of "[[ ]]” ) in the email’s setup field. Unfortunately, it is not at all immediately obvious what include to use because it is not included in the drop down list of includes.

Go to Orange (Blue on older Freedom versions) > Commerce > Checkout Forms > Edit the form you are using > Click ‘Edit form configuration’ inside the black bar > Thank you email > insert the following:

Click here to confirm your user account : [[confirmation]]

That’s it! You should receive an email that looks something like this:

Click here to confirm your user account : http://asoftnumber.accrisoft.com/index.php?…

And when you click on that link in the email you should see a message that looks something like this:

Your email has been verified, your request is being processed.

As always, if you have any questions or need a more thorough explanation please don’t hesitate to ask and we will get an answer to you as soon as possible.

May 14, 2014 10:54 am

Thanks, Andrew. I had actually thought that might be the case, but, as you said, couldn't identify which include to place in the email :)

I'm experiencing one last issue with this process. Registration from the checkout form works correctly, and the use is able to click through the confirmation link in the email, which produces the confirmation message you described. The membership group in question (Customers) is set to not require approval, which, as I understand it, should prevent a site admin from needing to change the user's status from new to active. However, after clicking through the email link, the new user's status remains at new. I'm hoping to remove the necessity of admin approval, as I want the customer to be able to log directly into their account following confirmation from the email link. Ideas as to why this is happening?

May 14, 2014 1:16 pm

More great questions Dave. I have gotten this working as you described on our production stage. I made a new user which got attached to the category 'Customers'. I then got an account confirmation in my email which I clicked on, after which I could login to the site without admin approval. I will outline the necessary prerequisites here.

Please enter the Membership module by going to Orange (Blue on older freedom installations) > Membership > Users tab, and ensure that the newly registered users are indeed attached to the category you created ('Customers' in Justin's example), which you can see on the very right under the column 'Category'. Next please double check that the hidden field that you set up previously also has the proper value (again, 'Customers' in Justin's example - this is case sensitive). Finally, please go to membership > Categories > edit the category in question and ensure that its setup looks like this:

If you are following all of these steps and you still do not see the behavior you are expecting, please send us a support ticket with the relevant site information so that I can look at your setup and offer more specific support than just a general description of how to set up the membership signup.

May 14, 2014 1:27 pm

I have another question to add to this thread. I have a client that i will be setting up membership so they can provide "member only pricing".
In addition to member only pricing, they want to allow members to use a "bill me later" or "PO option", but they do NOT want those options to show up for NON members.

How could this be accomplished?

Are there any other things I will need to know as i set up member only pricing?

May 14, 2014 4:11 pm

Hi Paul,

If you wish to set up pricing that only members can see, one thing that you can do is to set up two different categories of products, then make two different product listers - one which lists only the non-member prices which will be visible to everyone, and the other which lists the member prices and is restricted to be visible to members only.

To do this, first make a copy of each product, then alter the price to the special members only pricing. Once this is done, you will need to assign each product to a category, either ‘Members’ or ’NonMembers'. Now that that is done you will have two copies of every item - one with a members price and another with a price for everyone else.

Next what you need to do is go into Green > Layouts > Modules > copy the product lister that you are using > edit the original lister’s filter field to be ‘category.eq.NonMembers’ > edit the lister copy’s filter field to be ‘category.eq.Members’ . Also, check the box that says ‘Blue can embed'. You will now have two listers, one of which only displays the member pricing, and the other which displays only the non-member pricing

The next step is to set up some membership restrictions so that nobody but members can actually see the lister. Go to Orange (blue in older freedom distributions) > Membership > Restrictions > New > Give it a name. Here I will use ‘Members’. Now go to Membership > Categories. You will have to edit every member category that you want to be able to access the special pricing, and tick the checkbox which allows users in that category to have access to the ‘Membership’ restriction.

Finally, you have to set up a page which displays the new lister (the old lister should still be wherever it was, just only displaying non-member items). Go to Blue > Web Pages > New > in the wysiwyg type in [[layout.products_lister_copy]] (or whatever you decided to name the member price lister) > now where it says ‘Membership Access’, choose ‘Members’.

You should be good to go at this point. Please note that when testing this, you should use an incognito window or a different browser to ensure that the back-end login doesn’t interfere with the access restrictions.

I realize that this is not the best solution when dealing with large amounts of products, but for sites with small product catalogs, this setup will take about ten to fifteen minutes. If this solution is unsuitable for your needs please let me know and I will attempt to find another solution to this problem.

Regarding your second issue of having different payment options for members and non-members: I will have to look into this a little further as nothing is jumping out as an obvious way to implement this. Apologies for not having an answer for you at this moment.