How It Works
What aMember Pro is all about
aMember Pro is a membership/subscription management PHP script. It is installed on your website to provide the following functionality:
- User registration
- Processes customer payments and keeps track of them
- Protects website folders, pages, downloads, and other kinds of content making it available for subscribed users only
- Integration of the aMember users database with third-party scripts
- Affiliate program management
- Simple Help Desk functionality to provide easy communication between customers and site administrators
- Manages opt-in e-mail lists and newsletters and can send mass e-mails to customers
To order a subscription or product within aMember Pro, the user must fill-in a signup form generated by aMember or log into an existing account. Once the customer presses the signup button, aMember Pro creates the following records in its database:
- pending user record
- pending invoice record
Note: At this point the new user account is "pending" and not yet activated. Until the payment is competed, the user will not be able to view or download protected content. He can, however, login to the member area to make a new payment if the first payment attempt failed
Once these records are created, aMember redirects the customer to the payment system to make the actual payment and passes the payment amount and subscription settings to it. The payment gateway (eg. PayPal, 2Checkout or Authorize.Net, Plimus) checks the information entered and completes the transaction.
- When the transaction is completed successfully, the system will display a confirmation of payment. At this point the system sends confirmation of the payment to the aMember script and the user's status is changed from "Pending" to "Active". The user will receive a welcome email with details about his/her username and possibly other information (the e-mail template can be customized by site administrator).
- If the transaction fails, the failed payment page will be displayed, and most payment systems will redirect the customer to the aMember "cancelled" payment page, where the user can choose another method of payment and attempt to subscribe again.
Depending on the product settings configured by the site administrator, user access may expire. For example, the site administrator may choose to sell 30-day subscriptions for $10.99. Then, if the subscription is not recurring, the customer record will expire. The user will be marked as Expired, and protected content access will be revoked. The user record is not deleted after expiration, so the customer may return to the website, log into his/her aMember account, and renew their subscription - by placing a new order.
Many payment processors offer the ability to set up "recurring" billing. This way the customer is billed automatically for the amount configured for each time period (e.g. $20 every month). aMember Pro was designed to handle recurring billing, so these payments will be correctly processed. Most payment processors report to aMember when a successful recurring payment has been made and aMember extends the user's subscription accordingly. In this case the entire membership management process becomes automated.
Recurring Billing Cancellations
Sometimes a user may want to cancel or unsubscribe from a recurring subscription. Cancellation can be done by via a link in the aMember members area, or at the payment processor's website (for example PayPal provides the ability to cancel recurring subscriptions within the PayPal user's account). In this case, aMember will be notified about the cancellation and the customer's invoice will be marked as "Cancelled". It does not mean, however, that the user looses access immediately. The user will still have access to protected content until the paid period expires.
Refunds and Chargebacks
In the event refunds or chargebacks are reported to aMember, aMember will automatically keep records of this and revoke customer access to protected content.
aMember Pro has ability to integrate with third-party applications. If you have such an integration plugin installed and configured, aMember will maintain users database (table) in third-party script, so your aMember subscribers can be automatically added to your Bulletin Board, CMS or HelpDesk users database. When their subscription expires, users will be automatically disabled or (if configured) removed from third-party database.
Please note — this integration is one-way: users are copied from from aMember to third-party script, and never vice-versa (from third-party script to aMember). Second way would require changes to your third-party script, that would be hard to maintain and would make troubles to upgrade your third-party script.
Also, if user has the same username and password in aMember and a third-party script, it is often possible to implement single-login — when user is logged-in into aMember, it becomes logged-in into third-party script and vice-versa.
How does it work
When user signs up in aMember, aMember checks for existing user in third-party users database. If user with the same username is exists in third-party database, signup is not allowed. (The following works if "auto-create" option is enabled in plugin settings)Customer can instead login into aMember with his username and password from a third-party script and aMember account will be created for him.
If there is no such account in third-party script exists, user will be allowed to go through signup in aMember. As user completes payment, aMember immediately upgrades his record in third-party database (if exists) or creates new customer with permissions configured in "Integrations" settings.
Once user subscription expires or user is removed from aMember database, aMember sets up “default” usergroup in third-party database for this user, or removes his record completely (if configured and supported by plugin).
2 Ways to Conifigure Integration Plugins
- Disable users registration completely (using third-party script admin controls) and set links to aMember signup page for new users;
- Keep users registration enabled in the third-party script, but restrict default usergroup (using third-party script admin controls). Create new usergroup (for paid users) and configure aMember to assign that "paid" usergroup to paid customers.