Yes, custom fields plugins are the best solution for building dynamic websites. It is possible to use premade premium themes with such functions or try your best with WooCommerce to turn it into what you need. But you will never get the flexibility and sufficient functionality. Both mentioned solutions will work more like workarounds.