March 5, 2007

Make invoices easy with Simple Invoices

Author: Joe 'Zonker' Brockmeier

Linux users can choose from several big, bulky financial packages to manage their finances, but what about consultants and freelancers who just need to whip out a few basic invoices by the end of the month? For that niche, Simple Invoices, a Web-based, GPLed invoicing system, is a winner for folks with a bit of tech savvy.

Simple Invoices requires Apache, MySQL, PHP with support for XSL (PHP5) or XSLT (PHP4), and GD2, and you need to give PHP a minimum of 24MB of memory if you want to have all of Simple Invoice's features available. PHP's default is 8MB, so this may put Simple Invoices out of the question for those on a shared hosting environment.

It took me about 45 minutes to set up Simple Invoices, and that included the time it took to skim the documentation and install the requirements that were not already available on my Ubuntu Dapper server. Overall, the Simple Invoices documentation is well done, but the installation instructions give some very bad advice.

Specifically, the user is repeatedly instructed to set permissions on directories to world-writable, rather than just setting the directories to be writable by the Apache user. Having any world-writable directories under the Web root is an insanely bad idea, and opens the door to all kinds of exploits. If you're running Simple Invoices on a local machine that's not directly connected to the Internet, this shouldn't be an issue, but if you're going to run the software on a machine that's publicly accessible, please don't set any directories to world-writable.

Using Simple Invoices

After setup, you can start with the Simple Invoices main page, which includes a couple of shortcut menus to take you to invoice management, customer management, product management, and other features you'll use most often. The interface also includes a menu bar at the top that you can use to navigate through the various parts of the application.

It took me no more than 10 minutes to zip through the Web-based interface and start generating invoices. Simple Invoices is easy to use, even for those of us who don't have a beancounter bone in our bodies.

Simple Invoice main page - click to view

To generate an invoice, you need to set up a handful of things. First, of course, you need to set up your billing information, sales tax rates (if any), and the products that you will be including on invoices. The products you set up with prices will be available via drop-down fields when you generate new invoices.

Then you set up customers, configure the defaults for invoices -- such as the tax rate that should be used by default, and a default customer if you tend to bill one client more than others -- and it's time to generate invoices.

You have the choice of three types of invoice: an itemized invoice that allows you to specify the quantity and type of items you're billing for, a "total" invoice that only requires a description of services and the gross amount, and a consulting invoice, which allows for a quantity and type of "product" and notes for each product. That is, if you're a consultant, you can set up products for your hourly rate for various services, and then generate a consulting invoice with a description of what you did during the hours billed.

Once you've generated an invoice, you can export it in several formats, including PDF, Microsoft Word, Microsoft Excel, or HTML. While Simple Invoices defaults to Word and Excel formats, you can change its configuration to generate Open Document Format (ODF) instead. You have to edit the config.php, rather than making the change in the Web-based interface, but it's as simple as uncommenting the lines for ODF and commenting the MS-format lines.

Simple Invoices also includes some simple reporting, including reports for total sales, sales by customer, top debtors, and taxes. The reports are very basic though, and Simple Invoices doesn't provide a way to generate custom reports. So, for example, if you want to know how many widgets you billed for between March 2006 and March 2007, you'll have to get at the data in another way.

Simple Invoice's invoice display - click to view

For the most part, Simple Invoices ran just great out of the box. I ran into a small problem trying to generate PDF files, but the solution was relatively simple. I had originally set up Simple Invoices under /invoice/, but the script was expecting the URL to have the hostname and /simpleinvoices/ instead.

It looks like Simple Invoices has some user management code in the works, but it's not done yet. There's a "log in" option in the top menu, but I see no user management options, and the user tables aren't loaded by default when you install Simple Invoices. For my purposes, this isn't crucial, since I'll be running it behind a firewall and will be the only person accessing the application.

Simple Invoices has great contextual help. Many of the pages offer one or more links to a tip or likely question. For instance, on the Sales in Total report page, there's a link at the bottom of the page in case you receive an error because your version of PHP doesn't have the right extensions to run the report. I didn't get the error, but it's a good thing to include for users who do. (If it's a really common error, the developers might want to come up with a workaround in lieu of the help.) On other pages, there's a question mark icon next to fields where the person doing data entry might be unsure what should be placed in the field.

When you click on a contextual help item, Simple Invoices displays the help item as an overlay on the page, rather than spawning a new window or going to a new page. This makes using Simple Invoices feel more like using a desktop application than a Web application.

A simple solution

As the name implies, Simple Invoices is a simple application. It's well-suited for one-person businesses and small businesses that do not need the overhead of a more involved application.

The only real drawback to Simple Invoices is that it is a Web-based application and requires a running LAMP stack to use, and a little bit of experience to set up. It is, however, an ideal application for consultants in the IT field or tech-savvy businessfolk who know their way around Apache and who need a quick and dirty solution for generating invoices and tracking payments.

Click Here!