Erpnext: Improving upon Item Price

Created on 14 Apr 2017  路  20Comments  路  Source: frappe/erpnext

We are buying and selling a lot of items of which the price varies based on quantity and customer or supplier that we buy from or sell to. Currently the only way this can be done is by pricing rules which we think are more to discount prices per customer or supplier group, time period (sales) etc. So in our mind using pricing rule to achieve quantity based pricing is a hack and not an ideal solution.

We propose to improve upon Item Price by adding the fields:

  • Supplier (Link:Supplier) [if:buying]
  • Customer (Link:Customer) [if:selling]
  • Minimum Qty (Float)
  • UOM (Link: UOM)
  • Packing Unit (Int, quantity that must be bought or sold per UOM)
  • Rate per UOM (rename Rate to that to be specific)
  • Lead Time in days (Int)
  • Valid From (Date)
  • Valid Upto (Date)
  • Note (Text)
  • Disable (Checkbox)

If this is possible then based on that also pricing rules can apply to further apply discounts etc.

So for us we would put in 1-10 price breaks based on quantity for an item that we buy from up to 15 suppliers.

Edit 2: removed suppler part no

buying critical selling

Most helpful comment

Would be nice to have a Item Price History on where to store old prices and validity

All 20 comments

It should be noted that when you create a purchase order and sales order it automatically creates an entry in the price list so this would also have to be fixed there

All good ideas but not everyone will need these features. So it's important that these are not necessarily demarcated as 'required' fields or too overt in the gui.

That said the price breaks feature would be very useful for us too.

Probably would be even better a more generic, let's say, "Promotional Plan" for buying and/or Selling on which would be possible to define items and rules to be applied to the price like:

  • buy one get one or a more generic NxM, applied to a item or set of items.

  • start/end date can be defined per item, if it's different from plan start/end

  • child table warehouse to be able to apply rules to specific ones

  • multiple rules can apply (i.e. group of customer, minimum quantity, minimum grand total)

Rules will be applied to get price in purchase / selling orders, sales invoice etc.

Set the promotional name, if apply, to po, so, si items, stock move etc. for further analysis. Reports could be created.

Hi,
In terms of Item Price, an important area is Batch Pricing in Food/Beverage & even many times pharmaceutical industry. As of now I been hacking the batch doctype to achieve the same and it isnt really an elegant solution. As Price Lists only allow Item and not serial / batch.

What do you guys think?

@joolsr agree. ERPNext is already quite cluttered though flexible enough to adapt. We could potentially come up with deployment templates (entry level, medium, enterprise) with varying level of depth and features - all of which can be adapted manually but serve as a baseline so that those that, for example, don't need enterprise, aren't turned off by complexity.

@aambernath so you buy things that have a batch price? That is very interesting. Can you tell us more about that?

I was requested to add Supplier Part Number, the reason is that one item may have multiple supplier part numbers that have different prices even though it is factually the same item.

@dottenbr I have seen this in 2 industries. One in case of Food & another in veterinarian medicine. Essentially the practise is the same. As a batch nears expiry it is given a discount only for that batch and not the other batches of the same item. This only applies in selling, haven't encountered a case in buying.

Selling

screenshot 2017-04-19 14 29 47

This looks awesome @kickapoo ! A couple comments:

  • Is there a reason you picked lead time in weeks? I feel like days might be more useful.
  • Does there need to be a tool to examine all the Item Prices in a given Price List now?
  • Given that you can keep creating new ones with the same minimum quantity, won't a new one get created every time a new PO is issued? I think having the duplicates check should be there, but just incorporate the min quantity as part (so you can't have duplicates of the same item with the same UOM and QTY)
  • Could there be issues with getting the best price depending on the UOM selected in the purchase order? For instance, if I were to order 24 can of soup, my lookup would be on a per can basis. If I were to order 2 boxes of soup cans (each holding 12 cans), but lookup would be on a per box basis. I don't see anything that would help me out to minimize cost. I think you might want to add a conversion factor with stock UOM and stock QTY, so that the system can make a conversion to get you the best price.

When were you hoping to roll this out?

Lead time in weeks would certainly suit me better. In fact i added this field already myself for our own quotes, one of the few that I needed.

@joolsr well i think you can use 7 * number of weeks and store it in lead times in days than having days expressed in weeks ...first solution is clearer imho

Hey guys, this is a ready commit in terms of basic initial functionality (further improvement can be discuss in other issue).
I haven't find the time to finished it up with some UnitTest are needed.

@nabinhait Can you please ask someone to take over? Only 2 Unit test are w8 for this.

@kickapoo, I've written some test cases but I don't have write permission to add the commits to your repo.

EDIT: I've pushed them to my repo for review if you'd like: https://github.com/bcornwellmott/erpnext/tree/issue8456
I can create a PR from there if you'd like, or merge to yours and you can handle it.

Let me know what you'd prefer

@bcornwellmott I have added to my repo

@kickapoo, I've pushed my commit. Please feel free to create a PR, or if you think more tests are needed, let me know.

@kickapoo are you still working on this?

@rmehta, Stavros made and as far I see @bcornwellmott committed. It's up to you now to merge or imporve the issue in your way. At this period @kickapoo is working on other issues.

Here was the latest PR related to this. I've been very busy with other things and haven't been able to address the problems in this PR.
https://github.com/frappe/erpnext/pull/10144

Would be nice to have a Item Price History on where to store old prices and validity

Was this page helpful?
0 / 5 - 0 ratings