And talking about downtime, see that you get a solid webhost. A clients shop had ~1h downtime a day (!) that nobody could explain. Same setup on a new host runs for a couple of weeks now without issues.
Several people mentioned Magento already. For your project, I'd stongly add suggest you should ignore that. While Magento has loads of features build it, it also misses some, I'd consider important. You can not create a custom invoice template out of the box for example.
If you are a somewhat experienced developer, Sylius might give you a good experience and code quality. We build a shop on an earlier version, and it runs solid - not a single downtime in years.
Is is worth mentioning that the german police has stated, that the only connection between this website and the people raided is, that they process donations for riseup. They have nothing to do with this website. And the police never thought, that they have.
We're huge fans of Bolt (http://bolt.cm) for small and medium sized websites. Its based on Synfony (PHP) and Twig and allows super easy creation of content types by configuration.