Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.64 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using Telerik.Sitefinity.Configuration;
  4. using Telerik.Sitefinity.Ecommerce.Catalog.Model;
  5. using Telerik.Sitefinity.Ecommerce.Orders.Model;
  6. using Telerik.Sitefinity.GenericContent.Model;
  7. using Telerik.Sitefinity.Modules.Ecommerce.Catalog;
  8. using Telerik.Sitefinity.Modules.Ecommerce.Configuration;
  9. using Telerik.Sitefinity.Modules.Ecommerce.Orders;
  10. using Telerik.Sitefinity.Modules.Ecommerce.Orders.Business;
  11. using Telerik.Sitefinity.Modules.Ecommerce.Orders.Web.UI.CheckoutViews;
  12. using Telerik.Sitefinity.Modules.Ecommerce.Shipping;
  13.  
  14. namespace SitefinityWebApp
  15. {
  16. public class CreateCartOrderAndCheckout
  17. {
  18. public static void ProcessOrder()
  19. {
  20. CatalogManager catalogManager = CatalogManager.GetManager();
  21. OrdersManager ordersManager = OrdersManager.GetManager();
  22.  
  23. Product product = catalogManager.GetProducts().FirstOrDefault(p => p.Title == ProductTitle &&
  24. p.Status == ContentLifecycleStatus.Live);
  25.  
  26. CartOrder cartOrder = ordersManager.CreateCartOrder();
  27. cartOrder.OrderDate = DateTime.Now;
  28. cartOrder.OrderStatus = OrderStatus.Pending;
  29. var nextOrderNumber = ordersManager.GetNextOrderNumber();
  30. cartOrder.OrderNumber = nextOrderNumber.Next;
  31. cartOrder.OrderDate = DateTime.Now;
  32. cartOrder.LastModified = DateTime.Now;
  33. cartOrder.OrderAttempts = 0;
  34. var currency = Config.Get<EcommerceConfig>().DefaultCurrency;
  35. cartOrder.Currency = currency;
  36. Customer customer = ordersManager.GetCustomers()
  37. .FirstOrDefault(c => c.CustomerFirstName == CustomerFirstName && c.CustomerLastName == CustomerLastName);
  38.  
  39. cartOrder.UserId = customer.Id;
  40.  
  41. CartDetail orderDetail = new CartDetail();
  42. orderDetail.Id = Guid.NewGuid();
  43. orderDetail.ProductId = product.Id;
  44. orderDetail.Quantity = 1;
  45. orderDetail.Sku = product.Title;
  46. orderDetail.ProductAvailable = true;
  47. orderDetail.Price = product.Price;
  48. orderDetail.IsShippable = true;
  49. cartOrder.Details.Add(orderDetail);
  50.  
  51. CheckoutState state = UpdateCheckoutState(customer, ordersManager, cartOrder);
  52. UpdateCartDetails(state, ordersManager, customer, cartOrder);
  53.  
  54. ordersManager.SaveChanges();
  55.  
  56. EcommerceOrderCalculator calculator = new EcommerceOrderCalculator();
  57. calculator.CalculateAndSaveChanges(cartOrder);
  58.  
  59. ordersManager.Checkout(cartOrder.Id, state, customer);
  60.  
  61. ordersManager.SaveChanges();
  62. catalogManager.SaveChanges();
  63. }
  64.  
  65. public static CheckoutState UpdateCheckoutState(Customer customer, OrdersManager ordersManager, CartOrder cartOrder)
  66. {
  67. ShippingManager shippingManager = ShippingManager.GetManager();
  68.  
  69. CheckoutState checkoutState = new CheckoutState();
  70.  
  71. var shippingMethod = shippingManager.GetShippingMethods().FirstOrDefault();
  72.  
  73. cartOrder.ShippingMethodId = shippingMethod.Id;
  74.  
  75. checkoutState.ShippingMethodId = shippingMethod.Id;
  76. checkoutState.ShippingServiceName = shippingMethod.Name;
  77.  
  78. checkoutState.ShippingFirstName = customer.CustomerFirstName;
  79. checkoutState.ShippingLastName = customer.CustomerLastName;
  80. checkoutState.ShippingCompany = Company;
  81. checkoutState.ShippingEmail = customer.CustomerEmail;
  82. checkoutState.ShippingAddress1 = AdressOne;
  83. checkoutState.ShippingAddress2 = AdressTwo;
  84. checkoutState.ShippingCity = City;
  85. checkoutState.ShippingCountry = Country;
  86. checkoutState.ShippingCountryName = Country;
  87. checkoutState.ShippingZip = Zip;
  88. checkoutState.ShippingPhoneNumber = Phone;
  89.  
  90. checkoutState.BillingFirstName = customer.CustomerFirstName;
  91. checkoutState.BillingLastName = customer.CustomerLastName;
  92. checkoutState.BillingCompany = Company;
  93. checkoutState.BillingEmail = customer.CustomerEmail;
  94. checkoutState.BillingAddress1 = AdressOne;
  95. checkoutState.BillingAddress2 = AdressTwo;
  96. checkoutState.BillingCity = City;
  97. checkoutState.BillingCountry = Country;
  98. checkoutState.BillingCountryName = Country;
  99. checkoutState.BillingZip = Zip;
  100. checkoutState.BillingPhoneNumber = Phone;
  101.  
  102. checkoutState.OrderRequiresShipping = true;
  103.  
  104. return checkoutState;
  105. }
  106.  
  107. private static void UpdateCartDetails(CheckoutState checkoutState, OrdersManager ordersManager, Customer customer, CartOrder cartOrder)
  108. {
  109. CartAddress shippingAddress = null;
  110. if (checkoutState.OrderRequiresShipping)
  111. {
  112. shippingAddress = ordersManager.CreateCartAddress();
  113.  
  114. shippingAddress.FirstName = checkoutState.ShippingFirstName;
  115. shippingAddress.LastName = checkoutState.ShippingLastName;
  116. shippingAddress.Address = checkoutState.ShippingAddress1;
  117. shippingAddress.Address2 = checkoutState.ShippingAddress2;
  118. shippingAddress.AddressType = AddressType.Shipping;
  119. shippingAddress.City = checkoutState.ShippingCity;
  120. shippingAddress.PostalCode = checkoutState.ShippingZip;
  121. shippingAddress.StateRegion = checkoutState.ShippingState;
  122. shippingAddress.Country = checkoutState.ShippingCountry;
  123. shippingAddress.Phone = checkoutState.ShippingPhoneNumber;
  124. shippingAddress.Email = checkoutState.ShippingEmail;
  125. shippingAddress.Company = checkoutState.ShippingCompany;
  126. shippingAddress.County = checkoutState.ShippingCounty;
  127.  
  128. cartOrder.Addresses.Add(shippingAddress);
  129. }
  130.  
  131. var billingAddress = ordersManager.CreateCartAddress();
  132.  
  133. billingAddress.FirstName = checkoutState.BillingFirstName;
  134. billingAddress.LastName = checkoutState.BillingLastName;
  135. billingAddress.Address = checkoutState.BillingAddress1;
  136. billingAddress.Address2 = checkoutState.BillingAddress2;
  137. billingAddress.AddressType = AddressType.Billing;
  138. billingAddress.City = checkoutState.BillingCity;
  139. billingAddress.PostalCode = checkoutState.BillingZip;
  140. billingAddress.StateRegion = checkoutState.BillingState;
  141. billingAddress.Country = checkoutState.BillingCountry;
  142. billingAddress.Phone = checkoutState.BillingPhoneNumber;
  143. billingAddress.Email = checkoutState.BillingEmail;
  144. billingAddress.Company = checkoutState.BillingCompany;
  145. billingAddress.County = checkoutState.BillingCounty;
  146.  
  147. cartOrder.Addresses.Add(billingAddress);
  148.  
  149. decimal vatTaxAmount = cartOrder.VatTaxAmount.HasValue ? cartOrder.VatTaxAmount.Value : 0;
  150. checkoutState.SubTotal = cartOrder.SubTotalDisplay + vatTaxAmount;
  151. checkoutState.TotalWeight = cartOrder.Weight;
  152. checkoutState.Tax = cartOrder.Tax;
  153. checkoutState.ShippingAmount = cartOrder.ShippingTotal;
  154. checkoutState.ShippingTax = cartOrder.ShippingTax;
  155. checkoutState.ShippingTaxRate = cartOrder.ShippingTaxRate;
  156. checkoutState.DiscountAmount = cartOrder.DiscountTotal;
  157. checkoutState.Total = cartOrder.Total;
  158.  
  159. var paymentmethod = ordersManager.GetPaymentMethods().FirstOrDefault();
  160. checkoutState.PaymentMethodId = paymentmethod.Id;
  161. checkoutState.PaymentMethodType = paymentmethod.PaymentMethodType;
  162.  
  163. CartPayment cartPayment = ordersManager.CreateCartPayment();
  164. cartPayment.PaymentMethodId = paymentmethod.Id;
  165. cartPayment.PaymentMethodType = paymentmethod.PaymentMethodType;
  166. cartPayment.CreditCardCustomerName = customer.CustomerFirstName;
  167. cartPayment.CreditCardNumber = CreditCardNumber;
  168.  
  169. cartOrder.Payments.Add(cartPayment);
  170. }
  171.  
  172. private const string ProductTitle = "DVD Movie";
  173. private const string CustomerFirstName = "John";
  174. private const string CustomerLastName = "Doe";
  175. private const string Country = "Test Country";
  176. private const string City = "Test city";
  177. private const string Zip = "6000";
  178. private const string AdressOne = "Adresss line 1";
  179. private const string AdressTwo = "Address line 2";
  180. private const string Company = "Test company";
  181. private const string Phone = "359123456";
  182. private const string CreditCardNumber = "123456789";
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement