Chapter 2. Before You Begin

It is highly recommended that you read through this chapter before using the Billing Manager. This chapter explains in general, how the Billing Manager works. Several things are explained such as, the database structure, enrollment process, PayPal payments, plus more. From experience, it is much easier to use something when you have a good idea of how the "insides" work and operate.

It is very important that you read this chapter, as it will eliminate much of the confusion when you start using the Billing Manager.


2.1 Requirements

There are a few requirements which your web server must meet, in order for the Billing Manager to successfully work. The below list states all requirements:
  • 1 MySQL database (can not be used by another program)
  • Crypt::SSLeay Perl module
  • Crontab

If you do not currently have the Crypt::SSLeay Perl module installed on your web server, please contact your web host and ask them to install it. If you own a dedicated web server, Envex Developments can install the Perl module for you, for a fee of $40. Simply submit a support request through the Customer Area, and Envex Developments will install the Perl module ASAP.

Also, if you own a dedicated web server, and need an extra MySQL database setup on your server, Envex Developments can do this for you, for a fee of $40. Simply submit a support request through the Customer Area.


2.2 Important Things You Must Know

There are a few important concepts which you must know before using the Billing Manager. First, the Billing Manager does not hold any commission values or commission information. All commission information is still handled by the main Web Site Replicator, and your existing commission plans. The Billing Manager still adds the needed commission when needed, but you do not enter any commission values while setting up your products.

Second, the Billing Manager is not a Shopping Cart script of any kind, and you can NOT sell products with it. The Billing Manager has been specifically designed for membership billing, and nothing else.

Third, if you are using the Billing Manager, EVERY member who joins your program must join through the enrollment form of the Billing Manager. It does not matter whether or not they are a free member. They still must join through the Billing Manager. By using the Billing Manager, your standard newuser HTML form is rendered useless. Instead, all new members must join through the enrollment form of the Billing Manager.


2.3 Database Structure

The first, and probably most important thing you need to know is how the Billing Manager holds information in the database. The MySQL database contains several tables. Below explains, in general, what each table is used for.

Products table
The products table holds all information on your membership products, including the name, price and payment interval. This table also holds all information on the exact type of member to create, when a product is purchased.

Transaction table
Every time you receive a payment, a new transaction is placed in this table. This table contains all transaction specific information, such as the product purchased, amount of the transaction, payment method used, and so on.

Subscription table
This table holds all subscription information, or in other words, handles all information on recurring payments (eg. monthly payments). This table holds information such as when the next payment is due, the amount of the next payment, and the payment method to use.

Payment table
This table holds all payment specific information, such as the payment method used, credit card information, and so on. All information is this table is heavliy encrypted for greater security. Instead of the transaction and subscription tables holding all payment information, they simply hold an ID#, which refernces to the Payment table. For example, if you update information in the payment table, when you view a transaction or subscription which used that payment method, the new updated information will be displayed.

There are a few additional tables which the Billing Manager module uses, but nothing that you need to learn. One of the main things you need to understand is that the Billing Manager uses a series of ID numbers. For example, instead of placing the actual payment information in the transaction table, the Billing Manager only places an ID# in the transaction table, which references to a specific payment method in the Payment table.

For another example, instead of placing all product information in the transaction table, the Billing Manager only places an ID#, which references to a specific product. So, if you change the name of that product, the name will be automatically updated throughout the database, because when you view a transaction, the script takes the product ID# of that transaction, and retrieves the needed information from the Products table.


2.4 Enrollment Process

This section will very briefly explain the enrollment process of the Billing Manager. A more detailed explanation is given later on in this manual.

When a member first goes to join your program, they will be purchasing a membership, even if the membership costs $0. The new member will visit the enrollment form, fill out their member profile and if needed, payment information. When the member submits the enrollment form, the Billing Manager will first process the payment if required. If the payment is approved, the needed transaction and subscription are created and added to the database. Then, the member is created as normal. This is simply the exact same process as when a member joins through the main Web Site Replicator, except there is an extra step where payment is processed.