internal static CartAddress GetBillingAddressFromCheckoutState(OrdersManager ordersManager, CheckoutState checkoutState) { CartAddress billingAddress = ordersManager.CreateCartAddress(); billingAddress.FirstName = checkoutState.BillingFirstName; billingAddress.LastName = checkoutState.BillingLastName; billingAddress.Email = checkoutState.BillingEmail; billingAddress.Address = checkoutState.BillingAddress1; billingAddress.Address2 = checkoutState.BillingAddress2; billingAddress.AddressType = AddressType.Billing; billingAddress.City = checkoutState.BillingCity; billingAddress.PostalCode = checkoutState.BillingZip; billingAddress.StateRegion = checkoutState.BillingState; billingAddress.Country = checkoutState.BillingCountry; billingAddress.Phone = checkoutState.BillingPhoneNumber; billingAddress.Email = checkoutState.BillingEmail; billingAddress.Company = checkoutState.BillingCompany; return(billingAddress); }
private static void UpdateCartDetails(CheckoutState checkoutState, OrdersManager ordersManager, Customer customer, CartOrder cartOrder) { CartAddress shippingAddress = null; if (checkoutState.OrderRequiresShipping) { shippingAddress = ordersManager.CreateCartAddress(); shippingAddress.FirstName = checkoutState.ShippingFirstName; shippingAddress.LastName = checkoutState.ShippingLastName; shippingAddress.Address = checkoutState.ShippingAddress1; shippingAddress.Address2 = checkoutState.ShippingAddress2; shippingAddress.AddressType = AddressType.Shipping; shippingAddress.City = checkoutState.ShippingCity; shippingAddress.PostalCode = checkoutState.ShippingZip; shippingAddress.StateRegion = checkoutState.ShippingState; shippingAddress.Country = checkoutState.ShippingCountry; shippingAddress.Phone = checkoutState.ShippingPhoneNumber; shippingAddress.Email = checkoutState.ShippingEmail; shippingAddress.Company = checkoutState.ShippingCompany; shippingAddress.County = checkoutState.ShippingCounty; cartOrder.Addresses.Add(shippingAddress); } var billingAddress = ordersManager.CreateCartAddress(); billingAddress.FirstName = checkoutState.BillingFirstName; billingAddress.LastName = checkoutState.BillingLastName; billingAddress.Address = checkoutState.BillingAddress1; billingAddress.Address2 = checkoutState.BillingAddress2; billingAddress.AddressType = AddressType.Billing; billingAddress.City = checkoutState.BillingCity; billingAddress.PostalCode = checkoutState.BillingZip; billingAddress.StateRegion = checkoutState.BillingState; billingAddress.Country = checkoutState.BillingCountry; billingAddress.Phone = checkoutState.BillingPhoneNumber; billingAddress.Email = checkoutState.BillingEmail; billingAddress.Company = checkoutState.BillingCompany; billingAddress.County = checkoutState.BillingCounty; cartOrder.Addresses.Add(billingAddress); decimal vatTaxAmount = cartOrder.VatTaxAmount.HasValue ? cartOrder.VatTaxAmount.Value : 0; checkoutState.SubTotal = cartOrder.SubTotalDisplay + vatTaxAmount; checkoutState.TotalWeight = cartOrder.Weight; checkoutState.Tax = cartOrder.Tax; checkoutState.ShippingAmount = cartOrder.ShippingTotal; checkoutState.ShippingTax = cartOrder.ShippingTax; checkoutState.ShippingTaxRate = cartOrder.ShippingTaxRate; checkoutState.DiscountAmount = cartOrder.DiscountTotal; checkoutState.Total = cartOrder.Total; var paymentmethod = ordersManager.GetPaymentMethods().FirstOrDefault(); checkoutState.PaymentMethodId = paymentmethod.Id; checkoutState.PaymentMethodType = paymentmethod.PaymentMethodType; CartPayment cartPayment = ordersManager.CreateCartPayment(); cartPayment.PaymentMethodId = paymentmethod.Id; cartPayment.PaymentMethodType = paymentmethod.PaymentMethodType; cartPayment.CreditCardCustomerName = customer.CustomerFirstName; cartPayment.CreditCardNumber = MockCreditCardNumber; cartOrder.Payments.Add(cartPayment); }
internal static IPaymentResponse PlaceOrder(OrdersManager ordersManager, CatalogManager catalogManager, UserManager userManager, RoleManager roleManager, UserProfileManager userProfileManager, CheckoutState checkoutState, Guid cartOrderId) { CartOrder cartOrder = ordersManager.GetCartOrder(cartOrderId); cartOrder.Addresses.Clear(); cartOrder.Payments.Clear(); //set the default currency of the order string defaultCurrency = Config.Get <EcommerceConfig>().DefaultCurrency; cartOrder.Currency = defaultCurrency; // set the shipping address CartAddress shippingAddress = CartHelper.GetShippingAddressFromCheckoutState(ordersManager, checkoutState); cartOrder.Addresses.Add(shippingAddress); // set the billing address CartAddress billingAddress = CartHelper.GetBillingAddressFromCheckoutState(ordersManager, checkoutState); cartOrder.Addresses.Add(billingAddress); //Get the first payment method in the shop // set the payment CartPayment payment = CartHelper.GetCartPaymentFromCheckoutState(ordersManager, checkoutState); cartOrder.Payments.Add(payment); ordersManager.SaveChanges(); // Get current customer or create new one Customer customer = UserProfileHelper.GetCustomerInfoOrCreateOneIfDoesntExsist(userProfileManager, ordersManager, checkoutState); // Save the customer address CustomerAddressHelper.SaveCustomerAddressOfCurrentUser(checkoutState, customer); //Use the API to checkout IPaymentResponse paymentResponse = ordersManager.Checkout(cartOrderId, checkoutState, customer); // record the "success" state of the checkout checkoutState.IsPaymentSuccessful = paymentResponse.IsSuccess; Order order = ordersManager.GetOrder(cartOrderId); //Increment the order IncrementOrderNumber(ordersManager, order); // add the order to customer customer.Orders.Add(order); // Update the order order.Customer = customer; ordersManager.SaveChanges(); if (order.OrderStatus == OrderStatus.Paid) { UserProfileHelper.AssignCustomerToRoles(userManager, roleManager, catalogManager, SecurityManager.GetCurrentUserId(), order); EmailHelper.SendOrderPlacedEmailToClientAndMerchant(cartOrder, checkoutState, order.OrderNumber); } return(paymentResponse); }