This Ecom navigation is shown if the navigation tag 'shop' has been set on the page.
All products have a VariantInfo property, which contains a tree of variant dimensions accessible via nested VariantInfo models; Model.VariantInfo.VariantInfo contains a list of level 1 variant options, and each of these variants options contain a list of level 2 variants, and so on. You also have access to prices, including PriceMin and PriceMax values for the nodes under the current level.
If this product has variants, you can fold out the variant tree below. The 'Variant - Add to Cart' section allows you to add a specific variant to cart.

The ProductViewModel has a property - ProductDiscounts - which returns a collection of product discounts which are active for this product.
The ImagePatternImages contains a list of images based on alternative image patterns defined for the context, typically the shop or another channel.
Asset Categories are available on the model, and you can render them in various ways. Links are a bit tricky, you probably want to fetch a label and a value
As of 9.12, Field Display Groups are available on the ProductViewModel. They must have the flag 'Use in frontend' set, of course.