Skip to content

Edit a Paid-for Order In WooCommerce and Invoice the Balance.

Update: This comment has another way to edit a paid for order and invoice the balance that will likely work better, especially for customers paying by credit card.

You’ve heard from a customer that just placed an order and they would like to add an extra product to the order. It’s already paid for, so how do you go about adding it and charging them for the difference? I’ll walk you through the process here and you’ll be invoicing customers like a champ in no time.

First, you’ll want to edit the order and look for the order status drop-down. Change the order to “On hold” and update the order. Now you can start editing the products.

Next, look down below the list of items in the order and you’ll see a button labeled “Add items.” Click on it and then the “Add Products” button that appears after that.

That will open up a modal window (pop-up) where you can actually add in new products. Use the search field there to locate the products you want to add and select them. Then click the “Add” button when you’re finished.

After that click on the “Recalculate” button to add everything together. This will update the total on the invoice. It will also show how much has been paid so far. Then we change the order status to “pending payment” and update the order.

After the order refreshes, we’ll want to look in the top right hand corner for the “order actions” box. In the drop-down there, select the “Email Invoice/Order details” option and click the button next to it. This will send a copy of the order to your customer. It will have a link they can use to pay the balance due.

They can also view the order in their account in the “orders” tab. There is a button there they can use to pay for any orders with an outstanding balance.

That’s all there is to it. We edited an existing order, set it to on hold. Added products. Recalculated the total. Set the order to “pending payment” and updated it. Then used order actions to send an invoice to the customer for payment.

That’s how you can edit a WooCommerce order that’s been paid for and add products to it. Le me know if you have any questions in the comments.

6 thoughts on “Edit a Paid-for Order In WooCommerce and Invoice the Balance. Leave a comment

  1. This is what I need to do, so thanks for your post, the issue I have though, is that when the new invoice is sent, with the link to pay, the order is for the order total, not the balance, is there anyway to change this behavior?

    • You are totally right. I’m not certain when this changed, but I can’t make this work either at the moment. For the time being, it looks like another order will be necessary.

      • I’ve worked with this a bit more and here’s one possible workaround. I picked up this idea from a post on Business Bloomer about allowing users to edit processing orders.

        The code snippet in that post adds an edit button to the orders section of the account page. When a user clicks it, it duplicates the order and adds the original items to the shopping cart and adds a “credit” equal to the amount already paid.

        That got me thinking that one way we could approach this would be to duplicate an order and add a credit to the new order equal to the amount paid on the other order. There is a Duplicate Order plugin that may be able to do this for you so the items don’t have to be manually copied over.

        Then you can cancel the original order (don’t refund it). After that set the new order to “pending payment” and send the invoice to the customer. That should do it. Let me know if you have any questions.

  2. This method is only for orders paid with credit card, but what if I offer credit and cash? Also, this method cancel the original order; how can I give the customer the ability to edit on the same order?

  3. After working with this more, it’s definitely best to create a new order instead of editing an existing one. With a credit card, there isn’t an option, but even with cash, it will still work out better.

    Even the Deposits extension which is designed to accept partial payments creates new orders for the installment payments.

Leave a Reply

%d bloggers like this: