Perhaps the prices could be "fuzzed" within a range. ie, the seller puts up a product and says that it can sell for between 1.0 and 1.2 BTC. The buyer agrees to buy it and initiates the transaction (or gets an escrow agent to initiate it), and the system picks a uniformly random value between 1.0 and 1.2 BTC to create the transaction. With enough overlapping price ranges, you wouldn't know which transaction price links to which product. Sellers who expect to get paid 1.0 BTC for their product could pick a range like 0.9 to 1.1 BTC, knowing they would get that, on average, over many transactions.