public void Process(RestoreCartProductArgs args) { Assert.ArgumentNotNull(args.ShoppingCart, "ShoppingCart"); Assert.ArgumentNotNull(args.CartManager, "CartManager"); Assert.ArgumentNotNull(args.ProductRepository, "ProductRepository"); Assert.ArgumentNotNull(args.StockManager, "StockManager"); Assert.ArgumentNotNull(args.Result, "Result"); Assert.ArgumentNotNullOrEmpty(args.ProductCode, "ProductCode"); Assert.ArgumentCondition(args.Quantity > 0, "Quantity", "not > 0"); }
public void Process(RestoreCartProductArgs args) { var cart = args.ShoppingCart; var cartProduct = cart.ShoppingCartLines.Where(x => x.Product.Code == args.ProductCode).SingleOrDefault(); if (cartProduct != null && cartProduct.Quantity >= args.Quantity) { args.AbortPipeline(); return; } args.Result.AttemptedRestore = true; }
public void Process(RestoreCartProductArgs args) { var cartManager = args.CartManager; var cart = args.ShoppingCart; var cartProduct = cart.ShoppingCartLines.Where(x => x.Product.Code == args.ProductCode).SingleOrDefault(); if (cartProduct != null && cartProduct.Quantity < args.Quantity) { args.Quantity = args.Quantity - cartProduct.Quantity; } cartManager.AddProduct(args.ProductCode, args.Quantity); }
public void Process(RestoreCartProductArgs args) { //TODO: Use a query instead? Ensure product is not hidden? var product = args.ProductRepository.Get <ProductBaseData>(args.ProductCode); if (product == null) { args.Result.Success = false; args.Result.FailedProducts.Add(args.ProductCode); args.AbortPipeline(); } }
public void Process(RestoreCartProductArgs args) { var stock = args.StockManager.GetStock(new Sitecore.Ecommerce.DomainModel.Products.ProductStockInfo { ProductCode = args.ProductCode }); if (stock.Stock == 0) { args.Result.Success = false; args.Result.FailedProducts.Add(args.ProductCode); args.AbortPipeline(); } else if (stock.Stock < args.Quantity) { //reduce stock added to cart, note product as failed, but don't abort args.Quantity = (uint)stock.Stock; args.Result.Success = false; args.Result.FailedProducts.Add(args.ProductCode); } }
public static void Run(RestoreCartProductArgs args) { CorePipeline.Run(Pipeline, args); }