Advice on getting custom functionality for my website

I’m looking to get some custom functionality for my website. Here’s the problem I want to solve. I’m in the acne niche and I often write about studies showing promising results with this or that ingredient (say vitamin C or green tea extract). The problem is I don’t have good way to help my readers to find these products. So I want to build a database of skincare products into my site.

Having never done anything like this, I was hoping the experts here could set me on the right track before I get started.

Here’s the data I would like to see for each product:

* Product name and image

* Price

* Link to the product

* Star rating

* Brief commentary on the product

* Expert reviews from other websites, basically a brief summary of the review and link to the site

* Ability for users to leave their own reviews

* Average customer rating

* Active ingredients with data for each ingredient being pulled from the ingredient database entries

These fields would be filled manually when I create the entry for each product

I think this would require 2 types of database entries:

* The product itself

* Entry for each ingredient. The ingredient entries would contain description of efficacy and perhaps links to supporting studies.

I would also need custom post types or page templates for displaying the data for each product and ingredient.

Could this be done with Custom Press plugin? Do I need to get a custom plugin built for this? Or should this be handles outside WP?