After more than two years
of planning and development, AgileBill Beta has been officially released for
public review and beta testing, as of August 31-2004.
Overview
Containing well over 1,500
files and roughly 200,000 lines of code, AgileBill represents over two years
of planning and development. Not containing any code from previous Dreamcost
programs, AgileBill complete is a rewrite from the ground up, with all the features
previously offered in Dreamcost programs plus much more.
The modular structure of
AgileBill is intended to make it easy at all steps of implementation - whether
it be the actual day to day administration, template customization by web designers,
or code level modifications by programmers.
In short, AgileBill has
been designed to be the ultimate "Agile" billing solution, as it can
expand to fit the needs of anyone, from the small company all the way to the
enterprise level.
Requirements
The base requirements for
AgileBill are a web server/hosting account with the following: PHP 4.05 or greater MySQL Zend Encoder [or] Turck
MMCache for PHP
In order to utilize the checkout plugins using real-time gateways (such as authorize.net)
you will need the SSL Curl module installed.
A test PHP file is available
here that you can upload to your web server to test compatibility. If you are
unsure of the results, you can email us the URL to the test.php file is located
and we will review it and advise you.
All things considered, AgileBill
performs quite well on slower servers (1GHz range). However, you will be able
to notice a nice speed boost on a higher end server, in the 2GHz range w/512MB
RAM or greater.
Documentation is presently
limited, but we will be making it available at the link below as it is created: http://dreamcost.com/agilebill/
New
Features
Where to begin?
Modular Coding and
Authentication Structure
For starters, all the coding
in AgileBill is module based, and the permission system is group based. The
group relation to accounts is many to one, so one account can be authorized
for as many groups as you like.
Each group has a one to
many relation to the various actions that can be performed, called "methods."
For example, the "invoice"
module has various methods, such as "add", "edit", "suspend",
"reconcile", etc. If I want to log into AgileBill and run the "reconcile"
method in order to register a payment for an invoice, my account must have permission
for a group that is authorized for the "reconcile" method in the "invoice"
module.
This enables you to create
unlimited groups of user access levels for your various departments and employees.
One group may have permission to view and add invoices, while another group
may have permission only to view invoices. Of course this is all defined by
the administrator.
The modular layout of the
code enables you to start out with our base system, and as your business grows
and your needs expand, you can add new modules on the fly, such as various modules
for protecting parts of your website content, offering hosting and domain services,
managing affiliates, integrate a ticket system, advanced reporting, etc.
This design also encourages
3rd party programmers to develop and sell their own modules, which strengthens
the flexibility of AgileBill as more and more programmers and software vendors
offer modules and integrate their product offering with ours.
Multi-Lingual
AgileBill is fully multi-lingual.
The output for the links and default html templates are included in language
packs that can easily be translated and will be available as a free add-on as
they become available.
AgileBill sets itself apart
from the competition by allowing you to also translate your product offering.
In other billing solutions, the main components of the website would be rendered
to the user's selected language, but when they select a product, category, or
some other database item that specifically created by your company, it would
appear only in your default language. Our philosophy regarding multilingual
websites is that there is little point to translate just the main components,
so we created AgileBill to allow you to translate everything - your product
descriptions, categories and e-mail templates.
Multi-Currency
AgileBill is fully multi-currency.
It supports every currency know to man - you can even define your own currency
if you desire.
You can define the default
currency which serves as the base for your products. You can define which currencies
you wish to accept, and define the conversion ratio between each currency. When
a potential client selects his local currency prior to checkout, the price will
then be localized, as will the invoice once he places the order.
Themable
AgileBill is fully themable.
Smarty is used, thus enabling the programming and design elements to be separated.
Unlike some themable programs,
AgileBill is has a default theme with all the templates and only the templates
you wish to change need to be replicated in a new theme being created. So creating
a new theme can be as simple as editing the main template with the header and
footer, and modifying the style sheet (CSS).
For those who wish to protect
content on their site, one of the modules that will be offered allows you to
protect portions of your site only to particular groups simply by including
the web content to be protected within a set of smarty tags. And of course you
sell access to any of your groups.
Searching
AgileBill has some of the
most advanced search features available. Nearly every field in every module
can be used to narrow your searches down to find the exact record you are looking
for. Also, the main modules such as accounts, invoices, services, tickets, sessions,
etc., all feature a graph overview that you can view performance by day, week,
month, or year.
AgileBill's search capabilities
dramatically simplify drilling down and editing records. For example, if your
search result returns multiple records that you wish to edit and/or view, you
can simply select as many of them as you wish, and you will then be able to
scroll through them and perform the desired action. This saves going back and
forth between the search results and the view/edit record pages.
In the same fashion, you
can delete multiple records at once from the search result page, rather than
a process that requires individual deletion.
The idea behind AgileBill's
search interface is ultimately ease of use!
Dashboard
The AgileBill dashboard
is displayed when the administrator first logs in and contains some highly detailed
and customizable performance reports and comparisons, either weekly, monthly,
or yearly periods. Some of the data provided are sales, sales forecast, quota
to meet forecast, AR credits and balance, new users, new tickets, and affiliate
sales. Also displayed is a graph comparing this period's sales vs. the last
period, the top 5 products by sales, top 5 accounts by sales, and top 5 affiliates
by sales.
These indispensable, real-time
reports will keep you current on the heartbeat of your business.
Exporting Data
AgileBill is export friendly.
The main modules in AgileBill, such as accounts, invoices, services, and newsletters,
all feature an option to export the results of a search you have performed.
You can quickly export all the results of a search to the Excel, CSV, TAB Delimited,
or XML format.
In the invoice module you
can export invoices to a PDF file. This is especially useful if you have the
need to mail out invoices. You can simply search for all "unprinted"
invoices, and export them to a highly attractive PDF for printing. Speaking
of PDF invoices, the user can also view the PDF of their invoice right in their
account area online.
Agile Links
AgileBill includes in the
administrator menu, a quick search feature that allows for rapid searches within
account, invoice, and service records.
For example, using simple
keywords such as "today", "due", and "inactive",
you can quickly pull up all due invoices, all invoices, accounts, or services
created today, this week, or this month. You can also search accounts by username,
e-mail, first, last, or company name, and account status.
The Agile Links area also
provides rapid access to the Tasks module, which includes task such as invoice
generation and auto-billing. These tasks can also be automated using server
level automation tools such as crontab on Linux and various freeware task managers
on Windows.
Rapid Account Drill
Down
AgileBill provides a rapid
drill down tool for locating accounts when adding records such as invoices,
account discounts, etc., that dramatically reduces the time required to locate
an account, as well as server load. You can simply type part of the user's first
name into the field, then hit the tab key. AgileBill will immediately run a
search in the background and complete the field, or, if multiple results for
that name is found, it will pop up a selector with the available matches and
you can select one.
No more scrolling through
large drop-down menus with hundreds or thousands of records, wasting both your
time and valuable server resources.
E-mail Templates
AgileBill features multilingual
e-mail templates. This means that even your outgoing e-mails will be customized
to the customer's preferred language.
E-mail templates can be
assigned custom SQL queries to run when they are called, and the results from
the SQL queries will be available as variables in the e-mail template.
E-mail templates can be
disabled, set to high or normal importance, and for each e-mail template, you
can specify the E-mail setup to use. More on that next.
E-mail Setup
AgileBill supports unlimited
e-mail setups. Each e-mail setup can have it's own from name and e-mail address,
SMTP account, and you can define a CC and BCC list for each outgoing mail that
is sent so the e-mails are distributed however you see fit.
Custom Fields
AgileBill supports unlimited
custom fields for new customer registrations and new tickets created. These
custom fields can be text fields, check boxes, menu lists, etc. Each field can
be required or optional, and you can define the validation to run on required
fields, such as min/max length, etc.
Tax Zones
AgileBill supports unlimited
tax zones, which can be assigned to a specific country and state/province. Taxes
are billed on both new and recurring charges, and you can define on a per-product
basis whether it is taxable or not.
Upgrading and Installing
Modules
AgileBill makes upgrading
a breeze - you will simply drop the new or modified modules over the existing
ones, and if needed, run the upgrade option to check for any database field
changes or new methods. Since the code and design elements are separated, upgrades
should never require any modification of your existing theme elements.
AgileBill makes installing
new modules just as simple - drop the module into your AgileBill directory,
and enter then name of the new module to install in the installation form.
Error Logs
AgileBill logs all database,
e-mail, and some file errors for admin review. This makes locating problems
much easier, and allows you to leave the PHP error level set to a level that
if something breaks, your user is not startled by a PHP error, possibly exposing
server paths or other critical information.
Checkout Plugins
AgileBill supports a list
of gateways and 3rd party payment processors to long to list here, and due to
the simplistic nature of adding new checkout plugins, more will arrive as the
need presents itself.
Each checkout plug-in can
be configured with a set of options that enables it for certain types of purchases,
and disables it for others. Criteria includes: minimum and maximum order amount,
type of purchase (one-time, recurring, or trial).
You can also configure whether
manual approval is required prior to approval of the purchase and associated
services, or if payment automatically triggers approval. Criteria includes:
amount of purchase, currency of purchase, country of purchase, group of purchaser.
Since unlimited checkout
methods can be configured, you can also use a set of criteria similar to the
above to determine if the checkout method is default, or shown lower on the
list of available checkout options when the customer makes a purchase.
Blocked IPs
AgileBill allows you to
maintain a list of blocked IPs that will not be able to register new accounts
or make purchases, to help reduce fraud. More fraud prevention tools are in
the works as well.
Blocked Domains
AgileBill allows you to
maintain a list of blocked domains that will not be able to register new accounts
or make purchases, to help reduce fraud. More fraud prevention tools are in
the works as well.
Backup
AgileBill features a complete
backup solution that allows you to store and/or export XML backups of the entire
database, or just specific modules. You can specify an auto-delete date for
your backups to keep them rotating.
Staff
AgileBill features the ability
to create staff members and staff departments. This serves as a way to present
a "Contact Us" form to your customer with everything categorized by
department. The customer can specify a staff member directly, or can specify
a department, and AgileBill will route it to the correct staff member based
on the department configuration.
Newsletters
AgileBill features a full-fledged
newsletter management module. It allows you to define unlimited newsletters,
and set the group access required for newsletter access by your customers. The
newsletter subscribers are fully searchable, exportable, and you can send an
e-mail to multiple newsletters at once and duplicates will not be sent to customers
who are on more than one of the newsletters. Customers can specify their e-mail
preference (html/text) when subscribing, and when a newsletter is sent, you
can specify both text and html and AgileBill will send them the correct version
based on their preference.
Accounts
AgileBill supports unlimited
accounts, and features robust account management and searching support. As previously
mentioned, you can define unlimited custom fields to collect from your users,
see section entitled "Custom Fields."
For each account, you can
quickly drill down to and view, edit, or add invoices, services, sessions, login
logs, billing details, and group access settings.
You can quickly remail lost
passwords, and resend account activation emails if this option is enabled.
When searching for accounts,
you can specify a broad criteria to narrow down the search. Once the search
is complete, you send an e-mail to all the accounts in just a few clicks. You
can also e-mail individual accounts from the search results and account view/edit
pages just as easily.
All account data can rapidly
be exported to Excel, CSV, TAB Delimited, or XML right from the search results
page.
The administrator can also
"become" the user in order to view their account as they see it and
assist them with technical issues.
Invoices
AgileBill features a very
simplistic interface to what is the most complex aspect of the program - invoicing.
The administrator can add,
refund, reconcile, void, suspend, and approve invoices in just a few clicks.
All invoice data can rapidly
be exported to Excel, CSV, TAB Delimited, or XML right from the search results
page. Also, there is support for exporting one or more printable invoices in
the PDF format.
A task exists for the creation
and auto billing of recurring charges, both can be run with a simple click or
automated with server level task management software. All invoice alerts are
customizable and automatically sent to the customer on these events as well.
Products
AgileBill features an extremely
versatile range of product types: One-time, Recurring, and Trials.
One-time products are charged
just once on purchase.
Recurring products are charged
on purchase, along with any setup costs, and are also billed on the schedule
selected by the user from the defined list of available schedules: weekly, monthly,
quarterly, semi-annually, annual, and bi-yearly. Recurring products can be configured
to allow/disallow user cancellations and billing schedule changes (upgrades/downgrades).
Trial products allow a special
introductory rate for a recurring product, after which the normal rates apply.
Each product can be assigned
a tiered pricing structure based on the user's group access. So group A gets
the product for $10/month + $5/setup fee, while group B gets the same product
for $5/month + free setup.
Each product can be assigned
unlimited attributes to collect information from the user and/or charge for
optional services. The pricing for attributes can also be tiered in the same
fashion as products can.
Products can have associations
that do any of the following:
1. Require that a user have purchased a specific product prior to purchasing
the current product.
2. Grant free access to another product with the purchase of this product.
3. Grant access to a group or groups for a specified period of time with the
purchase of this product. (optional feature, included with the DB mapping or
Htaccess Groups modules sold separately.)
Products can be defined
to create a discount for the user when purchased.
If the optional Hosting
module is purchased, products can also be defined to interface with the provisioning
and registrar modules to create hosting and domain services. See more details
under "Hosting".
After using DreamAccount for only a few days, we were getting a higher volume of clients signing up for our services, and site memberships. Our site now offers instant payment, and member services which for practical reasons, we were unable to offer before.
Chris Hardy -
Omni-Technology