I'm constantly amazed at the sheer number of ways that WooCommerce can be used. As soon as you think you have all of the possible use cases our customers come up with a new idea that they suggest and we get to implement! How fun! But unfortunately this isn't all that well documented on the WooThemes.com website. It would be really great if there was a way we could share all of these really cool solutions so that our customers don't have to figure it all out on their own. With that I wanted to present one of my favorite WooCommerce solutions which is an invoicing system.
A Bare Bones Invoicing System
Let's start with the basics. If you want an invoicing system what is the most important thing you have to do with your store? You have to disable the payment gateway. If you have a standard payment gateway like Stripe or PayPal you force your client to pay right then and there with a credit card / PayPal account. You most likely don't want to force your clients to pay in full right that second. You also probably prefer a check over a credit card due to the expensive credit card fees.
Invoicing Payment Gateway
People have asked us to create an invoicing gateway but you don't need to do that! You can actually just rename the built in Cheque gateway to “Invoice” and the customer message to “We will invoice you shortly.” Now your orders will be put on hold automatically.
Shipping
If you're invoicing clients you may or may not be sending them actual deliverables. If you're not doing any shipping at all just disable it entirely in the WooCommerce -> Shipping settings. This way you don't have to mark every product as “Virtual”.
Contracts
Unlike retail if you're sending clients invoices there's usually some sort of contract involved. Make sure you set a terms page in your WooCommerce settings so that the client has to agree to the terms before pressing the submit button.
A Well Built Invoicing System
The cool part is that up till now all of this is free. You don't have to spend a dime on anything. If you however you want to start automating things and saving your self a ton bunch of time you can use Freshbooks with the WooCommerce Freshbooks extension. Quite simply it will automatically create and send invoices to your clients.
And if you don't already have information for this client it will be automatically created and stored in Freshbooks. I love automation like this. Once we have Freshbooks installed I like to change the Cheque gateway's customer message to: “We will invoice you via Freshbooks.”
The Ultimate Invoicing System
We already have a pretty darn awesome invoicing system which automatically creates orders, puts them on hold, and sends an invoice to the client but there's a few more things we can do to make it better yet!
Get Client Information Before Order
You may have a different way of getting a clients information ahead of time like a contact form on your site. Well you can actually capture that information when they fill out a contact form and put it in Freshbooks ahead of time. You can use Ninja Forms to create a contact form and use the Freshbooks extension to capture that information.
You could also use the Front End Editor extension to automatically add the users to your site. Why would you want to do this? Well let's say that you want to limit your orders to existing clients…
Limit Orders to Existing Clients
It might make sense to limit these invoices to people you actually know and have dealt with. You don't just want anyone to place an order without meeting with them first. You may want to use something like the WooCommerce Catalog Visibility Options extension to prevent regular users from checking out / seeing prices.
All Done!
Well if you did all that you now have the ultimate invoicing system for WooCommerce!
- You have a really smooth checkout experience for your clients
- You are automatically creating invoices and saving you time
- You are automatically saving client data in Freshbooks ahead of time
- You are optionally restricting the store to existing clients
Now what are you going to do with all of that extra time!? I guess you'll have to go out and get more clients! 🙂