public static string BuildShopUrl()

in src/Foundation/CommerceServer/code/Managers/CatalogUrlManager.cs [263:330]


        public static string BuildShopUrl(string categoryId, string categoryName, string productId, string productName, string variantId, string variantName, string catalogName)
        {
            Assert.ArgumentNotNullOrEmpty(categoryId, "categoryId");

            var route = new StringBuilder("/");

            if (IncludeLanguage)
            {
                route.Append(Sitecore.Context.Language.Name);
                route.Append("/");
            }

            var isGiftCard = (productId == StorefrontManager.CurrentStorefront.GiftCardProductId);
            if (isGiftCard)
            {
                route.Append(ProductItemResolver.LandingUrlRoute);
                route.Append("/");
                route.Append(ProductItemResolver.BuyGiftCardUrlRoute);
            }
            else
            {
                if (!string.IsNullOrEmpty(catalogName))
                {
                    route.Append(EncodeUrlToken(catalogName, true));
                    route.Append("/");
                }

                route.Append(ProductItemResolver.ShopUrlRoute);
                route.Append("/");

                if (!string.IsNullOrEmpty(categoryName))
                {
                    route.Append(EncodeUrlToken(categoryName, true));
                    route.Append(_urlTokenDelimiter);
                }

                route.Append(EncodeUrlToken(categoryId, false));

                if (!string.IsNullOrEmpty(productId))
                {
                    route.Append("/");

                    if (!string.IsNullOrEmpty(productName))
                    {
                        route.Append(EncodeUrlToken(productName, true));
                        route.Append(_urlTokenDelimiter);
                    }

                    route.Append(EncodeUrlToken(productId, false));

                    if (!string.IsNullOrEmpty(variantId))
                    {
                        route.Append("/");

                        if (!string.IsNullOrEmpty(variantName))
                        {
                            route.Append(EncodeUrlToken(variantName, true));
                            route.Append(_urlTokenDelimiter);
                        }

                        route.Append(EncodeUrlToken(variantId, false));
                    }
                }
            }

            var url = StorefrontManager.StorefrontUri(route.ToString());
            return url;
        }