This is an old version of the tutorial. If you are using Drupal 7, see the new tutorial here: How to Build a Paid Membership Site with Drupal 7
Anyone who has used Drupal knows that it has a steep learning curve. Anyone who has stuck with it knows that Drupal can save you lots of time when you are building a web page. Drupal is an amazing CMS, which boasts high security, constant updates, 1000s of contributed modules, and an ever-increasing online community. If you are thinking about making a web site, I would highly suggest Drupal as the basis.
Many people want to make a website to earn money on the internet. And they have good cause to. There are tons of people striking it rich online every day. There are literally millions of potential customers out there who are looking for what you have to offer.
You need to have a few things if you want to make money on the internet. The first thing is something to sell. Many websites have Premium areas which are only accessible by paying members of their site. To become a Premium member, the user would have to pay a monthly membership fee. This is called a Subscription. Websites can offer many different things for their Premium members, ranging from services to media content to private forums. I am going to show you how to set up all of them.
I have added some new video tutorials below explaining how to set up a Membership Site with Drupal, Membership Suite, CCK, Content Access, and Views. Below the videos is the older text and screenshot tutorial. Enjoy!
Step 1 - Getting familiar with Views and CCK to set up a 'Free Content' area of your Membership Site (Optional)
Step 2 - Using the skills we learned to set up a Premium Content area of your Membership Site
Step 3 - Using Membership Suite and PayPal to sell access to your Premium Content (Members Only) area
Setting Things Up
Here is a list of modules you will need for this tutorial:
I'm assuming you have already installed Drupal. What you will need to do first is create a new role for your paying members. We'll call this role 'Premium Member'. The page for this is: 'admin/user/roles'.
Next, you will need to create a new Content-Type for your Premium Content (this will be content that only your paying members can view). We'll call it 'Premium Content'. You can add whatever fields you want to to this new Content Type using CCK. For example, CCK had hundreds of modules which provide fields for things like images, maps, videos, files, and just about anything else you can think of. The page for adding Content Types is 'admin/content/types'.
Once this content-type has been created, you will need to enable the Content Access module and rebuild node access permissions (it will walk you through this with a link). Once that is done, you will need to edit your Premium Content type and configure it so that only users with the 'Premium Member' role can view it. This will restrict access to that content to only your paying members.
How to Sell the Role
Now that the Premium Content and Premium Member stuff has been set up, activate the Membership Suite module.
The Membership Suite module allows you to sell roles to your members. This module is ideal because it integrates with Drupal's Registration System and lets the users choose which Subscription they wish to purchase as they sign up, then it redirects them to a PayPal page where they will pay for it. It also allows you to sell 'recurring' subscriptions which charge the members every x amount of days/weeks/months/years. It is all configurable by you. This solution is also great because unlike other modules, Membership Suite waits until after the payment is completed (securely notified through PayPal's IPN) to create the user account. This prevents ghost accounts being created when users start the process but then change their mind half-way. It is especially annoying when users want to sign up later, and find that their email is already taken by their ghost account. Trust me, this is a nightmare for the admin to deal with (I've been there!).
Go to 'admin/settings/ms_membership' and configure the module as seen in the screenshot. Turn on the 'Enforce Paid Membership at Registration?' option, and optionally you may show the links for upgrading membership in the User Account screen.
Also, it may be useful to turn on the 'Debug Mode' and use PayPal Sandbox for testing the system. Go to 'admin/settings/ms_paypal_api' to set these.
Creating a Membership Plan
The next thing you need to do is to Create a New Membership Plan. Go to 'admin/build/ms_membership' and click on 'Add Membership Plan'. This is where you will set up your membership plan. Let's call this plan 'Premium Membership'.
Enter your PayPal email address where you will receive the payments (make sure it is a Sandbox email if you are using PayPal Sandbox for testing), and set the price and the recurring settings (or set it to be a one time payment). You can also set lots of other settings, like customizing the emails that are sent when they purchase the membership, and when their subscription has been cancelled, as well as the cancel pages and return pages, which can display additional information for the users. Another fun thing to try is adding a custom Paypal checkout page, using your logo and colors to match your site. This can be done using the Page Style setting. The settings are all self-explanatory so poke around and see what can be done. The important setting is 'Show on New Registration Screen?'. Make sure it is checked.
Once everything is set up how you want it, Save the Membership Plan.
Now that the Membership Plan has been created, your users can now sign up and purchase the membership at the same time! You can see how it looks by going to my test site and registering a new account: http://members.leightonwhiting.com. You can see the admin side with this admin user account: 'test_admin / test' I hope you all enjoyed this tutorial and best of luck with your online endeavors!