public static LineItem ToWebModel(this VirtoCommerceCartModuleWebModelLineItem serviceModel, Currency currency, Language language) { var webModel = new LineItem(currency, language); webModel.InjectFrom<NullableAndEnumValueInjecter>(serviceModel); if (serviceModel.TaxDetails != null) { webModel.TaxDetails = serviceModel.TaxDetails.Select(td => td.ToWebModel()).ToList(); } if (serviceModel.DynamicProperties != null) { webModel.DynamicProperties = serviceModel.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } webModel.DiscountTotal = new Money(serviceModel.DiscountTotal ?? 0, currency.Code); webModel.ExtendedPrice = new Money(serviceModel.ExtendedPrice ?? 0, currency.Code); webModel.IsGift = (bool)serviceModel.IsGift; webModel.IsReccuring = (bool)serviceModel.IsReccuring; webModel.Length = (decimal)(serviceModel.Length ?? 0); webModel.ListPrice = new Money(serviceModel.ListPrice ?? 0, currency.Code); webModel.PlacedPrice = new Money(serviceModel.PlacedPrice ?? 0, currency.Code); webModel.RequiredShipping = (bool)serviceModel.RequiredShipping; webModel.SalePrice = new Money(serviceModel.SalePrice ?? 0, currency.Code); webModel.TaxIncluded = (bool)serviceModel.TaxIncluded; webModel.Weight = (decimal)(serviceModel.Weight ?? 0); webModel.Width = (decimal)(serviceModel.Width ?? 0); return webModel; }
public static LineItem ToWebModel(this VirtoCommerceOrderModuleWebModelLineItem lineItem, IEnumerable<Currency> availCurrencies, Language language) { var webModel = new LineItem(); var currency = availCurrencies.FirstOrDefault(x => x.Equals(lineItem.Currency)) ?? new Currency(language, lineItem.Currency); webModel.InjectFrom(lineItem); webModel.Currency = currency; webModel.DiscountAmount = new Money(lineItem.DiscountAmount ?? 0, currency); if (lineItem.DynamicProperties != null) { webModel.DynamicProperties = lineItem.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } webModel.BasePrice = new Money(lineItem.BasePrice ?? 0, currency); webModel.Price = new Money(lineItem.Price ?? 0, currency); webModel.Tax = new Money(lineItem.Tax ?? 0, currency); if (lineItem.TaxDetails != null) { webModel.TaxDetails = lineItem.TaxDetails.Select(td => td.ToWebModel(currency)).ToList(); } return webModel; }
public static PaymentIn ToWebModel(this VirtoCommerceOrderModuleWebModelPaymentIn paymentIn, IEnumerable<Currency> availCurrencies, Language language) { var webModel = new PaymentIn(); var currency = availCurrencies.FirstOrDefault(x => x.Equals(paymentIn.Currency)) ?? new Currency(language, paymentIn.Currency); webModel.InjectFrom(paymentIn); if (paymentIn.ChildrenOperations != null) { webModel.ChildrenOperations = paymentIn.ChildrenOperations.Select(co => co.ToWebModel(availCurrencies, language)).ToList(); } webModel.Currency = currency; if (paymentIn.DynamicProperties != null) { webModel.DynamicProperties = paymentIn.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } webModel.Sum = new Money(paymentIn.Sum ?? 0, currency); webModel.Tax = new Money(paymentIn.Tax ?? 0, currency); return webModel; }
public static Operation ToWebModel(this VirtoCommerceOrderModuleWebModelOperation operation, IEnumerable<Currency> availCurrencies, Language language) { var operationWebModel = new Operation(); var currency = availCurrencies.FirstOrDefault(x => x.Equals(operation.Currency)) ?? new Currency(language, operation.Currency); ; operationWebModel.InjectFrom(operation); operationWebModel.Currency = currency; if (operation.ChildrenOperations != null) { operationWebModel.ChildrenOperations = operation.ChildrenOperations.Select(co => co.ToWebModel(availCurrencies, language)).ToList(); } if (operation.DynamicProperties != null) { operationWebModel.DynamicProperties = operation.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } operationWebModel.Sum = new Money(operation.Sum ?? 0, currency); operationWebModel.Tax = new Money(operation.Tax ?? 0, currency); return operationWebModel; }
public string ToAppRelative(string virtualPath, Store store, Language language) { var result = new StringBuilder("~"); //Do not add storeId to Url if it single or have strict defined Url if (store != null && !store.IsStoreUri(_workContext.RequestUrl)) { //Do not use store in url if it single if (_workContext.AllStores.Length > 1) { //Check that store exist for not exist store use current store = _workContext.AllStores.Contains(store) ? store : _workContext.CurrentStore; if (!virtualPath.Contains("/" + store.Id + "/")) { result.Append("/"); result.Append(store.Id); } } } //Do not use language in url if it single for store if (language != null && store != null && store.Languages.Count > 1) { language = store.Languages.Contains(language) ? language : store.DefaultLanguage; if (!virtualPath.Contains("/" + language.CultureName + "/")) { result.Append("/"); result.Append(language.CultureName); } } result.Append("/"); result.Append(virtualPath.TrimStart('~', '/')); return result.ToString(); }
/// <summary> /// Get app absolute storefront url with specified store and language /// </summary> /// <param name="input"></param> /// <param name="storeId"></param> /// <param name="languageCode"></param> /// <returns></returns> public static string AbsoluteUrl(string input, string storeId = null, string languageCode = null) { if (input == null) { return(string.Empty); } var themeAdaptor = (ShopifyLiquidThemeEngine)Template.FileSystem; Store store = null; storefrontModel.Language language = null; if (!string.IsNullOrEmpty(storeId)) { store = themeAdaptor.WorkContext.AllStores.FirstOrDefault(x => string.Equals(x.Id, storeId, StringComparison.InvariantCultureIgnoreCase)); } store = store ?? themeAdaptor.WorkContext.CurrentStore; if (!string.IsNullOrEmpty(languageCode)) { language = store.Languages.FirstOrDefault(x => string.Equals(x.CultureName, languageCode, StringComparison.InvariantCultureIgnoreCase)); } language = language ?? themeAdaptor.WorkContext.CurrentLanguage; var retVal = themeAdaptor.UrlBuilder.ToAppAbsolute(input, store, language); return(retVal); }
public virtual Language ToLiquidLanguage(StorefrontModel.Language language) { var result = new Language(); result.InjectFrom <StorefrontModel.Common.NullableAndEnumValueInjecter>(language); return(result); }
public static Language ToShopifyModel(this StorefrontModel.Language storefrontModel) { var shopifyModel = new Language(); shopifyModel.InjectFrom <StorefrontModel.Common.NullableAndEnumValueInjecter>(storefrontModel); return(shopifyModel); }
public static Model.Order.Shipment ToWebModel(this VirtoCommerceOrderModuleWebModelShipment shipment, IEnumerable<Currency> availCurrencies, Language language) { var webModel = new Model.Order.Shipment(); var currency = availCurrencies.FirstOrDefault(x => x.Equals(shipment.Currency)) ?? new Currency(language, shipment.Currency); webModel.InjectFrom(shipment); if (shipment.ChildrenOperations != null) { webModel.ChildrenOperations = shipment.ChildrenOperations.Select(co => co.ToWebModel(availCurrencies, language)).ToList(); } webModel.Currency = currency; if (shipment.DeliveryAddress != null) { webModel.DeliveryAddress = shipment.DeliveryAddress.ToWebModel(); } if (shipment.Discount != null) { webModel.Discount = shipment.Discount.ToWebModel(availCurrencies, language); } webModel.DiscountAmount = new Money(shipment.DiscountAmount ?? 0, currency); if (shipment.DynamicProperties != null) { webModel.DynamicProperties = shipment.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } if (shipment.InPayments != null) { webModel.InPayments = shipment.InPayments.Select(p => p.ToWebModel(availCurrencies, language)).ToList(); } if (shipment.Items != null) { webModel.Items = shipment.Items.Select(i => i.ToWebModel(availCurrencies, language)).ToList(); } if (shipment.Packages != null) { webModel.Packages = shipment.Packages.Select(p => p.ToWebModel(availCurrencies, language)).ToList(); } webModel.Sum = new Money(shipment.Sum ?? 0, currency); webModel.Tax = new Money(shipment.Tax ?? 0, currency); if (shipment.TaxDetails != null) { webModel.TaxDetails = shipment.TaxDetails.Select(td => td.ToWebModel(currency)).ToList(); } return webModel; }
public virtual Language ToLiquidLanguage(StorefrontModel.Language language) { var factory = ServiceLocator.Current.GetInstance <ShopifyModelFactory>(); var result = factory.CreateLanguage(); result.InjectFrom <StorefrontModel.Common.NullableAndEnumValueInjecter>(language); return(result); }
public static QuoteRequest ToWebModel(this VirtoCommerceQuoteModuleWebModelQuoteRequest serviceModel, IEnumerable<Currency> availCurrencies, Language language) { var currency = availCurrencies.FirstOrDefault(x => x.Equals(serviceModel.Currency)) ?? new Currency(language, serviceModel.Currency); var webModel = new QuoteRequest(currency, language); webModel.InjectFrom<NullableAndEnumValueInjecter>(serviceModel); webModel.Currency = currency; webModel.Language = language; webModel.ManualRelDiscountAmount = new Money(serviceModel.ManualRelDiscountAmount ?? 0, currency); webModel.ManualShippingTotal = new Money(serviceModel.ManualShippingTotal ?? 0, currency); webModel.ManualSubTotal = new Money(serviceModel.ManualSubTotal ?? 0, currency); if (serviceModel.Addresses != null) { webModel.Addresses = serviceModel.Addresses.Select(a => a.ToWebModel()).ToList(); } if (serviceModel.Attachments != null) { webModel.Attachments = serviceModel.Attachments.Select(a => a.ToWebModel()).ToList(); } if (!string.IsNullOrEmpty(serviceModel.Coupon)) { webModel.Coupon = new Coupon { AppliedSuccessfully = true, Code = serviceModel.Coupon }; } if (serviceModel.DynamicProperties != null) { webModel.DynamicProperties = serviceModel.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } if (serviceModel.Items != null) { webModel.Items = serviceModel.Items.Select(i => i.ToWebModel(currency)).ToList(); } // TODO if (serviceModel.ShipmentMethod != null) { } if (serviceModel.TaxDetails != null) { webModel.TaxDetails = serviceModel.TaxDetails.Select(td => td.ToWebModel(currency)).ToList(); } if (serviceModel.Totals != null) { webModel.Totals = serviceModel.Totals.ToWebModel(currency); } return webModel; }
public static Discount ToWebModel(this VirtoCommerceOrderModuleWebModelDiscount serviceModel, IEnumerable<Currency> availCurrencies, Language language) { var webModel = new Discount(); webModel.InjectFrom(serviceModel); var currency = availCurrencies.FirstOrDefault(x => x.Equals(serviceModel.Currency)) ?? new Currency(language, serviceModel.Currency); webModel.Amount = new Money(serviceModel.DiscountAmount ?? 0, currency); return webModel; }
public static ProductPrice ToWebModel(this VirtoCommercePricingModuleWebModelPrice price, IEnumerable<Currency> availCurrencies, Language language) { var currency = availCurrencies.FirstOrDefault(x => x.Equals(price.Currency)) ?? new Currency(language, price.Currency); var retVal = new ProductPrice(currency); retVal.InjectFrom(price); retVal.Currency = currency; retVal.ListPrice = new Money(price.List ?? 0d, currency); retVal.SalePrice = price.Sale == null ? retVal.ListPrice : new Money(price.Sale ?? 0d, currency); retVal.ActiveDiscount = new Discount { Amount = new Money(currency) }; return retVal; }
public virtual Cart ToLiquidCart(StorefrontModel.Cart.ShoppingCart cart, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var result = new Cart(); result.Items = cart.Items.Select(x => ToLiquidLineItem(x, language, urlBuilder)).ToList(); result.ItemCount = cart.Items.Count(); result.Note = cart.Comment; result.TotalPrice = cart.SubTotal.Amount * 100; result.TotalWeight = cart.Weight; return(result); }
public static CustomerOrder ToWebModel(this VirtoCommerceOrderModuleWebModelCustomerOrder order, IEnumerable<Currency> availCurrencies, Language language) { var webModel = new CustomerOrder(); var currency = availCurrencies.FirstOrDefault(x=> x.Equals(order.Currency)) ?? new Currency(language, order.Currency); webModel.InjectFrom(order); if (order.Addresses != null) { webModel.Addresses = order.Addresses.Select(a => a.ToWebModel()).ToList(); } if (order.ChildrenOperations != null) { webModel.ChildrenOperations = order.ChildrenOperations.Select(co => co.ToWebModel(availCurrencies, language)).ToList(); } webModel.Currency = currency; webModel.DiscountAmount = new Money(order.DiscountAmount ?? 0, currency); if (order.DynamicProperties != null) { webModel.DynamicProperties = order.DynamicProperties.Select(dp => dp.ToWebModel()).ToList(); } if (order.InPayments != null) { webModel.InPayments = order.InPayments.Select(p => p.ToWebModel(availCurrencies, language)).ToList(); } if (order.Items != null) { webModel.Items = order.Items.Select(i => i.ToWebModel(availCurrencies, language)).ToList(); } if (order.Shipments != null) { webModel.Shipments = order.Shipments.Select(s => s.ToWebModel(availCurrencies, language)).ToList(); } webModel.Sum = new Money(order.Sum ?? 0, currency); webModel.Tax = new Money(order.Tax ?? 0, currency); if (order.TaxDetails != null) { webModel.TaxDetails = order.TaxDetails.Select(td => td.ToWebModel(currency)).ToList(); } return webModel; }
public virtual Language ToLiquidLanguage(StorefrontModel.Language language) { var result = new Language(); result.CultureName = language.CultureName; result.NativeName = language.NativeName; result.ThreeLeterLanguageName = language.ThreeLeterLanguageName; result.ThreeLetterRegionName = language.ThreeLetterRegionName; result.TwoLetterLanguageName = language.TwoLetterLanguageName; result.TwoLetterRegionName = language.TwoLetterRegionName; return(result); }
public static ShipmentItem ToWebModel(this VirtoCommerceOrderModuleWebModelShipmentItem shipmentItem, IEnumerable<Currency> availCurrencies, Language language) { var webModel = new ShipmentItem(); webModel.InjectFrom(shipmentItem); if (shipmentItem.LineItem != null) { webModel.LineItem = shipmentItem.LineItem.ToWebModel(availCurrencies, language); } return webModel; }
public static ShipmentPackage ToWebModel(this VirtoCommerceOrderModuleWebModelShipmentPackage shipmentPackage, IEnumerable<Currency> currencies, Language language) { var webModel = new ShipmentPackage(); webModel.InjectFrom(shipmentPackage); if (shipmentPackage.Items != null) { webModel.Items = shipmentPackage.Items.Select(i => i.ToWebModel(currencies, language)).ToList(); } return webModel; }
public virtual Cart ToLiquidCart(StorefrontModel.Cart.ShoppingCart cart, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var factory = ServiceLocator.Current.GetInstance <ShopifyModelFactory>(); var result = factory.CreateCart(); result.Items = cart.Items.Select(x => ToLiquidLineItem(x, language, urlBuilder)).ToList(); result.ItemCount = cart.Items.Count(); result.Note = cart.Comment; result.TotalPrice = cart.SubTotal.Amount * 100; result.TotalWeight = cart.Weight; return(result); }
public static ShippingMethod ToWebModel(this VirtoCommerceCartModuleWebModelShippingMethod shippingMethod, IEnumerable<Currency> availCurrencies, Language language) { var shippingMethodModel = new ShippingMethod(); shippingMethodModel.InjectFrom(shippingMethod); var currency = availCurrencies.FirstOrDefault(x=> x.Equals(shippingMethod.Currency)) ?? new Currency(language, shippingMethod.Currency); if (shippingMethod.Discounts != null) { shippingMethodModel.Discounts = shippingMethod.Discounts.Select(d => d.ToWebModel(availCurrencies, language)).ToList(); } shippingMethodModel.Price = new Money(shippingMethod.Price ?? 0, currency); return shippingMethodModel; }
public static Category ToWebModel(this VirtoCommerceCatalogModuleWebModelCategory category, Language currentLanguage, VirtoCommerceCatalogModuleWebModelProduct[] products = null) { var retVal = new Category(); retVal.InjectFrom<NullableAndEnumValueInjecter>(category); if (category.SeoInfos != null) retVal.SeoInfo = category.SeoInfos.Select(s => s.ToWebModel()).FirstOrDefault(x => x.Language == currentLanguage); if (category.Images != null) { retVal.Images = category.Images.Select(i => i.ToWebModel()).ToArray(); retVal.PrimaryImage = retVal.Images.FirstOrDefault(); } return retVal; }
public static LineItem ToLineItem(this Product product, Language language, int quantity) { var lineItemWebModel = new LineItem(product.Price.Currency, language); lineItemWebModel.InjectFrom<NullableAndEnumValueInjecter>(product); var currency = product.Price.Currency; lineItemWebModel.ImageUrl = product.PrimaryImage != null ? product.PrimaryImage.Url : null; lineItemWebModel.ListPrice = product.Price.ListPrice; lineItemWebModel.SalePrice = product.Price.GetTierPrice(quantity).Price; lineItemWebModel.ProductId = product.Id; lineItemWebModel.Quantity = quantity; lineItemWebModel.ThumbnailImageUrl = product.PrimaryImage != null ? product.PrimaryImage.Url : null; return lineItemWebModel; }
public static LineItem ToLineItem(this Product product, Language language, int quantity) { var lineItemWebModel = new LineItem(product.Price.Currency, language); lineItemWebModel.InjectFrom<NullableAndEnumValueInjecter>(product); var currency = product.Price.Currency; lineItemWebModel.ImageUrl = product.PrimaryImage.Url; lineItemWebModel.ListPrice = product.Price.ListPrice; lineItemWebModel.SalePrice = product.Price.SalePrice; lineItemWebModel.PlacedPrice = product.Price.ActualPrice; lineItemWebModel.ExtendedPrice = lineItemWebModel.PlacedPrice * quantity; lineItemWebModel.ProductId = product.Id; lineItemWebModel.Quantity = quantity; lineItemWebModel.TaxTotal = new Money(0, currency.Code); lineItemWebModel.ThumbnailImageUrl = product.PrimaryImage.Url; return lineItemWebModel; }
public static LineItem ToShopifyModel(this StorefrontModel.Cart.LineItem lineItem, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var converter = new ShopifyModelConverter(); return(converter.ToLiquidLineItem(lineItem, language, urlBuilder)); }
public string ToAppAbsolute(string virtualPath, Store store, Language language) { var retVal = VirtualPathUtility.ToAbsolute(ToAppRelative(virtualPath, store, language)); return retVal; }
public static LineItem ToShopifyModel(this StorefrontModel.Order.LineItem lineItem, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var converter = ServiceLocator.Current.GetInstance <ShopifyModelConverter>(); return(converter.ToLiquidLineItem(lineItem, language, urlBuilder)); }
public virtual LineItem ToLiquidLineItem(StorefrontModel.Cart.LineItem lineItem, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var factory = ServiceLocator.Current.GetInstance <ShopifyModelFactory>(); var result = factory.CreateLineItem(); result.InjectFrom <StorefrontModel.Common.NullableAndEnumValueInjecter>(lineItem); //shopifyModel.Product = lineItem.Product.ToShopifyModel(); result.Fulfillment = null; // TODO result.Grams = lineItem.Weight ?? 0m; result.Image = new Image { Alt = lineItem.Name, Name = lineItem.Name, ProductId = lineItem.ProductId, Src = lineItem.ImageUrl }; result.LinePrice = lineItem.ExtendedPrice.Amount * 100; result.LinePriceWithTax = lineItem.ExtendedPriceWithTax.Amount * 100; result.Price = lineItem.PlacedPrice.Amount * 100; result.PriceWithTax = lineItem.PlacedPriceWithTax.Amount * 100; result.Title = lineItem.Name; result.VariantId = lineItem.ProductId; result.Properties = new MetafieldsCollection("properties", language, lineItem.DynamicProperties); return(result); }
public virtual LineItem ToLiquidLineItem(StorefrontModel.Order.LineItem lineItem, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var factory = ServiceLocator.Current.GetInstance <ShopifyModelFactory>(); var result = factory.CreateLineItem(); result.InjectFrom <StorefrontModel.Common.NullableAndEnumValueInjecter>(lineItem); result.Fulfillment = null; // TODO result.Grams = lineItem.Weight ?? 0m; result.Image = new Image { Alt = lineItem.Name, Name = lineItem.Name, ProductId = lineItem.ProductId, Src = lineItem.ImageUrl }; result.LinePrice = lineItem.ExtendedPrice.Amount * 100; result.LinePriceWithTax = lineItem.ExtendedPriceWithTax.Amount * 100; result.Price = lineItem.PlacedPrice.Amount * 100; result.PriceWithTax = lineItem.PlacedPriceWithTax.Amount * 100; result.Title = lineItem.Name; result.Type = lineItem.ObjectType; result.Url = urlBuilder.ToAppAbsolute("/product/" + lineItem.ProductId); result.Product = new Product { Id = result.ProductId, Url = result.Url }; return(result); }
public static Cart ToShopifyModel(this StorefrontModel.Cart.ShoppingCart cart, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var converter = ServiceLocator.Current.GetInstance <ShopifyModelConverter>(); return(converter.ToLiquidCart(cart, language, urlBuilder)); }
public static Cart ToShopifyModel(this StorefrontModel.Cart.ShoppingCart cart, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var converter = new ShopifyModelConverter(); return(converter.ToLiquidCart(cart, language, urlBuilder)); }
public static Language ToShopifyModel(this StorefrontModel.Language language) { var converter = ServiceLocator.Current.GetInstance <ShopifyModelConverter>(); return(converter.ToLiquidLanguage(language)); }
public static Language ToShopifyModel(this StorefrontModel.Language language) { var converter = new ShopifyModelConverter(); return(converter.ToLiquidLanguage(language)); }
public virtual LineItem ToLiquidLineItem(StorefrontModel.Cart.LineItem lineItem, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var result = new LineItem(); result.Id = lineItem.Id; result.Quantity = lineItem.Quantity; result.RequiresShipping = lineItem.RequiredShipping; result.Quantity = lineItem.Quantity; result.Sku = lineItem.Sku; result.Title = lineItem.Name; result.Type = lineItem.ProductType; result.Url = lineItem.ImageUrl; result.Fulfillment = null; // TODO result.Grams = lineItem.Weight ?? 0m; result.Image = new Image { Alt = lineItem.Name, Name = lineItem.Name, ProductId = lineItem.ProductId, Src = lineItem.ImageUrl }; result.LinePrice = lineItem.ExtendedPrice.Amount * 100; result.LinePriceWithTax = lineItem.ExtendedPriceWithTax.Amount * 100; result.Price = lineItem.PlacedPrice.Amount * 100; result.PriceWithTax = lineItem.PlacedPriceWithTax.Amount * 100; result.Title = lineItem.Name; result.VariantId = lineItem.ProductId; result.Properties = new MetafieldsCollection("properties", language, lineItem.DynamicProperties); return(result); }
public virtual LineItem ToLiquidLineItem(StorefrontModel.Order.LineItem lineItem, StorefrontModel.Language language, IStorefrontUrlBuilder urlBuilder) { var result = new LineItem(); result.Id = lineItem.Id; result.Quantity = lineItem.Quantity ?? 1; result.Sku = lineItem.Sku; result.Title = lineItem.Name; result.Url = lineItem.ImageUrl; result.Fulfillment = null; // TODO result.Grams = (decimal?)lineItem.Weight ?? 0m; result.Image = new Image { Alt = lineItem.Name, Name = lineItem.Name, ProductId = lineItem.ProductId, Src = lineItem.ImageUrl }; result.LinePrice = lineItem.ExtendedPrice.Amount * 100; result.LinePriceWithTax = lineItem.ExtendedPriceWithTax.Amount * 100; result.Price = lineItem.PlacedPrice.Amount * 100; result.PriceWithTax = lineItem.PlacedPriceWithTax.Amount * 100; result.Title = lineItem.Name; result.Type = lineItem.ObjectType; result.Url = urlBuilder.ToAppAbsolute("/product/" + lineItem.ProductId); result.Product = new Product { Id = result.ProductId, Url = result.Url }; return(result); }