public ActionResult AddPromotionCodeToCart() { var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var loadCartResult = _cartServiceProvider.LoadCart(loadCartRequest); var cart = loadCartResult.Cart as CommerceCart; string promotionCode = "H20OFF"; var request = new AddPromoCodeRequest(cart, promotionCode); var serviceProvider = new CommerceCartServiceProvider(); var result = serviceProvider.AddPromoCode(request); return(View("Cart", result)); }
public ActionResult Index(string emailAddress = "*****@*****.**") { var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var loadCartResult = _cartServiceProvider.LoadCart(loadCartRequest); var cart = loadCartResult.Cart as CommerceCart; cart.Email = emailAddress; // Save the cart as an order var submitVisitorOrderRequest = new SubmitVisitorOrderRequest(cart); var submitVisitorOrderResult = _orderServiceProvider.SubmitVisitorOrder(submitVisitorOrderRequest); return(View("Order", submitVisitorOrderResult)); }
private CartResult LoadCartByName(string cartName, string userName, bool refreshCart = false) { if (StorefrontContext.Current == null) { throw new InvalidOperationException("Cannot be called without a valid storefront context."); } var request = new LoadCartRequest(StorefrontContext.Current.ShopName, cartName, userName); RefreshCart(request, refreshCart); var result = CartServiceProvider.LoadCart(request); result.WriteToSitecoreLog(); return(result); }
public ActionResult AddProduct() { var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var loadCartResult = _cartServiceProvider.LoadCart(loadCartRequest); var cart = loadCartResult.Cart; // Add a cart line: note that adding a line for the same product twice will update the quantity, not add a line: this is configured in commerce engine (look for RollupCartLinesPolicy) var lines = new List <CartLine>(); var cartLine = new CommerceCartLine("Neu", "47838_aus_allen_sternen_liebe_cd", "", 1.0M); lines.Add(cartLine); var addLinesRequest = new AddCartLinesRequest(cart, lines); var addLinesResult = _cartServiceProvider.AddCartLines(addLinesRequest); return(View("Cart", addLinesResult)); }
/// <summary> /// Initializes a new instance of the <see cref="LoadCartTest"/> class. /// </summary> public LoadCartTest() { this.visitorId = Guid.NewGuid(); this.request = new LoadCartRequest("NopShop", this.visitorId.ToString()); this.result = new CartResult(); this.args = new ServicePipelineArgs(this.request, this.result); this.client = Substitute.For <ICartsServiceChannel>(); var clientFactory = Substitute.For <ServiceClientFactory>(); clientFactory.CreateClient <ICartsServiceChannel>(Arg.Any <string>(), Arg.Any <string>()).Returns(this.client); this.processor = new LoadCart { ClientFactory = clientFactory }; }
public ActionResult GetCartLineFulfillmentMethods() { // Load a cart var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var loadCartResult = _cartServiceProvider.LoadCart(loadCartRequest); var cart = loadCartResult.Cart as CommerceCart; // Add a line to the cart var lines = new List <CartLine>(); var cartLine = new CommerceCartLine("NEU", "test", "", 1.0M); lines.Add(cartLine); var addLinesRequest = new AddCartLinesRequest(cart, lines); var addLinesResult = _cartServiceProvider.AddCartLines(addLinesRequest); cart = addLinesResult.Cart as CommerceCart; var shippingService = new ShippingServiceProvider(); var shippingOption = new ShippingOption { ShippingOptionType = ShippingOptionType .DeliverItemsIndividually, // This will trigger calling GetCartLinesFulfillmentMethods instead of GetCartFulfillmentMethods }; var shippingParty = new CommerceParty { Address1 = "Main Street", City = "Montreal", ZipPostalCode = "NW7 7SJ", Country = "Canada", CountryCode = "CA" }; var request = new GetShippingMethodsRequest(shippingOption, shippingParty, cart) { Lines = cart.Lines.Cast <CommerceCartLine>().ToList() }; var result = shippingService.GetShippingMethods(request); return(View(result)); }
public ActionResult Index() { var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var loadCartResult = _cartServiceProvider.LoadCart(loadCartRequest); var cart = loadCartResult.Cart as CommerceCart; var lines = new List <CartLine>(); var cartLine = new CommerceCartLine("Habitat_Master", "6042567", "56042567", 1.0M); lines.Add(cartLine); var addLinesRequest = new AddCartLinesRequest(cart, lines); var addLinesResult = _cartServiceProvider.AddCartLines(addLinesRequest); // Add a shipping address CommerceParty shippingAddress = new CommerceParty(); shippingAddress.ExternalId = "Shipping"; shippingAddress.PartyId = shippingAddress.ExternalId; shippingAddress.Name = "Shipping"; shippingAddress.Address1 = "Barbara Strozzilaan 201"; shippingAddress.Company = "Sitecore"; shippingAddress.Country = "Canada"; shippingAddress.State = "ON"; // State is checked by commerce engine: you can configure it in Commerce shippingAddress.CountryCode = "CA"; // Country is checked by commerce engine shippingAddress.LastName = "Werkman"; shippingAddress.FirstName = "Erwin"; shippingAddress.City = "Amsterdam"; shippingAddress.ZipPostalCode = "1030AC"; var cartParties = cart.Parties.ToList(); cartParties.Add(shippingAddress); cart.Parties = cartParties; ShippingOptionType shippingOptionType = ShippingOptionType.ShipToAddress; ICollection <CommerceShippingInfo> shippingInfoList = new List <CommerceShippingInfo>(); var commerceShippingInfo = new CommerceShippingInfo(); commerceShippingInfo.ShippingOptionType = ShippingOptionType.ShipToAddress; commerceShippingInfo.PartyID = shippingAddress.ExternalId; commerceShippingInfo.ShippingMethodID = "B146622D-DC86-48A3-B72A-05EE8FFD187A"; // Ship Items > Ground commerceShippingInfo.ShippingMethodName = "Ground"; // Method id and name have to match what is configured in Sitecore Commerce Control Panel shippingInfoList.Add(commerceShippingInfo); var csShippingInfoList = new List <ShippingInfo>(); foreach (var shippingInfo in shippingInfoList) { csShippingInfoList.Add(shippingInfo); } // Add a shipping address and shipping method var addShippingInfoRequest = new Sitecore.Commerce.Engine.Connect.Services.Carts.AddShippingInfoRequest(cart, csShippingInfoList, shippingOptionType); var result = _cartServiceProvider.AddShippingInfo(addShippingInfoRequest); cart = result.Cart as CommerceCart; // Add billing address CommerceParty billingAddress = new CommerceParty(); billingAddress.ExternalId = "Billing"; // This should correspond to the PartyId you are setting for the payment info billingAddress.PartyId = billingAddress.ExternalId; billingAddress.Name = "Billing"; billingAddress.Address1 = "Dorpsstraat 50"; billingAddress.Company = "Sitecore"; billingAddress.Country = "Canada"; billingAddress.State = "ON"; // State is checked: you can configure it in Commerce billingAddress.CountryCode = "CA"; billingAddress.LastName = "Werkman"; billingAddress.FirstName = "Erwin"; billingAddress.City = "Amsterdam"; billingAddress.ZipPostalCode = "1234AK"; cart.Parties.Add(billingAddress); // Add a payment address and payment method var payments = new List <PaymentInfo>(); var simplePaymentInfo = new SimplePaymentInfo(); simplePaymentInfo.PaymentMethodID = "9B110CC3-C7C8-4492-8FCF-0CDE5D3E0EB0"; simplePaymentInfo.Amount = cart.Total.Amount; payments.Add(simplePaymentInfo); /* * var giftCardPaymentInfo = new GiftCardPaymentInfo(); * giftCardPaymentInfo.PaymentMethodID = "B5E5464E-C851-4C3C-8086-A4A874DD2DB0"; // GiftCard * giftCardPaymentInfo.Amount = cart.Total.Amount; * giftCardPaymentInfo.ExternalId = "GC1000000"; // This is the number of the giftcard * giftCardPaymentInfo.PartyID = billingAddress.ExternalId; // For a gift card this is not really necessary and not recorded * * payments.Add(giftCardPaymentInfo); */ var addPaymentInfoRequest = new AddPaymentInfoRequest(cart, payments); var addPaymentInfoResult = _cartServiceProvider.AddPaymentInfo(addPaymentInfoRequest); return(View("Cart", addPaymentInfoResult)); }
public ActionResult SubmitPayment(string paymentNonce) { var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var loadCartResult = _cartServiceProvider.LoadCart(loadCartRequest); var cart = loadCartResult.Cart as CommerceCart; // Add a shipping address CommerceParty shippingAddress = new CommerceParty(); shippingAddress.ExternalId = "Shipping"; shippingAddress.PartyId = shippingAddress.ExternalId; shippingAddress.Name = "Shipping"; shippingAddress.Address1 = "Barbara Strozzilaan 201"; shippingAddress.Company = "Sitecore"; shippingAddress.Country = "Canada"; shippingAddress.State = "NB"; // State is checked by commerce engine: you can configure it in Commerce shippingAddress.CountryCode = "CA"; // Country is checked by commerce engine shippingAddress.LastName = "Werkman"; shippingAddress.FirstName = "Erwin"; shippingAddress.City = "Amsterdam"; shippingAddress.ZipPostalCode = "1030AC"; var cartParties = cart.Parties.ToList(); cartParties.Add(shippingAddress); cart.Parties = cartParties; ShippingOptionType shippingOptionType = ShippingOptionType.ShipToAddress; ICollection <CommerceShippingInfo> shippingInfoList = new List <CommerceShippingInfo>(); var commerceShippingInfo = new CommerceShippingInfo(); commerceShippingInfo.ShippingOptionType = ShippingOptionType.ShipToAddress; commerceShippingInfo.PartyID = shippingAddress.ExternalId; commerceShippingInfo.ShippingMethodID = "B146622D-DC86-48A3-B72A-05EE8FFD187A"; // Ship Items > Ground commerceShippingInfo.ShippingMethodName = "Ground"; // Method id and name have to match what is configured in Sitecore Commerce Control Panel shippingInfoList.Add(commerceShippingInfo); var csShippingInfoList = new List <ShippingInfo>(); foreach (var shippingInfo in shippingInfoList) { csShippingInfoList.Add(shippingInfo); } // Add a shipping address and shipping method var addShippingInfoRequest = new Sitecore.Commerce.Engine.Connect.Services.Carts.AddShippingInfoRequest(cart, csShippingInfoList, shippingOptionType); var result = _cartServiceProvider.AddShippingInfo(addShippingInfoRequest); Assert.IsTrue(result.Success, String.Join("|", result.SystemMessages.Select(e => e.Message))); // Reload the cart so we have the latest information on how much we need to pay var reloadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var reloadedCartResult = _cartServiceProvider.LoadCart(reloadCartRequest); Assert.IsTrue(reloadedCartResult.Success, String.Join("|", reloadedCartResult.SystemMessages.Select(e => e.Message))); cart = reloadedCartResult.Cart as CommerceCart; CommerceParty billingAddress = new CommerceParty(); billingAddress.ExternalId = "Billing"; // This should correspond to the PartyId you are setting for the payment info billingAddress.PartyId = billingAddress.ExternalId; billingAddress.Name = "Billing"; billingAddress.Address1 = "Dorpsstraat 50"; billingAddress.Company = "Sitecore"; billingAddress.Country = "Canada"; billingAddress.State = "NB"; // State is checked: you can configure it in Commerce billingAddress.CountryCode = "CA"; billingAddress.LastName = "Werkman"; billingAddress.FirstName = "Erwin"; billingAddress.City = "Amsterdam"; billingAddress.ZipPostalCode = "1234AK"; cart.Parties.Add(billingAddress); var payments = new List <PaymentInfo>(); var federatedPaymentInfo = new FederatedPaymentInfo(); federatedPaymentInfo.PartyID = billingAddress.ExternalId; federatedPaymentInfo.PaymentMethodID = "0CFFAB11-2674-4A18-AB04-228B1F8A1DEC"; // Federated Payment federatedPaymentInfo.Amount = cart.Total.Amount; // Total payment (of all payment methods for a cart) should always be the same as the total amount of the order federatedPaymentInfo.CardToken = paymentNonce; payments.Add(federatedPaymentInfo); var addPaymentInfoRequest = new AddPaymentInfoRequest(cart, payments); var addPaymentInfoResult = _cartServiceProvider.AddPaymentInfo(addPaymentInfoRequest); Assert.IsTrue(addPaymentInfoResult.Success, String.Join("|", addPaymentInfoResult.SystemMessages.Select(e => e.Message))); cart.Email = "*****@*****.**"; // This is necessary otherwise the cart will not become an order // Save the cart as an order var submitVisitorOrderRequest = new SubmitVisitorOrderRequest(cart); var submitVisitorOrderResult = _orderServiceProvider.SubmitVisitorOrder(submitVisitorOrderRequest); Assert.IsTrue(submitVisitorOrderResult.Success, String.Join("|", submitVisitorOrderResult.SystemMessages.Select(e => e.Message))); return(View(submitVisitorOrderResult)); }