BambooInvoice web-based invoicing application

Smooth Solution

Article from Issue 97/2008

If you want your business to run smoothly, deploying a dependable invoicing solution should be among your top priorities. BambooInvoice offers a user-friendly, web-based invoicing solution.

As a freelancer or a small business owner, you might be tempted to use a Calc spreadsheet or a Writer template to generate and manage invoices, but a dedicated invoicing application can save you a lot of time and frustration in the long run. If installing, configuring, and learning to use an invoicing application sounds like a daunting proposition to you, then BambooInvoice [1] is what you need (Figure 1).

BambooInvoice is a PHP/MySQL-based application, so you need a machine running the LAMP (Linux, Apache, MySQL, PHP) stack. If you don't have the time or necessary skills to set up the stack yourself, your best option is to use the XAMPP package [2], which comes with all the required components preconfigured and ready to run.

Getting Started

Installing BambooInvoice with XAMPP running on your machine is not difficult. To start, create the bambooinvoice database. To do this, you can use the phpMyAdmin tool bundled with XAMPP. Then download the latest version of BambooInvoice, unpack the downloaded archive, and move the resulting bambooinvoice folder to the htdocs directory in the XAMPP installation.

Next, make the invoices_temp and /img/logo directories writable by changing their permissions to 777. Then navigate to the /bambooinvoice/bamboo_system_files/application/config/ directory, open the database.php file in a text editor, and modify the default MySQL connection settings as follows:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";

While you are at it, turn database debugging off by changing the TRUE value in the $db['default']['db_debug'] = TRUE; line to FALSE.

The installation notes that come with BambooInvoice also recommend changing the default encryption key to make your system more secure. To do this, go to the /bamboo_system_files/application/config directory and open the config.php file in a text editor. Locate the $config['encryption_key'] line and change its default value to a random string. Here, you can also change BambooInvoice's default language by replacing the default "english" value in the $config['language'] = "english"; line with another supported language (e.g., "french", "german", "dutch", "romanian", "spanish", "portuguese", "bulgarian", "swedish", or "italian").

If you want to be able to send invoices via email directly from within BambooInvoice, you must specify the SMTP server settings. To do so, navigate to the /bambooinvoice/bamboo_system_files/application/config directory and open the email.php file in a text editor. Uncomment the following block and specify the SMTP server, user name, and password:

$config['protocol'] = 'smtp';
$config['smtp_host'] = '';
$config['smtp_user'] = 'username';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '25';

To finish the installation, delete the /bambooinvoice/bamboo_system_files/application/controllers/install.php file. Point your browser to http://localhost/bambooinvoice and log in to BambooInvoice using the email address and password specified during installation. This brings you to BambooInvoice's main window (referred to as Root System) consisting of five sections: Invoices, Clients, Reports, Settings, and Utilities.


First you'll need to specify your account and invoice settings, which is done in the Settings section (see Figure 2). All the fields in the Account Settings subsection are self-explanatory, so you shouldn't have any trouble completing them. The Invoice Settings subsection allows you to specify different invoicing options, such as the default invoice note, currency, payment period, and tax information. Finally, the Advanced Settings subsection lets you add a custom logo that will appear on invoices, disable the default branding, and enable saving of invoices.

The latter option saves PDF copies on the server, but unless you use a .htaccess file to protect your server, you should leave this option disabled.

Next you'll need to populate BambooInvoice with clients, which is done in the Clients section (Figure 3). After selecting the Create New Client button, fill out the available fields and press Save client. Be sure to pay particular attention to the Tax Status section; here, you can mark the client as taxable or non-taxable. Also, you should add at least one contact to the created client. In the Clients section, click on the client to expand the view, click on the Add Contact link, then add a contact. In the client view, you can also add notes to a particular client by pressing the Notes button. This can come in handy if you need to enter some information about the client, like "Always pays invoices on time."

Creating Invoices

To create a new invoice, press the New Invoice button in the toolbar on the left-hand side, select an existing client from the Select client drop-down list, or create a new client on-the-fly by entering a name in the appropriate field (Figure 4). To create the invoice and open it for editing, press the Create Invoice button.

If you want to change the default invoice number or invoicing date, you can do so by modifying the appropriate options. Then fill out the first invoice item and, if necessary, create additional items by pressing the New Item button. To save the invoice, press the Save Invoice button. This displays the created invoice and, using the available buttons in the toolbar to the left, you can perform several actions (Figure 5). Using the Email Invoice button, you can send the invoice via email to a specified contact, whereas the Generate PDF button generates a PDF version of the invoice that you can then either print, send via email as an attachment, or archive for future reference.

To send the invoice directly to your printer, use the Print Invoice button. If you want to modify the currently viewed invoice, you can use the Edit Invoice button or delete the invoice by pressing the Delete Invoice button. The Private Note button allows you to attach a note to the invoice, which then appears in the Invoice History & Private Notes section below the invoice itself.

After the client has paid the invoice, you must close it with the use of the Enter Payment button. If you enter the full amount, BambooInvoice automatically marks the invoice as closed. From that point, you can neither edit nor send the invoice.

BambooInvoice also allows you to enter partial payments, which can come in handy when the client pays the invoices in several installments. Every time you add a payment, it appears in the Invoice History & Private Notes section, so you can keep track of how much of the invoiced amount has been paid.

The Invoice Summary button opens a window that provides an overview of the invoices in the system. By default, BambooInvoice displays a list of open invoices (i.e., sent but unpaid invoices that are not overdue). To view the overdue invoices, select the Overdue option. In a similar manner, you can view the closed invoices or all invoices by selecting the appropriate option. To display a list of invoices for a particular client, choose it from the Select client drop-down list.

Of course, BambooInvoice comes with reporting features, which you can access through the Reports section (Figure 6). Although BambooInvoice's reporting capabilities are not particularly sophisticated, they provide enough information to help you track your invoices and income. The available buttons let you generate quarterly reports quickly, and the Yearly Income graph provides a visual overview of your earnings. The main window of the Reports section also contains a list of open and overdue invoices, as well as the total number of invoices issued to the current date.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus