Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- using Telerik.Sitefinity.Configuration;
- using Telerik.Sitefinity.Ecommerce.Catalog.Model;
- using Telerik.Sitefinity.Ecommerce.Orders.Model;
- using Telerik.Sitefinity.GenericContent.Model;
- using Telerik.Sitefinity.Modules.Ecommerce.Catalog;
- using Telerik.Sitefinity.Modules.Ecommerce.Configuration;
- using Telerik.Sitefinity.Modules.Ecommerce.Orders;
- using Telerik.Sitefinity.Modules.Ecommerce.Orders.Business;
- using Telerik.Sitefinity.Modules.Ecommerce.Orders.Web.UI.CheckoutViews;
- using Telerik.Sitefinity.Modules.Ecommerce.Shipping;
- namespace SitefinityWebApp
- {
- public class CreateCartOrderAndCheckout
- {
- public static void ProcessOrder()
- {
- CatalogManager catalogManager = CatalogManager.GetManager();
- OrdersManager ordersManager = OrdersManager.GetManager();
- Product product = catalogManager.GetProducts().FirstOrDefault(p => p.Title == ProductTitle &&
- p.Status == ContentLifecycleStatus.Live);
- CartOrder cartOrder = ordersManager.CreateCartOrder();
- cartOrder.OrderDate = DateTime.Now;
- cartOrder.OrderStatus = OrderStatus.Pending;
- var nextOrderNumber = ordersManager.GetNextOrderNumber();
- cartOrder.OrderNumber = nextOrderNumber.Next;
- cartOrder.OrderDate = DateTime.Now;
- cartOrder.LastModified = DateTime.Now;
- cartOrder.OrderAttempts = 0;
- var currency = Config.Get<EcommerceConfig>().DefaultCurrency;
- cartOrder.Currency = currency;
- Customer customer = ordersManager.GetCustomers()
- .FirstOrDefault(c => c.CustomerFirstName == CustomerFirstName && c.CustomerLastName == CustomerLastName);
- cartOrder.UserId = customer.Id;
- CartDetail orderDetail = new CartDetail();
- orderDetail.Id = Guid.NewGuid();
- orderDetail.ProductId = product.Id;
- orderDetail.Quantity = 1;
- orderDetail.Sku = product.Title;
- orderDetail.ProductAvailable = true;
- orderDetail.Price = product.Price;
- orderDetail.IsShippable = true;
- cartOrder.Details.Add(orderDetail);
- CheckoutState state = UpdateCheckoutState(customer, ordersManager, cartOrder);
- UpdateCartDetails(state, ordersManager, customer, cartOrder);
- ordersManager.SaveChanges();
- EcommerceOrderCalculator calculator = new EcommerceOrderCalculator();
- calculator.CalculateAndSaveChanges(cartOrder);
- ordersManager.Checkout(cartOrder.Id, state, customer);
- ordersManager.SaveChanges();
- catalogManager.SaveChanges();
- }
- public static CheckoutState UpdateCheckoutState(Customer customer, OrdersManager ordersManager, CartOrder cartOrder)
- {
- ShippingManager shippingManager = ShippingManager.GetManager();
- CheckoutState checkoutState = new CheckoutState();
- var shippingMethod = shippingManager.GetShippingMethods().FirstOrDefault();
- cartOrder.ShippingMethodId = shippingMethod.Id;
- checkoutState.ShippingMethodId = shippingMethod.Id;
- checkoutState.ShippingServiceName = shippingMethod.Name;
- checkoutState.ShippingFirstName = customer.CustomerFirstName;
- checkoutState.ShippingLastName = customer.CustomerLastName;
- checkoutState.ShippingCompany = Company;
- checkoutState.ShippingEmail = customer.CustomerEmail;
- checkoutState.ShippingAddress1 = AdressOne;
- checkoutState.ShippingAddress2 = AdressTwo;
- checkoutState.ShippingCity = City;
- checkoutState.ShippingCountry = Country;
- checkoutState.ShippingCountryName = Country;
- checkoutState.ShippingZip = Zip;
- checkoutState.ShippingPhoneNumber = Phone;
- checkoutState.BillingFirstName = customer.CustomerFirstName;
- checkoutState.BillingLastName = customer.CustomerLastName;
- checkoutState.BillingCompany = Company;
- checkoutState.BillingEmail = customer.CustomerEmail;
- checkoutState.BillingAddress1 = AdressOne;
- checkoutState.BillingAddress2 = AdressTwo;
- checkoutState.BillingCity = City;
- checkoutState.BillingCountry = Country;
- checkoutState.BillingCountryName = Country;
- checkoutState.BillingZip = Zip;
- checkoutState.BillingPhoneNumber = Phone;
- checkoutState.OrderRequiresShipping = true;
- return checkoutState;
- }
- 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 = CreditCardNumber;
- cartOrder.Payments.Add(cartPayment);
- }
- private const string ProductTitle = "DVD Movie";
- private const string CustomerFirstName = "John";
- private const string CustomerLastName = "Doe";
- private const string Country = "Test Country";
- private const string City = "Test city";
- private const string Zip = "6000";
- private const string AdressOne = "Adresss line 1";
- private const string AdressTwo = "Address line 2";
- private const string Company = "Test company";
- private const string Phone = "359123456";
- private const string CreditCardNumber = "123456789";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement