- Blogging for Benjamin Competition
- Why I'm Grateful to Work on the Web
- 24 Pull Requests
- Update Downloadable Product's Expiration Date in WooCommere
- Get Lost in the Flow and Work for More Than a Salary
- Why A Plugin's Popularity Matters
- Why You Should (Or Shouldn't) Use Premium Plugins
- WooCommerce Terms & Conditions
- Only Ship to Continental United States with WooCommerce
- Just Talk
- Why I Love Jetpack
- Making Jetpack Better
- Remove Billing Address for Free Virtual Orders in WooCommerce
- Notify Admin of Customer Address Change in WooCommerce
- Open Your Self Up To New Possibilities
- 2013 Resolutions Review
- Create a Community
- Tips for Starting a Community
- The Intent of Goals
- Create The Ultimate Invoicing System Using WooCommerce
- Change From Address in Ninja Forms
- Work With People Who Inspire You
- Contact Form 7 & MailPoet Integration
- Giving Back to The Community
- Adding Fuctionality to Lean Plugins
- Choose Stripe For a Payment Gateway
- A Dip Into Entrepreneurship
- Reward Yourself
- Blogging for Benjamin Plugin
- Blogging for Benjamin Wrap Up
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.
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”.
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.
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! 🙂