I dont really want to have all funds put into a single wallet and just check the transactions to see how much funds a customer has.
but that is the best way and pretty much every bitcoin exchange/payment processor does that.
This. A database that tracks deposits and withdrawals.
Of course, it depends on the purpose of the web site. If it is merely to store bitcoins or hold for collateral then it might be enough to create an address per depositor and just track that and the private key.