How to Create an Invoice Using WooCommerce

The one page checkout process in WooCommerce is pretty darn slick. You can beautifully sell all sorts of products. We know because we use it ourselves on But there are plenty of special circumstances where you don't want a customer to go through your normal checkout process.

  • Sometimes you may want to give special pricing to a customer
  • Sometimes you may want to send a direct payment link to your customers / clients
  • Sometimes a customer may want to add on something extra to an existing order before you ship it
  • And sometimes you may have products which aren't in your public catalog but you want to give them to some customers

In all of these cases you can easily create an invoice and have the customer pay for it using WooCommerce.

Creating the Invoice

Creating an invoice is as simple as creating an order in the backend, adding products, and setting it to pending. I've broken down each step below to show you how it works.

Create a New Order

  1. We first need to create a new order. In the WordPress admin click on WooCommerce -> OrdersWooCommerce Orders
  2. Now click on Add Order Add Order Button in WooCommerce

Add Items

  1. Add as many items as you like to the order. If you're adding an extra cost to an existing order I recommend creating a hidden product (ex. Shipping Cost) so it's clear what the user is paying for. Feel free to adjust the price of the items as you see fit.
  2. Press the Calculate Total button. Calculate Total Button

Sending the Invoice

You now have an order ready to go. You just need to send it.

  1. Leave the order status as pending. You must do this otherwise the customer won't be able to pay for it
  2. You must enter a billing address email for the customer. If you don't they wont get the invoice.
  3. Make sure you've selected a customer
  4. Press the Save Order button and you're done!

What the Customer Sees

The customer will be sent an email with a link to pay for the order.Invoice Email

Or you can prompt your user to log into their account and pay for it using the pay link. My Account Pay Link

Sending Reminders

In case your customer doesn't pay your invoice you can easily remind them. On the edit order screen you can resend email notifications by selecting Customer Invoice under Order ActionsSend Customer Invoice Email

Follow Up

A couple of months ago I wrote a post about how to Create The Ultimate Invoicing System using WooCommerce. You can certainly take what you have here and add onto it with the tips in that post.

Happy invoicing!

