Challenge with UOM in PO (Urgent help required if possible)

Is there any workaround for the following challenge? I believe there must be a workaround in ERPNext for this common challenge.
Here is the scenario.
I have default UOM “Nos” which we are using at POS. And maintain it for Item Reorder level as well.
But our buying is in BOX or packs. For a retail where there are thousands of items are being purchased every day. It’s not possible to go through every item to change it’s UOM in PO and also while changing UOM, QTY is not being changed automatically.

I hope I’m not the only one who is having this issue. The quick work around could be if we can display another UOM on the PO print which will help the receiving people to understand the actual boxes instead of Nos.

Any help will be appreciated. It’s a bit urgent.


Refer to the following link, stock & purchase UOM may help you

Thanks Pawan. i studied this document and we know this is the only option to change UOM in Purchase request and we can change it one by one for each item in that purchase request. the challenge comes when we have more than 1000 products every day to buy and changing UOM for each item is not viable solution. i hope i’m able to explain the problem


You can configure it at Item Level, so it will automatically default for your POs

if we configure it at Item level default UOM, for POS it’ll take the same default UOM. where as for POS we need ‘Nos’ UOM and for PO it could be “Pack” or box

is there a way we can show two UOM on the PO? this could be a good workaround for this challange.
for example.

Nos 1 and -->1 Box = 10 Nos
on PO if we have 100 Nos can we display in next column Box 10?

So, in effect you are saying that you need your PO to look like this:

Item | Stock UOM | PO UOM | PO UOM Rate per Unit | Total Price

Apples| 100 Nos | 10 Boxes | $0.025 | $2.5

Will that work for you? Don’t worry too much if you need the Stock UOM and the PO UOM in the above example interchanged?



HI JayRam thanks for your quick reply. yes your example will perfectly work for this Challenge.

and one more thing, glad to have your reply. :wink:


Don’t try to motivate us by calling this a challenge. :slight_smile:

It is possible to do this without any serious customizations. You just have to experiment and research how to do it. Maybe somebody on the community can show you how it is done, if you run into problems. If not you have to find somebody that can do it for you and pay him/her to do it for you.

Open Source does not mean an investment in money in terms of license fees, but it does mean that it is an investment in terms of time, or you have to procure those services from the community.

Apologies if I sound preachy, but these are the basic facts of an open source ecosystem.

So now that I have said it is possible and it is reasonably easy, let me try and challenge you to find out for yourself how to do it.



1 Like

Hi JayRam,

Thanks for your comments and i fully agree with your comments about Open Source. i’m also a developer, but fortunately or unfortunately i have experience in ASP.NET.

i could accept your challenge if it’s in c#. but with python and frappe frame work i’m new and didnt spend much time on it’s development.

lets see if i can find someone from community to develop this for me. and i’ll try to take care of him.

i’m impressed with your reply and got the idea why they appoint you CEO. :innocent:

Hint: No programming necessary. You can do it with existing fields and out of the box configurations in Print Formats.



Here you go. Proof. Haven’t been able to crack one part though.

Okay, here’s how you do it.

Go to Setup Print Format and Make a new Print Format for Purchase Order. Now scroll down to Items Table and select Stock UOM and Qty as per Stock UOM.

Now Update and Save or whatever.

How go back to Setup and Cyustomize Form. Select Purchase Order Item. Find Stock UOM and uncheck Print Hide. Save.

Refresh to Clear Cache. Now go to the PO and use the new Print Format and voila it should all appear.

Now I haven’t been able to figure out how to make Stock UOM appear in the print format. Maybe somebody else can help you with that or start a new thread and ask that specific question.

Hope this helps.

Apologies to give you some grief.



1 Like

in the above example you are right. because the Qty you are using to make PO is not your stock UOM.

lets say you make a PO with “Stock UOM” Nos = 25 and on PO in last column it should show “5”

Please no apologies, really appreciate your efforts and time you spend to explain the above process.

Correct. Then you only switch the Stock UOM and the UOM field. I wanted to say 1 No. = 5 Kg in this so, I should have used a conversion factor of 0.2. I used 5 and that’s the reason you see 25. You will get it right by a bit of experimentation.



have a look at this what i’m looking for.
in your example Stock UOM is Nos and at the time of making LPO you select different UOM that’s why it worked.
in your example if you select the same UOM as your stock while making PO you’ll get the same result in both columns.

but on PO i need to display Box which is for supplier and receiving person. we cannot change UOM at the time of PO because there are around 1000 Items or more per PO and it’s not easy to change it every day. these PO’s are generated through scheduler using the Re Order Level logic.

So, did I give you a basic solution that you’d already considered and discarded? lol!

So give me a rough idea of what each of these 1,000 items look like, what is the UOM you are using for stocking, what UOM you want on the PO and for the Stores Person and what’s the conversion factor between these two UOMs? Is the conversion factor always the same or does it get different for each item?



The Idea is,
for items, these are retail Store Items.
we are using only two UOM. Nos and PIP(Box) these are defined in UOM List.
and yes Conversion factor is different most of the items. and there may be some items where there is only 1 UOM which is default Nos.

Thanks in Advance

Add custom fields in Item, add the other UOM and Conversion Factor into it. Pull these into the Purchase Order Item, write a small custom script to multiply the Stock UOM (the only UOM you will use) by the Conversion Factor and return the product of these two into another Custom Field in the PO Item doctype and display these fields in your PO.

Still fairly simple!



1 Like