I've never had it take more than an hour, even with 6 people. Odds are you guys are analyzing the trades too much.
There's a variant I always play with that I think improves the game immensely, and that's play with everyone's hand face-up in front of them. This makes it easy to see who has what, so you won't have to ask 'does anyone have a blue bean?' because you can just look around the table and see for yourself. If anything, this actually adds more strategy to the game as you can use what other players have more to your advantage: "Normally this wouldn't be a good trade, but since you're going to have to plant that next turn and prematurely harvest one of your valuable fields why don't you do it anyway?"
If you still find this doesn't speed things up, you can try one of these variants to adjust when the end of the game arrives:
Have everyone draw one more card per turn, 4 instead of 3 in a 3-5 player game and 5 instead of 4 in a 6-7 player game. This is probably the least intrusive as just gives you more trading options.
Only go through the deck 2 times instead of 3. This will make for a shorter game, but IMHO it's a little less interesting.
Put a timer on 45 minutes and stop at the end of the players turn when it goes off. This should only be an absolute last resort, but it will make people play a bit faster since they know that they only have a limited amount of time. Of course, you'll have to be careful people don't purposely waste time to deny their left-hand opponent that last turn he needs to plant his cocoa been before time runs out...