Forum Moderators: buckworks
If you can give the customer an accurate shipping cost early in their shopping experience do so. If you need to collect information from them (like a zip code) in order to estimate shipping, put that prominently on the shopping cart page and let them enter it whenever they want.
I avoid the issue completely by offering free shipping. But that won't work for a lot of markets due to slim margins. It's been discussed here before that free shipping is often an incentive that buyer's can't refuse - they think they're getting something for free even though the items are priced to make it possible to ship them at no extra cost.
You could simplify it by setting a shipping cost based on dollar amount. If your products have very different shipping costs not relative to their price, that won't really work (i.e., a cheap but expensive to ship item).