I used CafePress for a while, but their prices are outrages. I was barely making $3 off a t-shirt sale because I didn't want to overcharge (you can set your own prices, but CafePress takes a huge chunk of the sale). I dropped them as soon as I could.
Now I just use PayPal to accept payments of my merchandise, and I get all of my merchandise made up in bulk. In the long run (as long as you have a readership that will buy things from you) this is more cost effective and gives you a better chance to make a profit* (more on that below if you want to read it; I realize you're asking more about the website function itself). I just put up an image and description next to a PayPal button and I'm good to go.
Recently I started playing around with OpenCart, a free PHP based shopping cart software, and after a couple of months of fiddling with it I'm of the mindset that I'm probably better off sticking with using PayPal buttons built into a page. There are other free cart softwares out there, but at the moment I don't want to deal with them.
*I believe I was selling my CafePress shirts for $20 (not including shipping), and, like I said, I was only making about a $3 profit per sale on that. However, when I did a run of 12 t-shirts (based on preorders), it cost me $108, which broke down to $9/per shirt. I sold them for $18 (shipping included, which at the time was only a couple of bucks). So I made a profit of almost $7 per shirt on that venture.