• Resolved henesuo

    (@henesuo)


    I have difficulties to understand Woocommerce behaviour.

    Situation:
    I have product X in stock with quantity 1
    I make order manually for my customer via admin panel and add this product to the order and leave order in Pending payment status – so that I can give a payment link for customer. With other statuses there is no option to give a payment link. Stock is not reduced. With On hold status the stock is reduced but there is no payment link available. If I copy the payment link, put order On hold and give link to customer Woocommerce says that it can not be payed because of On hold status.

    At this point with status Pending payment this product X should be reserved for the order – I have reserve products / hold stock option (under Products – Stock page, 2nd row) set for a long time.

    Keep in mind that it can take hours or few days for customer to make the payment.

    But if I make a test order I can add this product X with quantity 1 to my cart (which already is bad) and even make the order without problem (which is even worse)! At this point the Woocommerce should have told that the product is out of stock and order can not be made. Someone can buy the product when I wanted it to reserved for the order I made.

    When I make the order and set the product X stock quantity to 0, to avoid anyone else able to buy it, and if customer tries to pay it it is impossible because Woocommerse tells that there is not enough product X in stock because it possibly tries to change stock quantity from 0 to -1

    I really wouldn’t like to make my products private or behind password to be able to make manual orders and make sure products are reserved for customer. Product backorder option allows stock quantity to go below 0 but it is not an option for me either.

    If I am correct Woocommerce reserves products correctly when customer does the order via website and order is in Pending payment status. Maybe there is something wrong when made via admin panel?

    Tell me what I am doing wrong?

    Thank you.

    • This topic was modified 1 year, 11 months ago by henesuo.
    • This topic was modified 1 year, 11 months ago by henesuo.
    • This topic was modified 1 year, 11 months ago by henesuo.
