コード例 #1
0
 /// <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;
 }
コード例 #2
0
        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();
        }
コード例 #3
0
 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;
 }
コード例 #4
0
 /// <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;
 }
        /// <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
                };
            }
        }