35 thoughts on “How to Create an Invoice Using WooCommerce

  1. Thanks for this great tut!, I wonder if I have to make a few orders is there a way that I can send the order invoice to my customer to pay it by email with out having to go one by one online, with one button I can send many pay orders at the sema time?

  2. I need to add orders for customers to pay me monthly expenses . Now, I pre-fill order details for my customers. Then I Keep the order status as ‘Pending’, calculate the total.
    But I need to send a bulk reminder with the invoice to the customer (with a payment link), I need to do this because a significant number of customers will not answer , I would like to be able to send again the orders to the customers who didint pay or answer the first Order to all the ones with pending status with one click . Instead of having to do it one by one on each payment order. Send a bulk orders emails again with the payment link .
    So do you know about a way to send the bulk emails with the Invoice details and the payment link like the original Invoice to all pending customers with one click ?

  3. I have a question about your article. You say after creating the order and the invoice, the store manager can send an email with the invoice and a link to “pay” for the order. Where will this link take the customer to? How that page will look like?
    What I need to do is to let the customer place the order from the frontend, but not allow him to pay at checkout. I will only leave a modified option of “pay on delivery” button. Then, I put the order to pending. Several weeks later (when I restock) I’ll send him the invoice with the link where he/she can enter and choose any payment methods available (debit card, PayPal, check). How will that work please?

  4. Hi Patrick,

    How does one setup so that there’s a link in the email invoice linking back to the site in order to checkout?

    • Hey Stephen,

      If you send the customers an order that is pending it will automatically include the pay link which will take them to their account where they can pay for the order.

      If you want the link to take the user directly to the checkout you should be able to do something like that with Email Cart for WooCommerce (aff).

      I hope that helps! 🙂

  5. Hi Patrick!

    Is it possible to create an invoice, save it but that WordPress send the invoice later, for a given date?

    I want the invoice to be send at a given date and not immediately. Let’s say i do a job as consultant. the job benefits the client later (within 2 months) and i want the invoice after these 2 months)

  6. Hey Patrick,
    You mentioned in your post that “And sometimes you may have products which aren’t in your public catalog but you want to give them to some customers.” How would you go about doing this? We are trying to add products to our invoices without adding them to the website itself and wondering if this is possible

    • Take a look at the Catalog visibility setting on the add/edit product page (documented here).

      • Hey Patrick,

        Sorry to take so long to reply again, What we are trying to see if we can do is just add items directly to the invoice instead of having to go to add the product to our web site. We take a lot of orders over the phone and our products are changing in weight and quantity often. (400 1 time products in last 2 months) The biggest slowdown we have now is having to add the products to the website just to put them in one order.

  7. Timothy Burgin

    How can I display any added custom fees and added shopping fees made on an order/invoice page on the customer’s email confirmation and checkout page?

  8. Hi Patrick,

    Is there any way to show our customer name in woocommerce email invoice..

  9. Hi Patrick, Thank you for this. I have one question though – I was able to successfully create the invoice and the order is sent to me, but the customer does not receive the email even though it says “Order Updated and Email Sent.”

    Any suggestions?

  10. Hi Patrick,

    Thank you for a great blog. Can you tell me, if I don’t know which method the customer wants to pay with, do I leave payment method as na? Will they then have the option to pay by any method, or must I specify?

  11. Hi Patrick, I have created new order from admin and sent invoice to me with payment link. When I view the received email with link to pay and click, I get this message
    This order’s status is “Pending Payment”—it cannot be paid for. Please contact us if you need assistance.
    It doesn’t matter which payment gateway I select. any ideas

  12. Hi Patrick, I solved my problem, I wasn’t hitting the order total, silly me for thinking it was automatic.

  13. Thank you so much for sharing how to do this. Your instructions were fantastic and very easy to follow for a not so savvy user! Because of you my customer received their quote in a timely manner. I did have to play around with the calculations of the shipping and tax to ensure it was correct but other than that…easy

  14. I have seen that “calculate total” in backend .But never thought that have this much of useful.

    Thank you

  15. Hello Patrick,

    Wonderful article. I am having trouble with sending the invoice. The only message the customer gets when they click the pay link is this message “This order’s status is “Pending Payment”—it cannot be paid for. Please contact us if you need assistance”. I am not sure how to solve this problem because I do not see the payments page. Do you have a solution? Thank you.

    • You need to ensure you have clicked “Calculate Totals” after you’ve added all the products to the cart manually.

      The reason you’re seeing this is because your order is totally $0, it needs to be greater than $0 for the page to appear.

  16. Hi,
    Great post.
    I don’t see “Pay” in the account.
    I only have two options: Cancel / View.
    The order I have created is in Payment pending status.
    Even the email has no “Pay”.
    Do you have any guess?
    Thank you

  17. Hi Patrick, my client wants to have the last 4 of the customer’s credit card to show on the invoice – is there any way to do this? I have been scouring the web to no avail.

  18. Hello! I’ve read your article but I was actually looking for different information: how can I check what address is sent automatically on the invoice once Pay Pal payment done? Or maybe is it the same address as established in Pay pal? The thing is that my business is registered in a different country, so I should probably change it. I have no idea where I can find such an option.

    Thank you in advance!

  19. Patrick,

    Hi. Great post! I use this on my site…but when a customer pays for an invoice, it marks it the order as “Complete”. I was wondering if it is possible to have it mark an order as “Processing” instead once the invoice is paid for? Thank you for your help!

  20. We have our orders go to a warehouse to be filled. The customer will be invoiced, and I’d like to send the orders out before the order is paid for. The warehouse isn’t sure is an order marked “Pending” will go through the warehouse. Any thoughts?

  21. Thanks man, you know, you are the best

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.