private Dictionary <ILineItem, List <ValidationIssue> > UpdateLineItemSku(ICart cart, int shipmentId, string oldCode, string newCode, decimal quantity)
        {
            RemoveLineItem(cart, shipmentId, oldCode);

            //merge same sku's
            var newLineItem = GetFirstLineItem(cart, newCode);

            if (newLineItem != null)
            {
                var shipment = cart.GetFirstForm().Shipments.First(s => s.ShipmentId == shipmentId || shipmentId == 0);
                cart.UpdateLineItemQuantity(shipment, newLineItem, newLineItem.Quantity + quantity);
            }
            else
            {
                newLineItem          = cart.CreateLineItem(newCode, _orderGroupFactory);
                newLineItem.Quantity = quantity;
                cart.AddLineItem(newLineItem, _orderGroupFactory);

                var price = PriceCalculationService.GetSalePrice(newCode, cart.MarketId, _currentMarket.GetCurrentMarket().DefaultCurrency);
                if (price != null)
                {
                    newLineItem.PlacedPrice = price.UnitPrice.Amount;
                }
            }

            return(ValidateCart(cart));
        }
Ejemplo n.º 2
0
        private void UpdateLineItemSku(ICart cart, int shipmentId, string oldCode, string newCode, decimal quantity)
        {
            RemoveLineItem(cart, shipmentId, oldCode);

            //merge same sku's
            var newLineItem = GetFirstLineItem(cart, newCode);

            if (newLineItem != null)
            {
                var shipment = cart.GetFirstForm().Shipments.First(s => s.ShipmentId == shipmentId || shipmentId == 0);
                cart.UpdateLineItemQuantity(shipment, newLineItem, newLineItem.Quantity + quantity);
            }
            else
            {
                newLineItem          = cart.CreateLineItem(newCode, _orderGroupFactory);
                newLineItem.Quantity = quantity;
                cart.AddLineItem(newLineItem, _orderGroupFactory);

                var price = _pricingService.GetCurrentPrice(newCode);
                if (price.HasValue)
                {
                    newLineItem.PlacedPrice = price.Value.Amount;
                }
            }

            ValidateCart(cart);
        }
Ejemplo n.º 3
0
        public bool AddToCart(ICart cart, string code, out string warningMessage)
        {
            warningMessage = string.Empty;

            var lineItem = cart.GetAllLineItems().FirstOrDefault(x => x.Code == code);

            if (lineItem == null)
            {
                lineItem          = cart.CreateLineItem(code, _orderGroupFactory);
                lineItem.Quantity = 1;
                cart.AddLineItem(lineItem, _orderGroupFactory);
            }
            else
            {
                var shipment = cart.GetFirstShipment();
                cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + 1);
            }

            var validationIssues = ValidateCart(cart);

            foreach (var validationIssue in validationIssues)
            {
                warningMessage += String.Format("Line Item with code {0} ", lineItem.Code);
                warningMessage  = validationIssue.Value.Aggregate(warningMessage, (current, issue) => current + String.Format("{0}, ", issue));
                warningMessage  = warningMessage.Substring(0, warningMessage.Length - 2);
            }

            if (validationIssues.HasItemBeenRemoved(lineItem))
            {
                return(false);
            }

            return(GetFirstLineItem(cart, code) != null);
        }
Ejemplo n.º 4
0
        public void AddLineItem()
        {
            var lineItem = _cart.CreateLineItem(Constants.VariationCode, _orderGroupFactory);

            lineItem.Quantity             = 1;
            lineItem.IsInventoryAllocated = true;
            lineItem.PlacedPrice          = 100;
            lineItem.Properties["Custom"] = true;
            _cart.AddLineItem(lineItem, _orderGroupFactory);
            _orderRepository.Save(_cart);
        }
Ejemplo n.º 5
0
        public ILineItem AddLineItem(ICart cart, string newCode, decimal quantity, string displayName)
        {
            var newLineItem = cart.CreateLineItem(newCode, _orderGroupFactory.Service);

            newLineItem.Quantity    = quantity;
            newLineItem.DisplayName = displayName;
            cart.AddLineItem(newLineItem, _orderGroupFactory.Service);

            var price = _priceService.Service.GetDefaultPrice(cart.MarketId, DateTime.Today, new CatalogKey(newCode),
                                                              cart.Currency);

            newLineItem.PlacedPrice = price.UnitPrice.Amount;

            return(newLineItem);
        }
