The last way you might choose to access the products in your database would be through WP_Query.
This is the original WordPress query class and offers the most flexibility and functionality.
WooCommerce products are after all just posts in your database, so you can query posts with the type “product” and this would give you all of the features of WP_Query.
The drawback is that it’s not designed specifically for querying products so you need to know what you’re doing, and it’s also possible that WooCommerce will change the way they deal with product data.
THis means that it wouldn’t be a future-proof way of handling things, or the easiest way of handling things.
But it is certainly the most advanced method and would give you the most options.