The only one limitation I see here that not all wallets support checking balance and operating fund for a wallet that has a lot of derived addresses.
Actually every (proper) wallet does that.
They check each address one-by-one (increasing a 'counter' when deriving keys) and stop when they have found X addresses without a transactions (X = address gap limit; can be set in settings).
However i always can do this by myself iterating over generated addresses manually and collecting funds, am I right ?
Of course.
You can always do it yourself. And you can always use a wallet to do it for you (electrum does that pretty nicely, gap limit can be adjusted easily and consecutive checking for balances works flawlessely).
You won't have any disadvantage when using a new address for each customer/order. In fact you will keep the privacy of your customers and you will somehow 'hide' the total amount of money/transactions you received.