Ejemplo n.º 6
0
        private ILineItem AddNewLineItem(ICart cart, string newCode, decimal quantity, string displayName)
        {
            var newLineItem = cart.CreateLineItem(newCode, _orderGroupFactory);
            newLineItem.Quantity = quantity;
            newLineItem.DisplayName = displayName;
            cart.AddLineItem(newLineItem, _orderGroupFactory);

            var price = _pricingService.GetPrice(newCode);
            if (price != null)
            {
                newLineItem.PlacedPrice = price.UnitPrice.Amount;
            }

            return newLineItem;
        }
Ejemplo n.º 7
0
        public AddToCartResult AddToCart(ICart cart, string code, decimal quantity)
        {
            var result       = new AddToCartResult();
            var contentLink  = _referenceConverter.GetContentLink(code);
            var entryContent = _contentLoader.Get <EntryContentBase>(contentLink);

            if (entryContent is BundleContent)
            {
                foreach (var relation in _relationRepository.GetRelationsBySource <BundleEntry>(contentLink))
                {
                    var entry           = _contentLoader.Get <EntryContentBase>(relation.Target);
                    var recursiveResult = AddToCart(cart, entry.Code, relation.Quantity ?? 1);
                    if (recursiveResult.EntriesAddedToCart)
                    {
                        result.EntriesAddedToCart = true;
                    }

                    foreach (var message in recursiveResult.ValidationMessages)
                    {
                        result.ValidationMessages.Add(message);
                    }
                }

                return(result);
            }

            var lineItem = cart.GetAllLineItems().FirstOrDefault(x => x.Code == code);

            if (lineItem == null)
            {
                lineItem             = cart.CreateLineItem(code, _orderGroupFactory);
                lineItem.DisplayName = entryContent.DisplayName;
                lineItem.Quantity    = quantity;
                cart.AddLineItem(lineItem, _orderGroupFactory);
            }
            else
            {
                var shipment = cart.GetFirstShipment();
                cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + quantity);
            }

            var validationIssues = ValidateCart(cart);

            AddValidationMessagesToResult(result, lineItem, validationIssues);

            return(result);
        }
        private static ICart Insert(this ICart cart, string code, int quantity, string displayName)
        {
            var lineItem = cart.CreateLineItem(code, _orderGroupFactory);

            lineItem.DisplayName = displayName;
            lineItem.Quantity    = quantity;
            cart.AddLineItem(lineItem, _orderGroupFactory);

            var price = _customerPriceService.GetPrice(code);

            if (price != null)
            {
                lineItem.PlacedPrice = price.UnitPrice.Amount;
            }

            return(cart);
        }
        private static void AddNewLineItem(ICart cart, string newCode, decimal quantity, string displayName)
        {
            var newLineItem = cart.CreateLineItem(newCode);

            newLineItem.Quantity    = quantity;
            newLineItem.DisplayName = displayName;
            cart.AddLineItem(newLineItem);

            var price = _priceService.Service.GetPrices(cart.MarketId, DateTime.Now, new CatalogKey(newCode),
                                                        new PriceFilter {
                Currencies = new[] { cart.Currency }
            })
                        .OrderBy(x => x.UnitPrice.Amount).FirstOrDefault();

            if (price != null)
            {
                newLineItem.PlacedPrice = price.UnitPrice.Amount;
            }
        }
        public static void AddToCart(ICart cart, string code, decimal quantity)
        {
            var contentLink  = _referenceConverter.Service.GetContentLink(code);
            var entryContent = _contentLoader.Service.Get <EntryContentBase>(contentLink);

            if (entryContent is BundleContent)
            {
                foreach (var relation in _relationRepository.Service.GetChildren <BundleEntry>(contentLink))
                {
                    var entry = _contentLoader.Service.Get <EntryContentBase>(relation.Child);
                    AddToCart(cart, entry.Code, relation.Quantity ?? 1);
                }
                return;
            }

            var lineItem = cart.CreateLineItem(code);

            lineItem.Quantity = quantity;
            AddNewLineItem(cart, lineItem.Code, quantity, entryContent.DisplayName);
        }
