Building a Product Page
In this article we'll show you how to build a product page using best practices.
Getting Current Product
    
    Ucommerce.Api.ICatalogContext catalogContext = Ucommerce.Infrastructure.ObjectFactory.Instance.Resolve<ICatalogContext>();
    Ucommerce.Search.Models.Product currentProduct = catalogContext.CurrentProduct;
               
    
Variants
If you have your product definition for the current product
    
    Ucommerce.Api.ICatalogLibrary catalogLibrary = Ucommerce.Infrastructure.ObjectFactory.Instance.Resolve<ICatalogLibrary>();
    Ucommerce.Search.ResultSet<Ucommerce.Search.Models.Product> variants = catalogLibrary.GetVariants(currentProduct);
    
    
Prices
    
    var currentPriceGroup = catalogContext.CurrentPriceGroup;
    
    var unitPrice = new Money(currentProduct.UnitPrices[currentPriceGroup.Name] * (1.0M + currentPriceGroup.TaxRate), currentPriceGroup.CurrencyISOCode).ToString();
    var withoutVat = new Money(currentProduct.UnitPrices[currentPriceGroup.Name], currentPriceGroup.CurrencyISOCode).ToString();
    var vat = new Money(currentProduct.UnitPrices[currentPriceGroup.Name] * currentPriceGroup.TaxRate, currentPriceGroup.CurrencyISOCode).ToString();
         
    
Properties
    
    object myDynamicProperty = currentProduct["fieldName"];
    string image = currentProduct.PrimaryImageUrl;