R12 COGS - Cost of Goods Sold in Oracle apps

In Oracle Application Release 12, Cost Of Goods Sold process has been changed. Reason for the change is  aggressive revenue recognition practices as well as the guidelines from various governing bodies.

Till Release 11 Cost of goods sold has been recognized as soon as the Order lines has shipped, as shown in below steps

After ship confirm, user run the interface trip stop
Interface Trip Stop in turn runs the OM Interface and Inventory Interface.
Inventory Interface calls Inventory transaction manager which in turn calls COGS WF.
 

But as per new practices COGS should be recognized along with the revenue.

In R12 user need to define deferred cogs account. These deferred cogs account can be defined at each inventory org level.

During shipping process Inventory tables will hold the deferred COGS accounts. Only after invoicing has done in Accounts Receivable, it will notify the Costing, and Costing in turns call the COGS account generator to get the cogs account .In that way COGS and revenue will be recognized in the same period.