Patrick's Programming Blog

Create The Ultimate Invoicing System Using WooCommerce

invoice
  1. Blogging for Benjamin Competition
  2. Why I'm Grateful to Work on the Web
  3. 24 Pull Requests
  4. Update Downloadable Product's Expiration Date in WooCommere
  5. Get Lost in the Flow and Work for More Than a Salary
  6. Why A Plugin's Popularity Matters
  7. Why You Should (Or Shouldn't) Use Premium Plugins
  8. WooCommerce Terms & Conditions
  9. Only Ship to Continental United States with WooCommerce
  10. Just Talk
  11. Why I Love Jetpack
  12. Making Jetpack Better
  13. Remove Billing Address for Free Virtual Orders in WooCommerce
  14. Notify Admin of Customer Address Change in WooCommerce
  15. Open Your Self Up To New Possibilities
  16. 2013 Resolutions Review
  17. Create a Community
  18. Tips for Starting a Community
  19. The Intent of Goals
  20. Create The Ultimate Invoicing System Using WooCommerce
  21. Change From Address in Ninja Forms
  22. Work With People Who Inspire You
  23. Contact Form 7 & MailPoet Integration
  24. Monotasking
  25. Giving Back to The Community
  26. Adding Fuctionality to Lean Plugins
  27. Choose Stripe For a Payment Gateway
  28. A Dip Into Entrepreneurship
  29. Reward Yourself
  30. Blogging for Benjamin Plugin
  31. 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.

Rename the Cheque Gateway to Invoice

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.”

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!

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! 🙂

Photo Credit: miguelb via Compfight cc

Exit mobile version