示例#1
0
        private OrderPackage ShipItems(Commerce.Orders.Order o, string trackingNumber, string serviceProvider,
                                       string serviceCode)
        {
            var p = new OrderPackage
            {
                ShipDateUtc                 = DateTime.UtcNow,
                TrackingNumber              = trackingNumber,
                ShippingProviderId          = serviceProvider,
                ShippingProviderServiceCode = serviceCode
            };

            foreach (var li in o.Items)
            {
                if (li != null)
                {
                    var qty = li.Quantity;
                    p.Items.Add(new OrderPackageItem(li.ProductId, li.Id, qty));
                    p.Weight += li.ProductShippingWeight * qty;
                }
            }

            p.WeightUnits = WebAppSettings.ApplicationWeightUnits;
            o.Packages.Add(p);

            HccApp.OrdersShipPackage(p, o);
            o.EvaluateCurrentShippingStatus();
            HccApp.OrderServices.Orders.Update(o);

            return(p);
        }
示例#2
0
        /// <summary>
        ///     return the sum of all discounts for a given order
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        private decimal TotalOrderDiscounts(Commerce.Orders.Order order)
        {
            decimal discounts = 0;

            //order discounts
            discounts += order.TotalOrderDiscounts;

            foreach (var discount in order.ShippingDiscountDetails)
            {
                discounts += discount.Amount;
            }

            foreach (var lineitem in order.Items)
            {
                foreach (var discount in lineitem.DiscountDetails)
                {
                    discounts += discount.Amount;
                }
            }

            return(discounts);
        }