Skip to Content
मेन्यू
This question has been flagged
3 Replies
549 Views

Hello!


I'm using Odoo V18.3. Currently, I'm only using POS and Inventory.


Is there a way to prevent a sale from being made at the POS if I don't have enough stock?


I have a store, and sometimes it's good to know at the counter if I actually have what I'm selling.


I can't find that option. I defined my stock, and it lets me sell above that.


(I understand this is for a different model, but perhaps it can be adjusted.)


Regards!

Avatar
Discard
Author

Oh, okay, it's useful.

 

But doesn't it have any warnings or restrictions? It can still be done.

I still have the basic, free version, but it's good to know the code.

 

I'm getting to know the system well and adapting it to my business to get it up and running. Then I'll scale it with a more comprehensive version. THANK YOU!

There's not restriction by default. Partly due to the point outlined by Ray in his post. Also POS mostly is a 'take item from shelf and walk to count' kind of scenario. Regardless of the stock level, if the customer holds it in hand, you will want to sell it. No point in blocking this behavior. Else we're talking about a situation in which you'd usually rather create a Sales Order for easier future handling and tracking.

Author

Very clear!

Best Answer

About 'I have a store, and sometimes it's good to know at the counter if I actually have what I'm selling':

Add the Product to a Sale, then select it, click the 3-vertical-ellipsis, then Info to 'know [...] if [you] actually have what [you're] selling':




About preventing negative stock, have a read at https://www.odoo.com/forum/1/272531. This post of Ray is about (a none-suggested modification to prevent negative stock by) creating an Automation Rule with this code:

accuracy = env["decimal.precision"].precision_get("Product Unit of Measure")
for record in records:
    diff = round(record.quantity, accuracy)
    if (diff < 0 and record.product_id.is_storable and
            record.location_id.usage in ["internal", "transit"]):
        raise UserError(f'You need {-diff} more {record.product_id.name}(s) to complete this Transfer!')
Avatar
Discard
Best Answer

Hello,

Please Try this module :

Restrict Out-of-Stock Products in POS

Avatar
Discard
Related Posts Replies Views Activity
3
सित॰ 25
311
3
सित॰ 25
412
4
अग॰ 25
1567
2
अग॰ 25
645
0
अग॰ 25
410