public AmazonListing UpdateAmazonListing(AmazonListing amazonListing) { var productVariant = _productVariantService.GetProductVariantBySKU(amazonListing.ProductVariant.SKU); amazonListing.ProductVariant = productVariant; amazonListing.Brand = productVariant.Product.Brand != null ? productVariant.Product.Brand.Name : String.Empty; amazonListing.Condition = ConditionType.New; var currency = _ecommerceSettings.Currency(); amazonListing.Currency = (currency != null && !String.IsNullOrWhiteSpace(currency.Code))?currency.Code:CurrencyCode.GBP.GetDescription(); amazonListing.Manafacturer = productVariant.Product.Brand != null ? productVariant.Product.Brand.Name : String.Empty; amazonListing.MfrPartNumber = productVariant.ManufacturerPartNumber; amazonListing.Quantity = productVariant.TrackingPolicy == TrackingPolicy.Track ? _getStockRemainingQuantity.Get(productVariant) : 1000; amazonListing.Price = _productPricingMethod.GetUnitPrice(productVariant, 0m, 0m); amazonListing.SellerSKU = productVariant.SKU; amazonListing.Title = productVariant.DisplayName; amazonListing.StandardProductIDType = _amazonSellerSettings.BarcodeIsOfType; amazonListing.StandardProductId = productVariant.Barcode.Trim(); amazonListing.FulfillmentChannel = amazonListing.AmazonListingGroup.FulfillmentChannel ?? AmazonFulfillmentChannel.MFN; _amazonListingService.Save(amazonListing); return(amazonListing); }
public virtual string GetSelectOptionName(ProductVariant variant, bool showName = true, bool showOptionValues = true) { string title = string.Empty; if (!string.IsNullOrWhiteSpace(variant.Name) && showName) { title = variant.Name + " - "; } if (variant.OptionValues.Any() && showOptionValues) { title += string.Join(", ", variant.AttributeValuesOrdered.Select(value => value.Value)) + " - "; } title += _productPricingMethod.GetUnitPrice(variant, 0m, 0m).ToCurrencyFormat(); return(title); }
public IEnumerable <decimal> GetPrices(Product entity) { return(entity.Variants.Select(pv => _productPricingMethod.GetUnitPrice(pv, 0m, 0m))); }
public List <ProductCardModel> Get(List <Product> products) { var galleryIds = products.Select(product => product.Gallery.Id).ToList(); var productIds = products.Select(product => product.Id).ToList(); List <MediaFile> mediaFiles = _session.QueryOver <MediaFile>() .Where(file => file.MediaCategory.Id.IsIn(galleryIds)) .OrderBy(file => file.DisplayOrder) .Asc.Cacheable() .List().ToList(); List <ProductVariant> variants = _session.QueryOver <ProductVariant>() .Where(productVariant => productVariant.Product.Id.IsIn(productIds)) .Cacheable() .List().ToList(); var productCardModels = new List <ProductCardModel>(); foreach (var product in products) { MediaFile image = mediaFiles.FirstOrDefault(file => file.IsImage() && file.MediaCategory.Id == product.Gallery.Id); var productVariants = variants.FindAll(productVariant => productVariant.Product.Id == product.Id); if (!productVariants.Any()) { continue; } var productCardModel = new ProductCardModel { Name = product.Name, Url = product.LiveUrlSegment, Abstract = product.ProductAbstract, SearchResultAbstract = product.SearchResultAbstract, Image = image?.FileUrl, BrandImage = product.BrandPage?.FeatureImage, PreviousPriceText = _ecommerceSettings.PreviousPriceText, ProductReviewsEnabled = _productReviewSettings.EnableProductReviews, IsMultiVariant = productVariants.Count > 1 }; if (productVariants.Count == 1) { var variant = productVariants.FirstOrDefault(); productCardModel.PreviousPrice = _productPricingMethod.GetDisplayPreviousPrice(variant); productCardModel.Price = _productPricingMethod.GetUnitPrice(variant); productCardModel.PricePreTax = _productPricingMethod.GetUnitPricePreTax(variant); productCardModel.Tax = _productPricingMethod.GetUnitTax(variant); productCardModel.VariantId = variant.Id; CanBuyStatus canBuyStatus = _productVariantAvailabilityService.CanBuy(variant, 1); productCardModel.CanBuyStatus = canBuyStatus; productCardModel.StockMessage = canBuyStatus.OK ? (!string.IsNullOrEmpty(variant.CustomStockInStockMessage) ? variant.CustomStockInStockMessage : _stringResourceProvider.GetValue("In Stock")) : (!string.IsNullOrEmpty(variant.CustomStockOutOfStockMessage) ? variant.CustomStockOutOfStockMessage : _stringResourceProvider.GetValue("Out of Stock")); productCardModel.Rating = variant.Rating; productCardModel.NumberOfReviews = variant.NumberOfReviews; if (variant.ETag != null) { productCardModel.ETag = variant.ETag; } } else { ProductVariant variant = productVariants.OrderBy(x => _productPricingMethod.GetUnitPrice(x, 0m, 0m)).FirstOrDefault(); productCardModel.Price = variant != null ? _productPricingMethod.GetUnitPrice(variant, 0m, 0m) : (decimal?)null; productCardModel.Rating = variant.Rating; productCardModel.NumberOfReviews = variant.NumberOfReviews; if (variant.ETag != null) { productCardModel.ETag = variant.ETag; } } productCardModels.Add(productCardModel); } return(productCardModels); }