Here's what we need: Merchants need to be able to allow customers to pay in bitcoin without ever having to have bitcoin. Here is how it would work:

A merchant would get an account with an exchange. He would put a little bitcoin icon on his website. The customer would see it and click the button.

Clicking the button would query the exchange for the current price and calculate a price in bitcoins, possibly with a markup, and an address to send them to. The customer would then send the coins. The exchange would then sell the coins and credit the merchant, minus a small fee. The merchant would never at any point own a bitcoin.

Things to think about: when are the bitcoins sold? The price fluctuates. The exchange has to quote a price to the customer and then stand by it. If it sells at that point it can be sure that it won't lose money when the price suddenly goes up. However that is risky for the exchange because it has to sell some of its bitcoins simply in response to someone clicking on a button. Someone could click the button hundreds of times, forcing a massive sell-off. Not good.

Perhaps the exchange should wait until the money has been sent, when there are 0 confirmations. In this case it is still vulnerable to attacks, but they would have to be more sophisticated, involving broadcasting false transactions. Additionally now the quote will be slightly out of date. There is a risk of the exchange losing money due to rate changes, though of course it could gain as well.

The next option is waiting for confirmation before selling the coins. This makes it harder/impossible to manipulate the market but exposes the exchange to some risk if the currency fluctuates.

For an exchange this could be a major source of revenue. It would get money from the merchant. It would create more demand for people to buy bitcoins on exchanges so it would get some of that traffic (all exchanges would benefit). There would be some risk due to fluctuating exchange rates but if that were a concern it could charge a little bit of a markup, like maybe just by quoting a price 2% higher than it should (so if the item should cost 1 btc the customer would have to pay 1.02 and the merchant would only get 1 btc worth of usd (well actually a little less, because he is paying a fee too).

Actually another way that this could work is that there would be no merchant fee. No merchant fee? Merchants would love that. It means pushing the cost onto the bitcoin consumer. I think that nearly all of us would pay 1% more if we could pay in bitcoin.

I'm pretty sure this already exists, bit-pay perhaps? I personally don't trust or use any third parties for accepting bitcoins on my site, but I've seen the sales pitches of some of these services, one was touting the ability for the merchant to set a configurable percentage of their exposure to the bitcoin market - i.e. one could say immediately sell 100% of the bitcoins for USD, or only 50% or 75% of them, etc.

Hmm, yes. Bit-pay it is. I'm not sure how they can do it though, since they aren't an exchange and thus would have to pay exchange fees. Perhaps they have a special rate, or perhaps they are owned by an exchange.

Hmm, yes. Bit-pay it is. I'm not sure how they can do it though, since they aren't an exchange and thus would have to pay exchange fees. Perhaps they have a special rate, or perhaps they are owned by an exchange.

You pay 3% fee to use their service if you want to receive USDs without caring about currency exchange rates and market fluctuation.

Bit-Pay.com allows merchants to set prices in either dollars or bitcoins and then receive either dollars or bitcoin as payment. We have several tools to choose from, we have our own cart or you can use opencart (we'll be adding more), you can integrate directly with our JSON API. On the back end you get transaction history along with daily sales charts. And, of course, we're constantly expanding our feature set. If you want to take dollars, we charge a flat 2.99% per transaction (no minimums, no base charge, no other fees at all).