Ejemplo n.º 11
0
        public void RecreateLineItemsBasedOnShipments(ICart cart, IEnumerable <CartItemViewModel> cartItems, IEnumerable <AddressModel> addresses)
        {
            var form  = cart.GetFirstForm();
            var items = cartItems
                        .GroupBy(x => new { x.AddressId, x.Code, x.DisplayName, x.IsGift })
                        .Select(x => new
            {
                Code        = x.Key.Code,
                DisplayName = x.Key.DisplayName,
                AddressId   = x.Key.AddressId,
                Quantity    = x.Count(),
                IsGift      = x.Key.IsGift
            });

            foreach (var shipment in form.Shipments)
            {
                shipment.LineItems.Clear();
            }

            form.Shipments.Clear();

            foreach (var address in addresses)
            {
                var shipment = cart.CreateShipment(_orderGroupFactory);
                form.Shipments.Add(shipment);
                shipment.ShippingAddress = _addressBookService.ConvertToAddress(address, cart);

                foreach (var item in items.Where(x => x.AddressId == address.AddressId))
                {
                    var lineItem = cart.CreateLineItem(item.Code, _orderGroupFactory);
                    lineItem.DisplayName = item.DisplayName;
                    lineItem.IsGift      = item.IsGift;
                    lineItem.Quantity    = item.Quantity;
                    shipment.LineItems.Add(lineItem);
                }
            }

            ValidateCart(cart);
        }
