public ActionResult Completed() { //validation if ((_workContext.CurrentCustomer.IsGuest() && !_orderSettings.AnonymousCheckoutAllowed)) { return(new HttpUnauthorizedResult()); } //model var model = new CheckoutCompletedModel(); var order = _orderService.SearchOrders(_storeContext.CurrentStore.Id, _workContext.CurrentCustomer.Id, null, null, null, null, null, null, null, null, 0, 1).FirstOrDefault(); if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId) { return(HttpNotFound()); } //disable "order completed" page? if (_orderSettings.DisableOrderCompletedPage) { return(RedirectToAction("Details", "Order", new { id = order.Id })); } model.OrderId = order.Id; model.OrderNumber = order.GetOrderNumber(); return(View(model)); }
public virtual CheckoutCompletedModel PrepareCheckoutCompletedModel(Order order) { if (order == null) { throw new ArgumentNullException("order"); } var model = new CheckoutCompletedModel { OrderId = order.Id, OnePageCheckoutEnabled = _orderSettings.OnePageCheckoutEnabled }; return(model); }
/// <summary> /// Prepare checkout completed model /// </summary> /// <param name="subscription">Subscription</param> /// <returns>Checkout completed model</returns> public virtual CheckoutCompletedModel PrepareCheckoutCompletedModel(Subscription subscription) { if (subscription == null) { throw new ArgumentNullException("subscription"); } var model = new CheckoutCompletedModel { SubscriptionId = subscription.Id, OnePageCheckoutEnabled = _subscriptionSettings.OnePageCheckoutEnabled, CustomSubscriptionNumber = subscription.CustomSubscriptionNumber }; return(model); }
/// <summary> /// Prepare checkout completed model /// </summary> /// <param name="order">Order</param> /// <returns> /// A task that represents the asynchronous operation /// The task result contains the checkout completed model /// </returns> public virtual Task <CheckoutCompletedModel> PrepareCheckoutCompletedModelAsync(Order order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } var model = new CheckoutCompletedModel { OrderId = order.Id, OnePageCheckoutEnabled = _orderSettings.OnePageCheckoutEnabled, CustomOrderNumber = order.CustomOrderNumber }; return(Task.FromResult(model)); }
public ActionResult Completed(int?orderId) { ////validation //if ((_workContext.CurrentCustomer.IsGuest() && !_orderSettings.AnonymousCheckoutAllowed)) // return new HttpUnauthorizedResult(); GutterCleanOrder order = null; if (orderId.HasValue) { //load order by identifier (if provided) order = _orderService.GetOrderById(orderId.Value); } if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId) { return(RedirectToRoute("HomePage")); } //model var model = new CheckoutCompletedModel { OrderId = order.Id, }; model.QuestionDeliveryTimeStr = "5 business days"; if (order.QuestionDeliveryTime == 1) { model.QuestionDeliveryTimeStr = "5 business days"; } if (order.QuestionDeliveryTime == 2) { model.QuestionDeliveryTimeStr = "8 hours"; } if (order.QuestionDeliveryTime == 3) { model.QuestionDeliveryTimeStr = "4 hours"; } return(View(model)); }
/// <summary> /// Prepare checkout completed model /// </summary> /// <param name="order">Order</param> /// <returns>Checkout completed model</returns> public virtual CheckoutCompletedModel PrepareCheckoutCompletedModel(Order order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } var model = new CheckoutCompletedModel { OrderId = order.Id, OnePageCheckoutEnabled = _orderSettings.OnePageCheckoutEnabled, CustomOrderNumber = order.CustomOrderNumber, OrderTotal = order.OrderTotal }; return(model); }
/// <summary> /// Prepare checkout completed model /// </summary> /// <param name="order">Order</param> /// <returns>Checkout completed model</returns> public virtual CheckoutCompletedModel PrepareCheckoutCompletedModel(Order order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } var model = new CheckoutCompletedModel { OrderId = order.Id, OnePageCheckoutEnabled = _orderSettings.OnePageCheckoutEnabled, CustomOrderNumber = order.CustomOrderNumber, HasPaid = order.PaymentMethodSystemName != "Payments.CheckMoneyOrder" }; return(model); }
/// <summary> /// Prepare checkout completed model /// </summary> /// <param name="order">Order</param> /// <returns>Checkout completed model</returns> public virtual CheckoutCompletedModel PrepareCheckoutCompletedModel(Order order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } var model = new CheckoutCompletedModel { OrderId = order.Id, OnePageCheckoutEnabled = _orderSettings.OnePageCheckoutEnabled, CustomOrderNumber = order.CustomOrderNumber, PaymentMethodSystemName = order.PaymentMethodSystemName, CustomOrderVoucher = order.CaptureTransactionResult }; return(model); }
/// <summary> /// Prepare checkout completed model /// </summary> /// <param name="order">Order</param> /// <returns>Checkout completed model</returns> public virtual CheckoutCompletedModel PrepareCheckoutCompletedModel(Order order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } var model = new CheckoutCompletedModel { OrderId = order.Id, OnePageCheckoutEnabled = _orderSettings.OnePageCheckoutEnabled, CustomOrderNumber = order.CustomOrderNumber, CustomerEmail = order.ShippingAddress.Email, EstimatedDeliveryDate = DateTime.Now.AddDays(1) }; return(model); }
public string GetOrderCompletedScript(CheckoutCompletedModel model) { //var analyticsTrackingScript = _segmentAnalyticsSettings.TrackingScript + Environment.NewLine; var order = GetOrder(model); if (order == null || _genericAttributeService.GetAttribute <bool>(order, SegmentAnalyticsSettings.ORDER_ALREADY_PROCESSED_ATTRIBUTE_NAME)) { return(null); } var segmentAnalyticsSettings = _settingService.LoadSetting <SegmentAnalyticsSettings>(_storeContext.CurrentStore.Id); var orderCompleted = new SegmentOrderCompleted { OrderId = order.CustomOrderNumber, Affiliation = _storeContext.CurrentStore.Name, Currency = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode, Total = order.OrderTotal, Tax = order.OrderTax, Shipping = segmentAnalyticsSettings.IncludingTax ? order.OrderShippingInclTax : order.OrderShippingExclTax }; var position = 1; order.OrderItems.ForEach(oi => { orderCompleted.Products.Add(new SegmentProduct { ProductId = oi.ProductId.ToString(), Sku = _productService.FormatSku(oi.Product, oi.AttributesXml), Name = oi.Product.Name, Category = _categoryService.GetProductCategoriesByProductId(oi.ProductId).FirstOrDefault()?.Category.Name, Price = segmentAnalyticsSettings.IncludingTax ? oi.UnitPriceInclTax : oi.UnitPriceExclTax, Quantity = oi.Quantity, Position = position++ }); }); _genericAttributeService.SaveAttribute(order, SegmentAnalyticsSettings.ORDER_ALREADY_PROCESSED_ATTRIBUTE_NAME, true); return(orderCompleted.GetScript()); }
/// <summary> /// Prepare checkout completed model /// </summary> /// <param name="order">Order</param> /// <returns> /// A task that represents the asynchronous operation /// The task result contains the checkout completed model /// </returns> public virtual async Task <CheckoutCompletedModel> PrepareCheckoutCompletedModelAsync(Order order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } var now = await _dateTimeHelper.ConvertToUserTimeAsync(DateTime.Now); var untilLunchTimeDeliveryDeadline = new DateTime(now.Year, now.Month, now.Day, 11, 0, 0); var lunchTime = new DateTime(now.Year, now.Month, now.Day, 13, 0, 0); string message; if (now < new DateTime(now.Year, now.Month, now.Day, 12, 00, 00)) { message = "Your lunch will be delivered at 1 PM."; } else if (now < new DateTime(now.Year, now.Month, now.Day, 13, 30, 00)) { message = "Your lunch will be delivered at 2 PM."; } else if (now < new DateTime(now.Year, now.Month, now.Day, 15, 30, 00)) { message = "Your lunch will be delivered at 4 PM."; } else { message = "Your lunch will be delivered TOMORROW at 1 PM."; } var model = new CheckoutCompletedModel { OrderId = order.Id, OnePageCheckoutEnabled = _orderSettings.OnePageCheckoutEnabled, CustomOrderNumber = order.CustomOrderNumber, DeliveryTimeWindowMessage = message }; return(model); }
public ActionResult Completed(int?orderid, int?emailinvoiceid, int?hasnhs) { if (emailinvoiceid.Value == 0 && _workContext.CurrentProfile.IsAnonymous) { return(new HttpUnauthorizedResult()); } var thankYouTitle = string.Empty; var message = string.Empty; // TODO: To implement Trustbadge code //var enableReview = true; if (emailinvoiceid.HasValue && emailinvoiceid.Value <= 0 && orderid.HasValue && orderid.Value > 0) { thankYouTitle = string.Format("Your order number is {0}.", orderid.Value); if (hasnhs.HasValue && hasnhs.Value == 1) { message = string.Format(@"<h4>Now post your prescription to Apollo.</h4> <p>Write your order reference number (<b>{0}</b>) on the top of your prescription.<br/> Send your original prescription to the address below. You do not need to attach a stamp. </p> <p><b> FREEPOST RSRB-YBYA-EGBL,<br /> Apollo Prescriptions,<br /> Unit 27, Orbital 25 Business Park,<br /> Dwight Road, Watford,<br /> Herts WD18 9DA </b> </p>", orderid.Value); } } //if (emailinvoiceid.HasValue && emailinvoiceid.Value > 0) // enableReview = false; //if (_workContext.CurrentProfile.IsAnonymous) // enableReview = false; var model = new CheckoutCompletedModel { OrderId = orderid, EmailInvoiceId = emailinvoiceid, ThankYouTitle = thankYouTitle, Message = message }; if (orderid.HasValue && orderid.Value > 0 && _workContext.CurrentProfile.IsAnonymous == false) { var profileId = _workContext.CurrentProfile.Id; //var order = _orderService.GetCompleteOrderByIdAndProfileId(orderid.Value, profileId); //var account = _accountService.GetAccountByProfileId(profileId); //model.Email = account.Email; //model.Amount = string.Format("{0:0.00}", order.GrandTotal); //model.CurrencyCode = order.CurrencyCode; //model.PaymentType = order.PaymentMethod; _cartService.ClearCart(profileId); } return(View(model)); }
public ActionResult Completed(int? orderId) { ////validation //if ((_workContext.CurrentCustomer.IsGuest() && !_orderSettings.AnonymousCheckoutAllowed)) // return new HttpUnauthorizedResult(); GutterCleanOrder order = null; if (orderId.HasValue) { //load order by identifier (if provided) order = _orderService.GetOrderById(orderId.Value); } if (order == null || order.Deleted || _workContext.CurrentCustomer.Id != order.CustomerId) { return RedirectToRoute("HomePage"); } //model var model = new CheckoutCompletedModel { OrderId = order.Id, }; model.QuestionDeliveryTimeStr = "5 business days"; if (order.QuestionDeliveryTime == 1) model.QuestionDeliveryTimeStr = "5 business days"; if(order.QuestionDeliveryTime==2) model.QuestionDeliveryTimeStr = "8 hours"; if (order.QuestionDeliveryTime == 3) model.QuestionDeliveryTimeStr = "4 hours"; return View(model); }
private Order GetOrder(CheckoutCompletedModel model) { return((model == null) ? _orderService.SearchOrders(storeId: _storeContext.CurrentStore.Id, customerId: _workContext.CurrentCustomer.Id, pageSize: 1).FirstOrDefault() : _orderService.GetOrderById(model.OrderId)); }