I just finished my first Snipcart project and I'm in the process of making a plugin for browsing orders and customers from the Craft control panel. Lindsey D's got the landscape covered with his answer so I can at least share my experience with Snipcart:
Snipcart
For those who somehow skipped other answers or haven't looked at Snipcart, it's a JavaScript cart service that's focused on being quick and easy to implement. You define product links with some data
markup, include their cart JavaScript, and get a modal (guest+member) cart and checkout flow that you can style as needed. It can work with physical products, downloads, somewhat configurable products, and it comes with support for flexible promotional code options. There's a somewhat limited (but useful) control panel, integration with a handful of payment gateways, and the option of using live shipping rates from different (selectable) carriers.
Snipcart is not as full-featured as something like Shopify—the reporting is fairly basic and we're hoping for gift certificate support, for example. My client asked to customize the specific shipping speeds/services offered by carriers, but at the time of this answer it's not possible; you can only toggle one carrier or another, not the individual services from that carrier. These limitations are the tradeoffs you get with Snipcart since it's young: it's astonishingly easy to get working right now, but if a particular feature doesn't exist there's not much you can do other than ask and wait.
Team Snipcart
Snipcart's team is small but dedicated and incredibly responsive. It's abundantly clear that they're working hard on building and refining their product. Charles responded quickly and thoughtfully to every question I had, even the annoying didn't-RTFM ones. He was willing to take feature requests, help troubleshoot when I had issues, and he's a nice guy to boot.
Sometimes merely asking about how to do something would result in a feature magically appearing or a problem being fixed.
Integration
If you can define your products in a way that works, you're basically done. There are JavaScript and REST APIs and webhook support for limited extensibility. The Snipcart folks are aware of Craft, to the point of suggesting Craft-specific inventory management on their blog.
Snipcart was easy to drop in and immediately get a working cart. (And we're using Stripe, which is always dreamy in my experience.) Overriding/customizing cart styles was painless, even though Snipcart could change the base cart markup at any time and require some adjustment.
Integration with Stripe was perfectly smooth, in test mode and in live mode—not a single issue or hiccup. Snipcart was available and fast 100% of the time, and every order has been captured and charged flawlessly as you'd expect. (We had some initial configuration issues on our end that we quickly worked out, but those weren't Snipcart's fault.)
We had an awkward account-juggling process since there's only one set of administrative credentials per Snipcart account. We ended up creating a new client-owned account and reconfiguring it for launch. Not a big deal, but it'd be nice to see multiple account users as an option. You can have multiple private API keys, hence the Craft plugin I'm working on for browsing orders/customers.
Conclusion
Snipcart's definitely the scrappy new kid on the block, this simple integration has gone pretty well, and I would look to use Snipcart again for the right project. For a store with more intense/complicated needs, Shopify, Commerce, or Sprout Commerce might give you more control at the expense of more development time.