Ejemplo n.º 12
0
        public AddToCartResult AddToCart(ICart cart, string code, string warehouseCode, decimal quantity)
        {
            var result       = new AddToCartResult();
            var contentLink  = _referenceConverter.GetContentLink(code);
            var entryContent = _contentLoader.Get <EntryContentBase>(contentLink);

            if (entryContent is BundleContent)
            {
                foreach (var relation in _relationRepository.GetChildren <BundleEntry>(contentLink))
                {
                    var entry           = _contentLoader.Get <EntryContentBase>(relation.Child);
                    var recursiveResult = AddToCart(cart, entry.Code, warehouseCode, relation.Quantity ?? 1);
                    if (recursiveResult.EntriesAddedToCart)
                    {
                        result.EntriesAddedToCart = true;
                    }

                    foreach (var message in recursiveResult.ValidationMessages)
                    {
                        result.ValidationMessages.Add(message);
                    }
                }

                return(result);
            }

            ILineItem lineItem = null;

            if (!string.IsNullOrEmpty(warehouseCode))
            {
                IShipment shipment = null;
                if (cart.GetFirstForm().Shipments.Count == 1 && string.IsNullOrEmpty(cart.GetFirstForm().Shipments.First().WarehouseCode))
                {
                    shipment = cart.GetFirstForm().Shipments.First();
                    shipment.WarehouseCode = warehouseCode;
                }
                else
                {
                    shipment = cart.GetFirstForm().Shipments.FirstOrDefault(s => s.WarehouseCode.Equals(warehouseCode, StringComparison.CurrentCultureIgnoreCase));
                }
                if (shipment == null)
                {
                    shipment = cart.CreateShipment(_orderGroupFactory);
                    shipment.WarehouseCode = warehouseCode;
                    cart.AddShipment(shipment);
                }

                lineItem = shipment.LineItems.FirstOrDefault(x => x.Code == code && !x.IsGift);

                if (lineItem == null)
                {
                    //this is just like AddNewLineItem but doesn't add there - adds to shipment instead
                    lineItem             = cart.CreateLineItem(code, _orderGroupFactory);
                    lineItem.Quantity    = quantity;
                    lineItem.DisplayName = entryContent.DisplayName;
                    //cart.AddLineItem(newLineItem, _orderGroupFactory);

                    var price = _pricingService.GetPrice(code);
                    if (price != null)
                    {
                        lineItem.PlacedPrice = price.UnitPrice.Amount;
                    }

                    cart.AddLineItem(shipment, lineItem);
                }
                else
                {
                    cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + quantity);
                }
            }
            else
            {
                lineItem = cart.GetAllLineItems().FirstOrDefault(x => x.Code == code && !x.IsGift);

                if (lineItem == null)
                {
                    lineItem = AddNewLineItem(cart, code, quantity, entryContent.DisplayName);
                }
                else
                {
                    var shipment = cart.GetFirstShipment();
                    cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + quantity);
                }
            }

            var validationIssues = ValidateCart(cart);

            AddValidationMessagesToResult(result, lineItem, validationIssues);

            return(result);
        }
        private AddToCartResult AddItemToShipment(ICart cart, EntryContentBase entryContent, decimal quantity, int shipmentId, string deliveryMethodId, string warehouseCode)
        {
            var result = new AddToCartResult();

            IWarehouse warehouse = null;

            if (!string.IsNullOrEmpty(warehouseCode))
            {
                warehouse = _warehouseRepository.Get(warehouseCode);
            }

            if (entryContent is BundleContent)
            {
                foreach (var relation in _relationRepository.GetChildren <BundleEntry>(entryContent.ContentLink))
                {
                    var entry           = _contentLoader.Get <EntryContentBase>(relation.Child);
                    var recursiveResult = AddItemToShipment(cart, entry, (relation.Quantity ?? 1) * quantity, shipmentId, deliveryMethodId, warehouseCode);
                    if (recursiveResult.EntriesAddedToCart)
                    {
                        result.EntriesAddedToCart = true;
                    }

                    foreach (var message in recursiveResult.ValidationMessages)
                    {
                        result.ValidationMessages.Add(message);
                    }
                }

                return(result);
            }

            var form = cart.GetFirstForm();

            if (form == null)
            {
                form      = _orderGroupFactory.CreateOrderForm(cart);
                form.Name = cart.Name;
                cart.Forms.Add(form);
            }

            var shipment = form.Shipments.FirstOrDefault(x => x.ShipmentId == shipmentId);

            if (shipment == null)
            {
                shipment = _orderGroupFactory.CreateShipment(cart);
                shipment.WarehouseCode    = warehouseCode;
                shipment.ShippingMethodId = new Guid(deliveryMethodId);
                shipment.ShippingAddress  = GetOrderAddressFromWarehosue(cart, warehouse);
                cart.GetFirstForm().Shipments.Add(shipment);
            }

            var     lineItem = shipment.LineItems.FirstOrDefault(x => x.Code == entryContent.Code);
            decimal originalLineItemQuantity = 0;

            if (lineItem == null)
            {
                lineItem             = cart.CreateLineItem(entryContent.Code, _orderGroupFactory);
                lineItem.DisplayName = entryContent.DisplayName;
                lineItem.Quantity    = quantity;
                cart.AddLineItem(shipment, lineItem);
            }
            else
            {
                originalLineItemQuantity = lineItem.Quantity;
                cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + quantity);
            }

            var validationIssues = ValidateCart(cart);
            var newLineItem      = shipment.LineItems.FirstOrDefault(x => x.Code == entryContent.Code);
            var isAdded          = (newLineItem != null ? newLineItem.Quantity : 0) - originalLineItemQuantity > 0;

            AddValidationMessagesToResult(result, lineItem, validationIssues, isAdded);

            return(result);
        }
        public AddToCartResult AddToCart(ICart cart, EntryContentBase entryContent, decimal quantity, string deliveryMethod, string warehouseCode, List <string> dynamicVariantOptionCodes)
        {
            var result  = new AddToCartResult();
            var contact = PrincipalInfo.CurrentPrincipal.GetCustomerContact();

            if (contact?.OwnerId != null)
            {
                var org = cart.GetString("OwnerOrg");
                if (string.IsNullOrEmpty(org))
                {
                    cart.Properties["OwnerOrg"] = contact.OwnerId.Value.ToString().ToLower();
                }
            }

            IWarehouse warehouse = null;

            if (deliveryMethod.Equals("instore") && !string.IsNullOrEmpty(warehouseCode))
            {
                warehouse = _warehouseRepository.Get(warehouseCode);
            }

            if (entryContent is BundleContent)
            {
                foreach (var relation in _relationRepository.GetChildren <BundleEntry>(entryContent.ContentLink))
                {
                    var entry           = _contentLoader.Get <EntryContentBase>(relation.Child);
                    var recursiveResult = AddToCart(cart, entry, (relation.Quantity ?? 1) * quantity, deliveryMethod, warehouseCode, dynamicVariantOptionCodes);
                    if (recursiveResult.EntriesAddedToCart)
                    {
                        result.EntriesAddedToCart = true;
                    }

                    foreach (var message in recursiveResult.ValidationMessages)
                    {
                        result.ValidationMessages.Add(message);
                    }
                }

                return(result);
            }

            var form = cart.GetFirstForm();

            if (form == null)
            {
                form      = _orderGroupFactory.CreateOrderForm(cart);
                form.Name = cart.Name;
                cart.Forms.Add(form);
            }

            var shipment = cart.GetFirstForm().Shipments.FirstOrDefault(x => string.IsNullOrEmpty(warehouseCode) || (x.WarehouseCode == warehouseCode && x.ShippingMethodId == InStorePickupInfoModel.MethodId));

            if (warehouse != null)
            {
                if (shipment != null && !shipment.LineItems.Any())
                {
                    shipment.WarehouseCode    = warehouseCode;
                    shipment.ShippingMethodId = InStorePickupInfoModel.MethodId;
                    shipment.ShippingAddress  = GetOrderAddressFromWarehosue(cart, warehouse);
                }
                else
                {
                    shipment = form.Shipments.FirstOrDefault(x => !string.IsNullOrEmpty(x.WarehouseCode) && x.WarehouseCode.Equals(warehouse.Code));
                    if (shipment == null)
                    {
                        if (cart.GetFirstShipment().LineItems.Count > 0)
                        {
                            shipment = _orderGroupFactory.CreateShipment(cart);
                        }
                        else
                        {
                            shipment = cart.GetFirstShipment();
                        }

                        shipment.WarehouseCode    = warehouseCode;
                        shipment.ShippingMethodId = InStorePickupInfoModel.MethodId;
                        shipment.ShippingAddress  = GetOrderAddressFromWarehosue(cart, warehouse);

                        if (cart.GetFirstShipment().LineItems.Count > 0)
                        {
                            cart.GetFirstForm().Shipments.Add(shipment);
                        }
                    }
                }
            }

            if (shipment == null)
            {
                var cartFirstShipment = cart.GetFirstShipment();
                if (cartFirstShipment == null)
                {
                    shipment = _orderGroupFactory.CreateShipment(cart);
                    cart.GetFirstForm().Shipments.Add(shipment);
                }
                else
                {
                    if (cartFirstShipment.LineItems.Count > 0)
                    {
                        shipment = _orderGroupFactory.CreateShipment(cart);
                        cart.GetFirstForm().Shipments.Add(shipment);
                    }
                    else
                    {
                        shipment = cartFirstShipment;
                    }
                }
            }

            var     lineItem = shipment.LineItems.FirstOrDefault(x => x.Code == entryContent.Code);
            decimal originalLineItemQuantity = 0;

            if (lineItem == null)
            {
                lineItem = cart.CreateLineItem(entryContent.Code, _orderGroupFactory);
                var lineDisplayName = entryContent.DisplayName;
                if (dynamicVariantOptionCodes?.Count > 0)
                {
                    lineItem.Properties[VariantOptionCodesProperty] = string.Join(",", dynamicVariantOptionCodes.OrderBy(x => x));
                    lineDisplayName += " - " + lineItem.Properties[VariantOptionCodesProperty];
                }

                lineItem.DisplayName = lineDisplayName;
                lineItem.Quantity    = quantity;
                cart.AddLineItem(shipment, lineItem);
            }
            else
            {
                if (lineItem.Properties[VariantOptionCodesProperty] != null)
                {
                    var variantOptionCodesLineItem = lineItem.Properties[VariantOptionCodesProperty].ToString().Split(',');
                    var intersectCodes             = variantOptionCodesLineItem.Intersect(dynamicVariantOptionCodes);

                    if (intersectCodes != null && intersectCodes.Any() &&
                        intersectCodes.Count() == variantOptionCodesLineItem.Length &&
                        intersectCodes.Count() == dynamicVariantOptionCodes.Count)
                    {
                        originalLineItemQuantity = lineItem.Quantity;
                        cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + quantity);
                    }
                    else
                    {
                        lineItem = cart.CreateLineItem(entryContent.Code, _orderGroupFactory);
                        lineItem.Properties[VariantOptionCodesProperty] = string.Join(",", dynamicVariantOptionCodes.OrderBy(x => x));
                        lineItem.DisplayName = entryContent.DisplayName + " - " + lineItem.Properties[VariantOptionCodesProperty];
                        lineItem.Quantity    = quantity;
                        cart.AddLineItem(shipment, lineItem);
                    }
                }
                else
                {
                    originalLineItemQuantity = lineItem.Quantity;
                    cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + quantity);
                }
            }

            var validationIssues = ValidateCart(cart);
            var newLineItem      = shipment.LineItems.FirstOrDefault(x => x.Code == entryContent.Code);
            var isAdded          = (newLineItem != null ? newLineItem.Quantity : 0) - originalLineItemQuantity > 0;

            AddValidationMessagesToResult(result, lineItem, validationIssues, isAdded);

            return(result);
        }
