Hide menu Last updated: Feb 13 2017
Area: Episerver Commerce Applies to versions: 10 and higher
Other versions:

Multi-market examples

This topic provides examples of using the Episerver Commerce ECF API to work with multi-market and warehouse features to change markets, get prices and discounts for markets, list warehouses and get inventories per warehouse.

Multi-market features

Changing market to display

Example of how to choose a market.

Example: Getting all available markets

public IEnumerable GetAvailableMarkets()
{
    var marketService = ServiceLocator.Current.GetInstance<IMarketService>();
    // Get all available markets.
    return marketService.GetAllMarkets();
}

Example: Getting current markets

public IMarket GetCurrentMarket()
{
    var currentMarketService = ServiceLocator.Current.GetInstance<ICurrentMarket>();
    // Get current markets.
    return currentMarketService.GetCurrentMarket();
}

Example: Setting current markets

public void SetCurrentMarket(MarketId marketId)
{
    var currentMarketService = ServiceLocator.Current.GetInstance<ICurrentMarket>();
    // Get current markets.
    currentMarketService.SetCurrentMarket(marketId);
}

Displaying entry listing, prices and discounts per market

Examples of how to display the entries listed with pricing and discount for a selected market.

Example: Getting the price for an entry per market

public Price GetSalePrice(Entry entry, decimal quantity)
{
    var currentMarketService = ServiceLocator.Current.GetInstance<ICurrentMarket>();
    var currentMarket = currentMarketService.GetCurrentMarket();
    return StoreHelper.GetSalePrice(entry, quantity, currentMarket);
}
Example: Getting discounts per market
public Price GetDiscountPrice(Entry entry)
{
    var currentMarketService = ServiceLocator.Current.GetInstance<ICurrentMarket>();
    var currentMarket = currentMarketService.GetCurrentMarket();
    return StoreHelper.GetDiscountPrice(entry, string.Empty, string.Empty, currentMarket);

}

Comments