public void OrderSystem_CreateRandomOrder() { Cart cart = OrderContext.Current.GetCart(Cart.DefaultName, Guid.NewGuid()); String customerFullName = _customerNames[_random.Next(0, _customerNames.Length - 1)]; int space = customerFullName.IndexOf(' '); String customerFirstName = customerFullName.Substring(0, space); String customerLastName = customerFullName.Substring(space + 1); //String customerHomeId = customerFullName + "\'s " + "Home"; cart.CustomerName = customerFullName; cart.BillingCurrency = CommonSettingsManager.GetDefaultCurrency(); cart.OrderAddresses.Add(OrderHelper.CreateAddress()); cart.OrderAddresses[0].Name = "Home"; cart.OrderAddresses[0].FirstName = customerFirstName; cart.OrderAddresses[0].LastName = customerLastName; OrderForm orderForm = new OrderForm(); orderForm.Name = "default"; // Randomly pick a shipping method. Mediachase.Commerce.Orders.Dto.ShippingMethodDto smd = Mediachase.Commerce.Orders.Managers.ShippingManager.GetShippingMethods("en-us"); int shippingMethod = _random.Next(smd.ShippingMethod.Count); Guid shippingMethodId = smd.ShippingMethod[shippingMethod].ShippingMethodId; String shippingMethodName = smd.ShippingMethod[shippingMethod].Name; // Add line items // Random number of line items in an order int itemNum = _random.Next(3, 10); for (int i = 0; i < itemNum; i++) { orderForm.LineItems.Add(createLineItem(_random, shippingMethodId, shippingMethodName)); } // Add payments // Pay by phone orderForm.Payments.Add(OrderHelper.CreateInvoicePayment()); // Pay by credit card (sends out emails) //orderForm.Payments.Add(OrderHelper.CreateCreditCardPayment()); // Add discounts orderForm.Discounts.Add(OrderHelper.CreateOrderFormDiscount()); cart.OrderForms.Add(orderForm); cart.OrderForms[0].BillingAddressId = cart.OrderAddresses[0].Name; cart.RunWorkflow("CartValidate"); cart.RunWorkflow("CartPrepare"); cart.OrderForms[0].Payments[0].Amount = cart.Total; cart.RunWorkflow("CartCheckout"); // Last step PurchaseOrder po = cart.SaveAsPurchaseOrder(); // Randomize created date and time po.OrderForms[0].Created = randomDate(); // Randomize order status po.Status = randomStatus(); po.AcceptChanges(); }