• Resolved Jairo Ochoa

    (@jairoochoa)


    Hi,

    Bulk process to refund orders creates a child order without items, just with totals.
    When printing a PDF Invoice it appears without the products.
    A refund by editing the order allows to add items to refund and it works fine.
    Would you mind check it ?

    Thanks

    Cheers

    • This topic was modified 4 months, 2 weeks ago by Jairo Ochoa.
Viewing 12 replies - 1 through 12 (of 12 total)
  • Plugin Support shahzeen(woo-hc)

    (@shahzeenfarooq)

    Hi there,

    Thank you for your message. I wanted to clarify that by default, WooCommerce does not have a bulk refund option. Refunds need to be processed individually by editing each order.

    If you are seeing something that appears like a bulk refund, it may be coming from a third-party plugin or custom code on your site. Could you please let us know how you are currently performing bulk refunds? This will help us understand the behavior and guide you better.

    Also, System Status Report which you can find via WooCommerce > Status. Please use https://pastebin.com/ or https://gist.github.com/ and share a link to that paste in reply here. Once we have more information, we’ll be able to assist you further.

    Thread Starter Jairo Ochoa

    (@jairoochoa)

    Hi @shahzeenfarooq

    Yes, my fault, I was talking about the field “order_status” which is on the top-left side on the Order Edit page.

    If you change the Order Status with this selector instead of adding, below at order items block, units to be refunded, the Refund Order only have Totals but no Items.
    So weird, isn’t it ?
    I also have to check if stock is restored after status is changed.

    I’ve notice that even PDF Invoices has a fix in their Settings to show Order Items instead of showing an invoice empty. So it’s not an issue that only occurs in our shop.

    Thanks

    Hi @jairoochoa,

    Thank you for getting back to us, but I’m having trouble understanding your explanation. Could you record a quick video so we can see exactly what you mean? You can use Loom to capture your screen. This will help us better understand the issue.

    Thread Starter Jairo Ochoa

    (@jairoochoa)

    Hi @mosesmedh

    WP Admin > WooCommerce > Orders
    Just edit any order.
    On the top left, there is a selector for Order Statuses. Change it to Refunded.
    WooCommerce will create a refund order, but it will not include any order items.

    You can verify that it contains no items by doing a var_dump() of the WC_Order object.
    And what issues does this cause?
    If you try to generate a PDF for the refund, it will only show the totals — no products will be listed.
    Additionally, when the refund invoice is sent to the Spanish Tax Agency (Agencia Tributaria), it arrives incomplete, since it lacks the required line items.

    The question is: why aren’t the products added to the generated refund order?
    WooCommerce simply does not populate line items when an order is manually switched to the Refunded status.
    This status change only updates the order state — it does not trigger the refund logic nor create itemized refund data. What happens with stock?

    Since no items are added to the refund order:

    • Stock is not adjusted.
    • The quantities from the parent order remain untouched.
    • WooCommerce does not restore stock unless you create an actual refund entry, which requires selecting line items and quantities.

    In other words:

    • Changing the status to Refunded is only a label.
    • Creating a real refund (with items, quantities, tax breakdown, totals, and stock adjustments) requires using the “Refund” button inside the order.

    Please confirm if the question is now clear; maybe I didn’t explain myself well in previous messages.

    Thanks
    Jairo

    Plugin Support LovingBro (woo-hc)

    (@lovingbro)

    Hi @jairoochoa, thank you for laying everything out so clearly, it really helped me walk through the behaviour on a clean test site. I’ve replicated this on my end and can confirm that what you’re seeing matches how WooCommerce core is designed to work.

    WooCommerce expects refunds to be created using the Refund button inside the order, where you select the products and quantities to refund. When you complete that flow, WooCommerce automatically updates the order status to Refunded if the entire order amount has been refunded. This is the correct and expected process because it records itemised refund data, adjusts stock, and stores the refund details inside the same order.

    When the order status is changed manually to Refunded using the dropdown, WooCommerce only updates the status label. It does not treat this as an actual refund, which means no items are marked as refunded, no stock adjustments are made, and no refund data is created. Since no real refund was processed, PDF invoice or refund plugins do not have any product line items to display.

    WooCommerce also does not generate a new order for refunds, everything lives under the original order, but only when a proper refund entry has been made.

    If anything still feels unclear, feel free to share a quick Loom recording showing the exact steps on your end, and I will gladly review it with you.

    Thread Starter Jairo Ochoa

    (@jairoochoa)

    Hi @lovingbro,

    Yes, please check the database. A refund is stored as a post where the parent column points to the original order. So it’s a new order — a child order.
    But as you mentioned, it’s hidden and does not appear as a new order in WP Admin → WooCommerce → Orders.

    We checked the database, and this refund entry only stores the total amount, without taxes, fees, or items.

    For example, if you buy a T-shirt for €121 (100€ + 21€ tax), the refund entry will simply store 121€, including taxes, but without listing any line items.

    It’s easier to understand if you can look directly into MySQL.

    Thanks!

    Plugin Support shahzeen(woo-hc)

    (@shahzeenfarooq)

    Hi there!

    Thank you for the update. I have checked this and I can see that if we change the order status to “Refunded”, the whole amount is refunded without any line items. This seems to be the default behavior.

    We strongly recommend always using the Refund button to process refunds instead of manually changing the status. Using the Refund button allows you to specify the amount and tax to refund, and ensures the refund record with line items is properly created in the database.

    If you want to have line items appear when changing the order status manually, you can:

    Thank you!

    Plugin Support thelmachido a11n

    (@thelmachido)

    It’s been a while since we heard back from you for this reason we are closing this thread. 

    If WooCommerce has been useful for your store and you appreciate the support you’ve received, we’d truly appreciate it if you could leave us a quick review here: 

     https://wordpress.org/support/plugin/woocommerce/reviews/#new-post 

    Feel free to open a new forum topic if you run into any other problem. 

    Thread Starter Jairo Ochoa

    (@jairoochoa)

    Hi @shahzeenfarooq

    Thanks for your reply and confirm that it occurs like this.
    I cannot understand the reason of this behaviour.
    As you suggest I will request that order change would include order items.

    @thelmachido sorry for the delay of my answer.

    Thanks

    Plugin Support Frank Remmy (woo-hc)

    (@frankremmy)

    Hi @jairoochoa,

    Thanks for following up. You’re right, when the order status is changed manually to Refunded, WooCommerce only updates the label. It doesn’t trigger the refund logic, which means no line items are added, stock isn’t adjusted, and the database entry only stores the total amount. The correct way to process refunds is through the Refund button inside the order, which ensures itemized refund data is created, stock is updated, and invoices or integrations have the full breakdown they need.

    Regarding your suggestion to have line items included when changing the order status manually: that functionality doesn’t currently exist in WooCommerce. Feature requests are reviewed by the development team, but it’s important to note that not all requests are guaranteed to be implemented. Prioritization depends on demand, technical feasibility, and alignment with WooCommerce’s roadmap. Upvoting or commenting on the existing request helps signal interest, and the more community feedback a request receives, the more likely it is to be considered in future releases.

    I hope that clarifies things. Let us know if you need anything else.

    Thread Starter Jairo Ochoa

    (@jairoochoa)

    Thanks

    Plugin Support LovingBro (woo-hc)

    (@lovingbro)

    Hi @jairoochoa,

    Thanks for getting back to us and for confirming. I appreciate you following up and sharing your thoughts, and I am glad we were able to clarify how this works in WooCommerce.

    Just to double check, are things looking good on your end now, and do you feel clear on the expected behaviour moving forward? If anything still feels off or you have additional questions, feel free to let us know here.

    If everything is sorted and WooCommerce has been helpful for your store, please do not forget to leave a quick review as mentioned earlier. It really helps the team and the wider community. You can share your feedback here: https://wordpress.org/support/plugin/woocommerce/reviews/#new-post

Viewing 12 replies - 1 through 12 (of 12 total)

You must be logged in to reply to this topic.