QB generates COGS automatically only for inventory type items. For other items (service & non-inventory) the costs are tabulated from purchases - but QB doesnt know how those costs allocate to which customer - unless you tell it. To have customer/job costing for those items you need to breakdown the purchases into multiple lines and put the customer name on each. But this is often impractical for purchases of services and items that are used for many customers.
If you explain your situation there might be some ways to create better cost tracking