/// <summary> /// Initializes a new instance of the <see cref="CartAdjustmentBaseJsonResult"/> class. /// </summary> /// <param name="adjustment">The cart adjustment.</param> public CartAdjustmentBaseJsonResult(CartAdjustment adjustment) { Assert.ArgumentNotNull(adjustment, "adjustment"); this.Amount = adjustment.Amount.ToString("C", Sitecore.Context.Language.CultureInfo); this.Description = adjustment.Description; this.IsCharge = adjustment.IsCharge; this.LineNumber = adjustment.LineNumber; this.Percentage = adjustment.Percentage; }
private void MapResponseFromCommerceToConnectOrder(string response, Order outComeOrder) { var jo = JObject.Parse(response); outComeOrder.ShopName = jo["ShopName"]?.ToString(); outComeOrder.ExternalId = jo["FriendlyId"]?.ToString(); outComeOrder.UserId = jo["Components"][2]?["CustomerId"]?.ToString(); outComeOrder.CustomerId = jo["Components"][2]?["CustomerId"]?.ToString(); outComeOrder.Name = jo["Name"]?.ToString(); outComeOrder.CurrencyCode = jo["Totals"]?["GrandTotal"]["CurrencyCode"].ToString();// jo["Components"][2]?["Currency"]?.ToString(); // todo Populate it from auth outComeOrder.Status = jo["Status"]?.ToString(); outComeOrder.Email = jo["Components"][2]?["Email"]?.ToString(); outComeOrder.OrderID = jo["FriendlyId"]?.ToString(); outComeOrder.OrderDate = System.Convert.ToDateTime(jo["OrderPlacedDate"].ToString()); outComeOrder.TrackingNumber = jo["OrderConfirmationId"].ToString(); outComeOrder.IsOfflineOrder = true; outComeOrder.Adjustments = new List <CartAdjustment>(); JArray authAdjustments = (JArray)jo["Adjustments"]; foreach (var item in authAdjustments) { var adj = new CartAdjustment(); adj.Amount = System.Convert.ToDecimal(item["Adjustment"]?["Amount"]?.ToString()); adj.Description = item["AdjustmentType"]?.ToString(); outComeOrder.Adjustments.Add(adj); } outComeOrder.Lines = new List <CartLine>(); JArray lines = (JArray)jo["Lines"]; foreach (var lineItem in lines) { var line = new CartLine(); line.ExternalCartLineId = lineItem["Id"]?.ToString(); line.Total = new Sitecore.Commerce.Entities.Prices.Total(); line.Total.Amount = System.Convert.ToDecimal(lineItem["Totals"]?["GrandTotal"]?["Amount"].ToString()); line.Total.CurrencyCode = lineItem["Totals"]?["GrandTotal"]?["CurrencyCode"].ToString(); line.Product = new Sitecore.Commerce.Entities.Carts.CartProduct(); line.Product.ProductId = lineItem["ItemId"].ToString(); line.Product.Price = new Sitecore.Commerce.Entities.Prices.Price(); line.Product.Price.Amount = System.Convert.ToDecimal(lineItem["UnitListPrice"]?["Amount"]?.ToString()); line.Product.Price.CurrencyCode = lineItem["UnitListPrice"]?["CurrencyCode"]?.ToString(); line.Product.ProductName = lineItem["ChildComponents"][0]["DisplayName"].ToString(); line.Quantity = System.Convert.ToDecimal(lineItem["Quantity"]?.ToString()); outComeOrder.Lines.Add(line); } outComeOrder.Total = new Sitecore.Commerce.Entities.Prices.Total(); outComeOrder.Total.Amount = System.Convert.ToDecimal(jo["Totals"]?["GrandTotal"]["Amount"].ToString()); outComeOrder.Total.CurrencyCode = jo["Totals"]?["GrandTotal"]["CurrencyCode"].ToString(); outComeOrder.Total.TaxTotal = new Sitecore.Commerce.Entities.Prices.TaxTotal(); }
public CartAdjustmentApiModel(CartAdjustment adjustment) { Assert.ArgumentNotNull(adjustment, nameof(adjustment)); Amount = adjustment.Amount.ToCurrency(); Description = adjustment.Description; IsCharge = adjustment.IsCharge; LineNumber = adjustment.LineNumber; Percentage = adjustment.Percentage; }
/// <summary> /// Maps order from model. /// </summary> /// <param name="order">The order.</param> /// <param name="orderModel">The order model.</param> public static void MapOrderFromModel([NotNull] this Order order, [NotNull] OrderModel orderModel) { Assert.ArgumentNotNull(order, "order"); Assert.ArgumentNotNull(orderModel, "orderModel"); order.MapCartBaseFromModel(orderModel); order.OrderDate = orderModel.CreatedDateTime; order.OrderID = orderModel.Id.ToString(); if (orderModel.Discount > 0) { var adjusment = new CartAdjustment { Amount = orderModel.Discount }; order.Adjustments = (new List <CartAdjustment> { adjusment }).AsReadOnly(); } var payment = new PaymentInfo { PaymentMethodID = orderModel.PaymentMethod }; payment.Properties.Add(new PropertyItem("status", orderModel.PaymentStatus)); order.Payment = (new List <PaymentInfo> { payment }).AsReadOnly(); var shipping = new List <ShippingInfo>(); foreach (ShipmentModel model in orderModel.Shipments) { var info = new ShippingInfo(); info.MapShipmentFromModel(model); shipping.Add(info); } order.Shipping = shipping.AsReadOnly(); var orderLines = new List <CartLine>(); foreach (var model in orderModel.OrderItems) { CartLine line = model.ToObecOrderLine(); orderLines.Add( new CartLine { ExternalCartLineId = line.ExternalCartLineId, Product = line.Product, Properties = line.Properties, Quantity = line.Quantity, Total = line.Total }); } order.Lines = orderLines.AsReadOnly(); var parties = new List <Party>(); foreach (AddressModel address in orderModel.Addresses) { var party = new Party(); party.MapPartyFromNopAddress(address); parties.Add(party); } order.Parties = parties.AsReadOnly(); if (orderModel.Total != null) { order.Total = new Total { Amount = orderModel.Total.Value }; } }