Esempio n. 1
0
        public void GetVariantFromOptions_ReturnVariant()
        {
            var variants     = variantRepository.GetByProductId(skuWithVariants.SKUID).ToList();
            var firstVariant = variants.FirstOrDefault();

            var options = firstVariant.ProductAttributes.Select(o => o.SKUID).ToList();

            var selectedVariant = variantRepository.GetByProductIdAndOptions(skuWithVariants.SKUID, options);

            CMSAssert.All(
                () => Assert.NotNull(selectedVariant, "Variant for selected options was not returned."),
                () => Assert.AreEqual(selectedVariant.ProductAttributes.Count(), options.Count(), "Variant has wrong option count.")
                );
        }
Esempio n. 2
0
        public JsonResult Variant(List <int> options, int parentProductID)
        {
            var variant = mVariantRepository.GetByProductIdAndOptions(parentProductID, options);

            if (variant == null)
            {
                return(Json(new
                {
                    stockMessage = ResHelper.GetString("DancingGoatMvc.Product.NotAvailable"),
                    totalPrice = "-"
                }));
            }

            var variantPrice = mCalculationService.CalculateDetailPrice(variant);
            var isInStock    = !variant.InventoryTracked || variant.AvailableItems > 0;

            return(GetVariantResponse(variantPrice,
                                      isInStock,
                                      isInStock ? "DancingGoatMvc.Product.InStock" : "DancingGoatMvc.Product.OutOfStock",
                                      variant.VariantSKUID));
        }
Esempio n. 3
0
        public JsonResult Variant(List <int> options, int parentProductID)
        {
            var variant = mVariantRepository.GetByProductIdAndOptions(parentProductID, options);

            if (variant == null)
            {
                return(Json(new
                {
                    stockMessage = ResHelper.GetString("DancingGoatMvc.Product.NotAvailable"),
                    totalPrice = "-"
                }));
            }

            var cart         = mShoppingService.GetCurrentShoppingCart();
            var variantPrice = mCalculationService.CalculatePrice(variant.Variant);
            var isInStock    = ((variant.Variant.SKUTrackInventory == TrackInventoryTypeEnum.Disabled) || (variant.Variant.SKUAvailableItems > 0));

            return(GetVariantResponse(variantPrice,
                                      isInStock,
                                      isInStock ? "DancingGoatMvc.Product.InStock" : "DancingGoatMvc.Product.OutOfStock",
                                      variant.Variant.SKUID, cart.Currency));
        }