/// <summary> /// Creates the order. /// </summary> /// <param name="runtimeManager">The runtime manager.</param> /// <param name="writer">The writer.</param> /// <returns>True if the order was created, false otherwise</returns> private static bool CreateOrder(DynamicsRuntimeManager runtimeManager, CombinedWriter writer) { var status = true; // create cart var cart = runtimeManager.CreateCart(); if (cart == null) { writer.Write("Failed to Add Items to cart"); return(false); } writer.Write("Shopping cart with one line item has been created"); // set OrderDeliveryOption var deliveryAddress = new Address() { StreetNumber = "123", Street = "Main", City = "Redmond", State = "WA", ZipCode = "98052", ThreeLetterISORegionName = "USA", Email = "*****@*****.**", AddressTypeValue = (int)AddressType.None, Name = "Home" }; cart = runtimeManager.OrderManager.UpdateCartShippingAddress(cart.Id, runtimeManager.Customer.AccountNumber, deliveryAddress, "99", CalculationModes.All, string.Empty); if (cart == null) { writer.Write("Failed to update cart ShippingAddress"); status = false; } else { var paymentCard = new PaymentCard { Address1 = "12 street", City = "Orlando", Zip = "32822", Country = "USA", CardNumber = "4111111111111111", CardTypes = "Visa", CCID = "123", ExpirationMonth = 11, ExpirationYear = 2020, NameOnCard = "john doe", }; // add payment var channelConfiguration = runtimeManager.ChannelManager.GetChannelConfiguration(); IEnumerable <TenderType> tenderTypes = runtimeManager.ChannelManager.GetChannelTenderTypes(new QueryResultSettings()).Results; if (!tenderTypes.Any()) { writer.Write("No ChannelTenderTypes defined for the channel"); status = false; } IEnumerable <TenderType> creditCardTenderTypes = tenderTypes.Where(t => t.OperationId == (int)RetailOperation.PayCard); if (!creditCardTenderTypes.Any()) { writer.Write("No CreditCard TenderTypes defined for the channel"); status = false; } var creditCardTenderTypeId = creditCardTenderTypes.Single().TenderTypeId; var cartTenderline = new CartTenderLine { Currency = channelConfiguration.Currency, TenderTypeId = creditCardTenderTypeId, PaymentCard = paymentCard }; cartTenderline.CardTypeId = cartTenderline.PaymentCard.CardTypes; cartTenderline.Amount = cart.TotalAmount; var random = new Random(); cart.OrderNumber = random.Next(1000, 9999).ToString(CultureInfo.InvariantCulture); runtimeManager.OrderManager.CreateOrUpdateCart(cart, CalculationModes.None); // create order var order = runtimeManager.OrderManager.CreateOrderFromCart(cart.Id, runtimeManager.Customer.AccountNumber, new List <CartTenderLine> { cartTenderline }, runtimeManager.Customer.Email); if (order == null || order.Id == string.Empty) { writer.Write("Failed to create Sales Order"); status = false; } else { writer.Write(string.Format(CultureInfo.InvariantCulture, "Sales Order with ChannelReferenceId {0} has been successfully created.", order.ChannelReferenceId)); } } return(status); }
public Task <Cart> AddTenderLine(string id, CartTenderLine cartTenderLine) { return(Task.Run(() => OrderManager.Create(CommerceRuntimeManager.Runtime).AddTenderLine(id, cartTenderLine))); }