Ejemplo n.º 15
0
        public AddToCartResult AddToCart(ICart cart, EntryContentBase entryContent, decimal quantity, string deliveryMethod, string warehouseCode)
        {
            var result  = new AddToCartResult();
            var contact = PrincipalInfo.CurrentPrincipal.GetCustomerContact();

            if (contact?.OwnerId != null)
            {
                var org = cart.GetString("OwnerOrg");
                if (string.IsNullOrEmpty(org))
                {
                    cart.Properties["OwnerOrg"] = contact.OwnerId.Value.ToString().ToLower();
                }
            }
            IWarehouse warehouse = null;

            if (deliveryMethod.Equals("instore") && !string.IsNullOrEmpty(warehouseCode))
            {
                warehouse = _warehouseRepository.Get(warehouseCode);
            }

            if (entryContent is BundleContent)
            {
                foreach (var relation in _relationRepository.GetChildren <BundleEntry>(entryContent.ContentLink))
                {
                    var entry           = _contentLoader.Get <EntryContentBase>(relation.Child);
                    var recursiveResult = AddToCart(cart, entry, relation.Quantity ?? 1, deliveryMethod, warehouseCode);
                    if (recursiveResult.EntriesAddedToCart)
                    {
                        result.EntriesAddedToCart = true;
                    }

                    foreach (var message in recursiveResult.ValidationMessages)
                    {
                        result.ValidationMessages.Add(message);
                    }
                }

                return(result);
            }

            var form = cart.GetFirstForm();

            if (form == null)
            {
                form      = _orderGroupFactory.CreateOrderForm(cart);
                form.Name = cart.Name;
                cart.Forms.Add(form);
            }

            var shipment = cart.GetFirstShipment();

            if (warehouse != null)
            {
                if (shipment != null && !shipment.LineItems.Any())
                {
                    shipment.WarehouseCode    = warehouseCode;
                    shipment.ShippingMethodId = InStorePickupInfoModel.MethodId;
                    shipment.ShippingAddress  = GetOrderAddressFromWarehosue(cart, warehouse);
                }
                else
                {
                    shipment = form.Shipments.FirstOrDefault(x => !string.IsNullOrEmpty(x.WarehouseCode) && x.WarehouseCode.Equals(warehouse.Code));
                    if (shipment == null)
                    {
                        shipment = _orderGroupFactory.CreateShipment(cart);
                        shipment.WarehouseCode    = warehouseCode;
                        shipment.ShippingMethodId = InStorePickupInfoModel.MethodId;
                        cart.GetFirstForm().Shipments.Add(shipment);
                        shipment.ShippingAddress = GetOrderAddressFromWarehosue(cart, warehouse);
                    }
                }
            }

            if (shipment == null)
            {
                shipment = _orderGroupFactory.CreateShipment(cart);
                cart.GetFirstForm().Shipments.Add(shipment);
            }

            var lineItem = cart.GetAllLineItems().FirstOrDefault(x => x.Code == entryContent.Code);

            if (lineItem == null)
            {
                lineItem             = cart.CreateLineItem(entryContent.Code, _orderGroupFactory);
                lineItem.DisplayName = entryContent.DisplayName;
                lineItem.Quantity    = quantity;
                cart.AddLineItem(shipment, lineItem);
            }
            else
            {
                cart.UpdateLineItemQuantity(shipment, lineItem, lineItem.Quantity + quantity);
            }

            var validationIssues = ValidateCart(cart);

            AddValidationMessagesToResult(result, lineItem, validationIssues);

            return(result);
        }