Has been a while since I used MySQL, am I reading your graphic correctly? More than 30 million select statements per hour of uptime? Seems a bit excessive, especially if you are seeing around 150 users concurrently.
If that's correct then I'd be looking at your client's modifications as the probable cause before either trying config tweaks or throwing hardware at the problem.
Do you have a dev box which you can clone and a testing suite that can mimic many sessions? If so I would try removing the mods to diagnose.
I'm not familiar with CS Cart but I've seen SQL server performance killed by recursive views, cursor queries and/or bad joins. Have you any data on which queries are consuming all your processing?