How to adjust stock value without using stock reconciliation?

We purchase used cars and recondition them for sale.
Some of the repairs are done outside of our workshop and we post purchase invoices for these repairs.
We’ve customized the invoice item to include the car item that the cost should be attributed to.
We want to add this cost to the car item stock value at the posting time of the invoice.

Should we create a function that adds a stock ledger entry? would that be enough or is that very wrong?
We’ve been careful in our customization not to play with the accounting or stock ledgers.

Stock reconciliation won’t work for us since the way it works you enter the new stock value which requires you to first fetch the before value, calculate the new value, and then submit the form.
And since we want to make this process automated, this can lead to all sorts of bugs and issues and we want to make this process very simple.

I would model this after the manufacturing module.
You have some material on input (used car, replacement parts), you put in some work (whether it’s internal or external, it’s a work item with a cost attached) and you get a product (reconditioned car).

Only exception is that in ERPNext it’s a repeatable process with BOM and whatnot, and in your case each project (car) is different.

So in manufacturing (mass production) you have some kind of template that tells you all the stock and all the work making X amount of good Y takes; you have the same process, only without the template.

Problem is Manufacturing would create a new item, and we need it to stay the same item.
And as you said, the fact that it requires a BOM does not make it an option.

I’ve been playing around with the stock entry.
“Repack” in stock entry actually kindda does what I need but it increases the QTY, I’m thinking of creating a new type “Maintenance” for example and customize it to behave like “Repack” except not increase the QTY and create a “Repost item valuation” entry as well.