You could use Drupal (7.x).
It’s a CMS/framework, written in PHP, and licensed under GPL 2.0 (thus Free/Libre Open Source).
It has, without a doubt, a great dev community. The core as well as every module has an own issue tracker (for support, bugs, and features requests). You can ask for help in the IRC chat or the forums. And we have an own Stack Exchange site, Drupal Answers. Many events and local groups worldwide.
To make sure that Drupal and its countless module are secure, there is a Security Team. If a vulnerability is found, the authors get contacted by the team to try to come up with a fix. After a fix is ready, an advisory about the vulnerability and its fix will be published.
Custom fields for products are one of the core strengths of Drupal. You can define custom fields (like text, image, URL, etc.) for any content type. HTML in descriptions is, of course, possible, too.
Ease of use: Well, this depends on your point of view. First-time users will probably be overwhelmed, trying to create a site with all the features they have in mind. As soon as you get the concepts Drupal uses, creating sites is hassle-free. Most sites can be built without having to program a single line yourself. (Ease of use for the site/shop users is, of course, a different story: this depends on what you build with Drupal.)
Drupal offers many shopping modules, but there are two very popular ones (quoting from my similar answer):
Drupal Commerce and Ubercart are the two best known shopping modules for Drupal 7 (and both already offer development versions for Drupal 8).
Variety of payment options: Both mentioned modules support the Payment module, which is an API that supports various payment sub-modules, including PayPal. For Commerce (if you don’t want/need the API) see Commerce PayPal. For Ubercart, PayPal seems to be integrated somehow (I didn’t use that): Using PayPal with Ubercart.
Personally, I use Commerce instead of Ubercart, but not because Ubercart would be bad, it’s just that I like the concepts used by Commerce more; however, I made this decision a long time ago, so things might have changed in the meantime. Back then, Ubercart was a well-known module also available for older Drupal versions, while Commerce started from scratch using much of Drupal 7’s new features. Ubercart was more like a "ready made" shop solution, while Commerce was more like a framework (making it more complex to get a running shop, but for the benefit of more flexibility).
Product management is another of Drupal’s strengths: You can have almost any information architecture, and thanks to the Views module (which almost any sites uses), you don’t have to fiddle with templates or custom modules for that.
You’ll use the same methods to structure the CMS backend (for admins/managers etc.) as well as the CMS frontend (your users): the nodes/pages just have different user/role permissions (for CRUD operations).
With Drupal, you can build any kind of website of any complexity (from one to thousands of pages); the shopping functionality of your choice will then integrate with your existing site.
FYI (quoting me again):
If you’re not familiar with Drupal and want to start a shop as fast as possible, have a look at the distribution Commerce Kickstart. It’s Drupal that comes pre-configured with Drupal Commerce and some other modules. I never used this distribtion myself, but I heard good things about it.