Changing the system is hard for noobs

Hi Community,

Sorry for the long email…

I have a few features that I believe ERPNext will greatly benefit from, but its been a challenge over the last few weeks trying to figure out how to implement this into our fork of ERPNext.

What im most afraid off is that when I try to contribute this back - if others think its valuable - is that I will break ERPNext some place where I did not analyse completely. I have tests, but If I dont test all parts then?

I have the business process and what I plan to do here and would like to share how I believe these features can be introduced into ERPNext and the process flow around them.

So here goes:

  1. Costing model: Lot or Batch cost - keep track of the purchase cost of items in all documents just like serialized items. But this gets interesting and exciting when it comes to year end. Our current system has been implemented with a similer costing model and im not sure if others have a similar experience with average and fifo but we manage to have the stock value and GL stock account balance 100% with easy ability to recon and find error transactions. This costing model also helps when working with sales commissions Im sure there are other ways to get the data we require which I will investigate further but for now our business requires that this costing model be implemented into erpn.

What I would like is assistance in putting this together, or guidance as to what part to change and update.

Purchace Receipt is easy, the challenge is shipments or issues. Especially when picking items from the warehouse. What I would like to do is the ability to pick multiple lots and qty to facilitate 1 item line. So if required 5, then we should be able to pick 2 from lot A , 1 from Lot B and 1 from Lot C. Also lot series are configurable like serial numbers and placed in the stock setting doctype (done) so that on receipt the lot numbers are automated. The cost of the item will be calculated by summing the purchase cost of the lots used. I dont now exactly all the point batch numbers are used as we are not a manufacturing house, so need to analyse if a separate place needs to be created to manage this or if batch could be used.

When returns are done the same will happen, lots are tracked and purchase cost is used. My challenge comes from when picking serial numbers becasue with this feature every stock receipt will have a lot - some thinking needs to be done around this. I was thinking of keeping track of both, so if I add a serial number, I can check the lot and add that to the “batch no” field on the form. If I pick a lot that has a serial number then I should be presented with those serial numbers that are available and be able to pick the ones needed.

I was thinking of adding a table to the delivery form that keeps the lots used and qty’s, still struggling to do this on the form.

if all movement of stock is tracked with purchase cost I believe there will be less errors from averages of stock value - please correct me if you believe this not to be true. There wont be much to write off from errors but only that which is actual variances in price. I have not tested fully with FIFO simply cause our stock does not move in this manner and its why we cannot use FIFO model. Whats also nice with this is that if we do have a change in price on the supplier invoice and stock has already been shipped, the entire cost change can be adjusted with all the links to the GL adjusted with the new cost using the Lot number.

  1. Bundles: Im aware that bundles are available but I believe we have designed a more efficient way to manage bundles in our current system. The challenge in our current system is that we needed to create item codes for this, and I dont think this is necessary. If item lines in doctypes can have 4 types - a) item, b) bundle c) note d) General Ledger then using this we can tell ERPNext what the type is and it will process the line accordingly. b) will be used to create bundles and this will make ERPNext flexible as we would not need to create a bundle for every variation of the bundle we will find. Variations can be managed on form by just adding or removing child items. Yes with this method we need to create the bundles each time, but then we could add a feature that will allow the user to save a current bundle for future use - we dont need this in our current business process. All the costing is managed by the lots etc. We use this method in our current system purely to manage how the printout appears. Im assuming others are using bundles for the same purpose. I have tested the current ERPNext bundle and purchasing one does not add the bundled child items into stock, but Im suspecting its just for grouping and printing.

What would be nice in ERPNext is that if we set the line to be a bundle line then it should present a child table that we can add items to, just like the current bundle approach, better would be if we can create a tree like setup, but I think that might be harder to present on current screen layout. Not sure.

As for the other 2 types, notes and GL I think is self explanatory. The ability to add notes to the document at the end or after items, and the ability to post directly to different accounts rather then the sales account - so maybe I have an expense I incurred that I would like to bill back to the customer - hotel, travel, etc and dont want to create and item to manage this. Maybe a lil more tricky and maybe better to have it as an item so it can be tracked - so if others dont see the need for this its fine.

  1. this feature I would like to state here but I need to investigate further how ERPNext does this. What we would like to see is a configurable feature where we can either specify the cost to be posted on shipment or accrue into an account and then reversed at the time of invoicing, then on invoice post to cost.Because we dont always deliver and invoice at the same time the GP in the financials do weird swings as shipments and invoices get posted at days or sometimes months apart, instead of a steady upward line. Now this may not seem like a big deal to some, but CEO managers and analysis this income statement constantly and fluctuations in the GP indicated business trends that could be misleading. I guess to understand how ERPNext does it and adjust the analysis accordingly will have to be done, but its a huddle that I will need to cross when trying to suggest ERPNext for our business. I think a small change in the code can accommodate this and make the reporting much smoother - also gives the ability to put GP on the invoice, which is also handy for process so that staff can check if any errors where made during picking using the GP on invoices while processing.

I think these features will add to the accuracy of the accounting side of ERPNext and leave a very small margin for error if all the points are covered carefully.

I know that this might be on the road map and I was trying to add this to my fork - but being a noob makes it hard to write good structured code quickly. My speed while learning would also mean that I will have this ready when someone else has already done work on.

I would like to be a tester of this if someone else has already gotten somewhere with this or similar feartures or I would appreciate guidance in where to add or change components - and then I can do the coding cause ERPNext is great, and I was hoping just to add my experience into the application. Again, spending 6 years on a very expensive erp system at our offices has taught me a bit and Im hoping to be able to share - starting with these features.

Sorry again for the long winded post, but im hoping to be more active in the future.

Back to learning the back end of erpnext, good evening to all.


1 Like

@hpema108 thanks for bringing this up. I think many users will have such queries.

There is no easy answer. If you think you need features at the core of ERPNext, you should sponsor and build them. Few things to keep in mind.

  1. You need to make sure your new system works with existing data
  2. If your feature requires additional data entry, make sure its optional
  3. Keep the design clean.
  4. Send feature requests in small parts, rather than a big feature. This will make it much easier for us to test and merge.

Usually there is no fixed guideline on should be included or not, but as long as it follows general design guidelines, it should be fine.

Hi Rushab,

I prefer to pay for the changes when it comes to the above requirements, and although I prefer small changes I think the above are some what difficult to keep small, especially the costing method.

If we work together on this, how much do you suspect this would cost me to implement at least the costing method and consequent changes to the system considering not affecting current data. I will start to think about how this affects existing data if the user want to switch - from my initial idea is that it wont be possible to change existing stock items that have stock movement in them to another method unless maybe if the stock is at 0 qty.

As for the bundles, I think that can be done in small chuncks.

I think the cost account on shipment is also doable in small chuncks.

Should I create a feature request - dont want to do so if you think the core team does not see value in the changes.

Again, dont mind paying for them if I know how much.

Thanks for a great product - its been interesting learning the ins and outs on erpnext, though challenging at times. Will continue to use as is for now with some of the other companies I manage that dont require these changes I request.


We are strictly off customization, you should engage a community developer.