Sales Order revenue/cogs

Our company is not recognizing all of our cogs in each sales order. There is freight and some other misc items/independent consultant costs that are not being captured on the sales order and then cogs is expensed later and it is hard to track how profitable a sale really is. At previous company’s I have worked for, we would not close a sales order until all costs have been received/invoiced. Is this the way AX 2012 v2 should be as well? If so, what is the correct procedure on doing this? If there is a more efficient way, I would appreciate any guidance.

Thank you!