Viewing 10 replies - 1 through 10 (of 10 total)
  • Hello,

    if I make a test order I can add this product X with quantity 1 to my cart (which already is bad) and even make the order without problem (which is even worse)! At this point the Woocommerce should have told that the product is out of stock and order can not be made. Someone can buy the product when I wanted it to reserved for the order I made.

    To clarify, you expect that WooCommerce won’t allow you to place a manual order from the backend if there is any out of stock item in cart, is that correct? If so, creating a manual order from the backend is normally done by admin, and it’s expected that admin can overrule the stock setting.

    To prevent out of stock products from being added to a manual order, you will need to check the availability beforehand:

    Link to image: https://snipboard.io/mipJd2.jpg

    If you prefer to change the default behavior, I’d recommend getting in touch with a web developer and have them programmatically disallow admin to add out of stock items from the backend.

    Thread Starter henesuo

    (@henesuo)

    Thank you for reply.
    You have not understand correctly.
    If I make order in backend -> added products stock are not hold/reserved for that order when order is in Pending payment status. Someone from frontend can still order those products.
    If I have product X 4 pieces in stock and add 3 pieces to the order made in backend the Woocommerce doesn’t care and still allows someone else to order 4 pieces in frontend. I must have correct stock quantity (3 or more) of product X when customer wants to pay the order because otherwise Woocommerce doesn’t allow payment -> otherwise I would manually decreased quantity already to 1 to make sure the 3 are reserved for the order. But 1 is not enough, and if for some reason payment would be successfull then probably quantity would go to -2 and in that case I would need to correct it back to 1 which is also frustrating.

    Mirko P.

    (@rainfallnixfig)

    Hi @henesuo,

    Thank you for clarifying.

    When you’re saving the order with “Pending payment” status the stock is not reduced and the invoice you send to the customer contains a payment link. On the other hand if you save the order with the “On hold” status the stock is reduced but the invoice doesn’t have a payment link. This is all correct and default behavior.

    I understand that you want to save the order with the “On hold” status, decrease the stock quantity and send an invoice to pay for the order, correct?

    For this, you’d need a bit of custom coding. Use the snippet here and you should accomplish your goal:

    https://github.com/woocommerce/woocommerce/issues/14889#issuecomment-299590725

    As a side note, I would recommend using a plugin like Code Snippets to add custom PHP code into your site without directly accessing the functions.php file. Here is a link on how to use the Code Snippets plugin:

    https://www.wpbeginner.com/plugins/how-to-easily-add-custom-code-in-wordpress-without-breaking-your-site/

    Hope this helps!

    Thread Starter henesuo

    (@henesuo)

    Hello @rainfallnixfig

    When you’re saving the order with “Pending payment” status the stock is not reduced and the invoice you send to the customer contains a payment link. On the other hand if you save the order with the “On hold” status the stock is reduced but the invoice doesn’t have a payment link. This is all correct and default behavior.

    -> This is correct and I understand it. “On hold” works fine if I am waiting customer to make payment via for example direct bank transfer which they have chosen in checkout page. In this case customer makes payment manually and doesn’t use my payment service provider. I need to go and check that payment is done from my bank account and then I switch order manually to “In progress”.

    I do not send actual invoice; just a link that goes to my website where they can see what order content is and where they can choose what option to use for payment. Similar view to what they see in fronted checkout page but little bit simple; only products and their prices etc. No need to fill in address etc.

    Also “On hold” status doesn’t allow customer to make payment via that link, as already mentioned so it is not an option.

    I understand that you want to save the order with the “On hold” status, decrease the stock quantity and send an invoice to pay for the order, correct?

    -> I want to have “Pending payment” status for order I made manully, Woocommerce to hold/reserve stock and wait for customer payment in my payment provider website, switch order automatically to “In progress” and then decrease stock. This is how it seems to work when customer makes order in frontend but not when I do it in backend; when we talk about difference in reserving ordered products.

    My problem basically is why the Woocommerce doesn’t use “hold stock” feature when order is in “Pending payment” status when I make the order myself for customer versus it works when customer does it in fronted by themselves.

    • This reply was modified 1 year, 11 months ago by henesuo.
    • This reply was modified 1 year, 11 months ago by henesuo.
    • This reply was modified 1 year, 11 months ago by henesuo.

    Hi @henesuo!

    Just to clarify it a bit, this is the normal behavior, since it’s a manual order. You can manually decrease your stock if needed.

    You can check more details about the order status here and their expected behavior:

    https://woocommerce.com/document/managing-orders/#understanding-order-statuses-in-relation-to-payment-gateways

    You can also consider checking out a plugin like this one or similar to:

    https://wordpress.org/plugins/reduce-stock-of-manual-orders-for-woocommerce/

    Let us know how it goes! My very best,

    Thread Starter henesuo

    (@henesuo)

    Hello @chiape

    Ok thank you for pointing out that Woocommerce handles orders differently based on how they were created. This explains some of my problems.

    I made a test as you suggested for me to manually decrease stock:

    1) Made manual order for product X 2 pieces
    2) Decreased manually product X stock from 2 to 0 (to reserve them)
    3) Went to payment site via link and paid it with direct bank transfer method (in some cases there was immediately error when link was opened that order can’t be paid because there is not enough stock, no idea why sometimes it happens and sometimes not)
    4) Order went to “On hold” status and product X stock decreased from 0 to -2…

    I bet also that in other payment method it would have gone to “Processing” status and decrease stock incorrectly also “twice”.

    So that option to decrease stock manually (or with automatic plugin) beforehand is not working either because you need to again adjust stock quantity afterwards.

    In my opinion Woocommerce should reserve products already in “Pending payment” status no matter how the order was created. There should be just two different scenarios how long this reservation lasts; for fronted it already exists in options (hold stock x minutes). For manual made orders it should maybe reserve products untill customer pays via payment link and it switches to “Processing” or “On hold” or if I cancel order in backend.

    • This reply was modified 1 year, 11 months ago by henesuo.

    Hi @henesuo

    Thanks for conducting the test and for sharing your observations.

    In my opinion Woocommerce should reserve products already in “Pending payment” status no matter how the order was created. There should be just two different scenarios how long this reservation lasts; for fronted it already exists in options (hold stock x minutes). For manual made orders it should maybe reserve products untill customer pays via payment link and it switches to “Processing” or “On hold” or if I cancel order in backend.

    If you’d like to propose this feature to be included in the default features of the core WooCommerce plugin, kindly share the idea on our Ideas Board and add your votes to it. The more popular an idea becomes, the more of a priority it is for our developers to review it. You can find the Ideas Board at: http://ideas.woocommerce.com/forums/133476-woocommerce

    Thanks

    This thread has been inactive for a bit, so I’m going to mark it as closed.

    Please feel free to open a new thread if you have any other questions.

    Thread Starter henesuo

    (@henesuo)

    I do not see theis being a feature, more like a bug that should be fixed.

    Hi @henesuo

    more like a bug that should be fixed

    Sorry to hear that. A good move would be to report this to the developers as a bug. You can do that here: https://github.com/woocommerce/woocommerce/issues

    You’ll want to give them the exact steps to follow to reproduce the issue.

    Thanks

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘Manually made order not reserving products’ is closed to new replies.