The WooCommerce Connect extension (v1.1+) comes with the option to automatically generate invoices from your WooCommerce orders.
It generates an invoice based on the orders line items and attaches the invoice to the customer. To enable this you need to check the setting box below
Once you’ve done this, as WooCommerce Connect adds new orders, it’ll generate an invoice (and mark it as paid). It also attaches this to the customer so you can have invoices related to the transactions.
This will then show up in the Client Portal for your customer. They can log in and view their invoices for any of their orders with you and save you needing to generate them manually via the WooCommerce “send invoice”.
Say goodbye emails asking you for invoices, generate a Client Portal access once, and all the invoices for that customer will sit under that account.
WooCommerce and Jetpack CRM Invoicing
It may be tempting to think you can use Jetpack CRM Invoices alongside WooCommerce Connect to be able to manage your WooCommerce Store. This is incorrect and not what WooCommerce Connect is intended to offer.
If you have the following process in mind, read on
- Add a contact to Jetpack CRM
- Create an Invoice in Jetpack CRM
- Add your WooCommerce Products to the invoice
- Send the invoice to your contact to pay (using Invoicing Pro)
While in theory this is something you can do it adds extra overhead and not the way to do it.
Why is this wrong?
WooCommerce Connect won’t update your Product Inventory if you do this. You’ll also need to manually create and fulfil the order in WooCommerce.
So why use Jetpack CRM and WooCommerce for Invoices?
What the feature is useful for is being able to give your customer their invoice history from the client portal, as well as save you the headache of manually generating invoices if they ask for them. The benefits of the below approach are
- Your own invoice style vs the “WooCommerce Invoice”
- All Invoices accessible from the Client Portal
- Downloadable PDF versions (using Client Portal Pro)
The WooCommerce “Invoice”
A little known fact is that you can generate invoices for WooCommerce Orders using the “Order Actions” but they don’t look great and secondly, also there’s no central location for all invoices.
The above image is from the email sent when you choose the Order Action, you use this for sending customers links to pay for goods.
So while this is a solution, it lacks the following
- Everything is via email. You’ll need to manually resend if a customer asks you
- The invoice email is not very customisable if you want to add extra business info such as logo
- You’ll need to hunt down any orders you have for a contact and do this for each one
- You can’t easily provide a PDF version to your customer
Enter the solution, using Jetpack CRM, WooCommerce Connect and Jetpack CRM’s Invoices.
Setting up WooCommerce + Jetpack CRM Invoices
The rest of this article looks at how you’d setup your process utilising WooCommerce, Jetpack CRM and it’s Invoices. It will give your customers better looking invoices that they can access at any time from their Client Portal (as well as download a PDF version).
Here’s how you go about doing it, while making sure WooCommerce is handling the payment and fulfilment of the order itself.
Step 1: Create a WooCommerce Pending Payment Order
Your WooCommerce store should be where your orders happen. If running a store, then use the “Pending Payment” order feature if you’re manually creating orders for customers (vs allowing them to populate a cart from your store). The added benefits of this are
- Link in with product stock inventories
- Add your products to the invoices
- Use any payment provider you have configured with WooCommerce checkout
You’ll see in the above screenshot that there is a link for “Customer payment page” this is where the customer would pay for their order (and NOT through the Jetpack CRM invoice system – as tempting as it may be to do so)
What happens in Jetpack CRM at this point?
At this point, in Jetpack CRM a new contact is created (or updated, it already exists) and the above transaction is added as a pending payment status. Additionally (optionally) an unpaid invoice is created.
Step 2: Direct the customer to pay for their order
The customer then follows the link to pay for their order. This is a page provided via WooCommerce and will allow them to pay using any payment method you have supported via your WooCommerce install
You’ll see this fits your theme, and allows the customer to pay for the product. It also does the following:-
- Triggers anything you have setup in WooCommerce
- generates download links in my example but also could
- update stock levels
What happens in Jetpack CRM at this point?
Like earlier, once the customer has paid, this then updates the transaction to be completed this also sets the invoice to be marked as Paid.
It also makes sure that the customer record is fully up to date and all invoices would be viewable from the Client Portal
This gives a central place where your customer can login and see all their invoices (and download a PDF version).
The PDF version is how you set it up on Jetpack CRM and they can also view their invoice online. It saves you time in having to login to your WooCommerce store and manually email them an invoice.
The added benefits of this approach are
- You can show additional information easily on your invoices
- Business information, logo etc.
- It allows your customer anytime access to their historic invoices
So, in summary, while you may be tempted to think WooCommerce Connect and Jetpack CRM should be used to create orders and have customers pay for them, the ideal solution would be to do this via WooCommerce’s “pending payment” order feature.
Using Jetpack CRM Invoices, Invoicing Pro and WooCommerce Product List
There may be cases where you want a remote team to use Jetpack CRM to populate your invoices using your WooCommerce Product List as Invoice items, have them pay online and keep your sales team away from your store.
This is 100% possible and some customers choose to do this to keep their Sales Team and Store separate.
While this is a solution possible with Jetpack CRM and it’s Invoices it’s worth bearing in mind the limitations of this approach
- Orders will need to be manually created in WooCommerce
- Stock levels will need managing separately
- Paid Invoices will need to be reflected in WooCommerce (or not)
- You’ll need to process refunds via the store
- Payment options via Invoicing Pro are PayPal and Stripe
- vs additional options offered through WooCommerce if you do via the Store.
So, if you do the remote CRM approach (using your Store setup for Jetpack CRM Invoices) you’re effectively running a manual store, and you may not need WooCommerce at all (you can use the Invoice Itemiser independently)