v15 Enterprise Edition (please mention the version and edition of Odoo you are asking about as the answer may differ)
We don't recommend updating the Purchase Order - as it contains useful information about the agreement "at the time" you had with the Vendor, even if it changes because they need to increase prices, back order items, substitute products, etc.
Periodically, you may want to assess how well your Vendors are able to keep to their agreements, so having a record of what you both discussed at the time is important.
The best approach is to leverage both the Price Difference (aka PPV) feature, as well as the Landed Cost feature. Together they can work well to update the value of Inventory you have received at the PO price to ensure your COGS is accurate.
1. Setup a Purchase Price Variance expense account:
2. Link this account to each Product Category, via the Price Difference Account field:
3. Define a new Product Category for your PPV service product so you can use the same account there under the Stock Input Account:
4. Create your PPV Service Product inside this Category, with the default Split Method you prefer.
Let's say your Purchase Order looks like this:
When you receive the Widget, your Inventory Valuation report will show $25 and you will see a debit to your Inventory Account for $25.
When you receive the Bill for the Widget, Odoo will default the price for the Widget to $25. Instead of adjusting this price, you add a second line for the difference. In this case, we will assume the price increased to $31.25. Your Bill would then look like this:
Note: This is where the majority of the work is needed in this workflow. Each line will show the PO price, so for each line where your Vendors shows a different unit price, you will need to add a difference line. You can use the calculator feature of numeric fields to make this easier - simply prefix your entry with the equal sign so Odoo knows you want it to minus $25 (the PO price) from $31.25 (the Bill price) to automatically calculate for you the $6.25 difference.
Once you confirm the Bill, the following Journal Entry will be created:
To clear the debit from the PPV account and reclass it to the Inventory Account, you would click "Create Landed Costs" on the Bill and identify the Transfer for this PO (or this shipment if there were multiple) - everything else will pre-populate:
The Landed Cost, once validated and posted, will credit the PPV account and debit your Inventory account, so that your Inventory Valuation report will now show $31.25 and when you sell this product, the Cost of Goods will be accurate at $31.25 instead of the Purchase Order price of $25.
It will also reconcile the relevant debit (from the Bill) and credit (from the Landed Cost), so a periodic review of any balance(s) remaining in the PPV account will identify any Vendor Bills where the Landed Cost was not created, and will identify which Bill you need to revisit.
Note: If the products are sold between the time you receive them and the time you process the Landed Cost, the amount will instead be debited to Cost of Goods (since you can't debit the value of inventory you have already sold). If you have sold some but still have some in Inventory, you will see a debit to increase COGS for the quantity you have sold and a debit to increase Inventory for the quantity remaining.
Dear Ray,
I will like to make a clarification,
To be sure the inventory carries the actual purchase price,
the situation I have here is that many items make up this PO. For instance, the particular PO in question has 10 line items, if we want to post a landed cost to adjust the inventory, how does the system know which particular line item has an increased price.
for example
product A was 300 initially and was left as 300
product B was 200 and was changed to 250
product C was 100 initially and was changed to 105
Note that the total price difference is 55.
Using the landed cost feature, we will post 55, but how will the system recognize that only products B and C's inventory valuation will be changed
I converted your question - answering does not notify me.
Add a separate line for each product that is overcharged on your Vendor Bill. Prior to validating the Landed Cost, click COMPUTE to see how Odoo plans to allocate each of the different Landed Costs. Adjust as needed. By default, Odoo will allocate evenly over both products, but you can adjust so that overcharge 1 is 100% applied to product 1 and overcharge 2 is 100% applied to product 2.