/// <summary>
        /// Initializes this object based on the data contained in the provided cart.
        /// </summary>
        /// <param name="cart">The cart used to initialize this object.</param>
        public override void Initialize(Commerce.Entities.Carts.Cart cart, IProductResolver productResolver)
        {
            base.Initialize(cart, productResolver);

            CommerceCart commerceCart = cart as CommerceCart;

            if (commerceCart == null)
            {
                return;
            }

            if (commerceCart.OrderForms.Count > 0)
            {
                foreach (var promoCode in (commerceCart.OrderForms[0].PromoCodes ?? Enumerable.Empty <String>()))
                {
                    this.PromoCodes.Add(promoCode);
                }
            }

            decimal totalSavings = 0;

            foreach (var lineitem in cart.Lines)
            {
                totalSavings += ((CommerceTotal)lineitem.Total).LineItemDiscountAmount;
            }

            this.Discount = totalSavings.ToCurrency(StorefrontManager.GetCustomerCurrency());
        }
        /// <summary>
        /// Initializes this object based on the data contained in the provided cart.
        /// </summary>
        /// <param name="cart">The cart used to initialize this object.</param>
        public override void Initialize(Commerce.Entities.Carts.Cart cart)
        {
            base.Initialize(cart);

            if (cart != null)
            {
                foreach (var adjustment in (cart.Adjustments ?? Enumerable.Empty <CartAdjustment>()))
                {
                    this.PromoCodes.Add(adjustment.Description);
                }
            }
        }
Example #3
0
        /// <summary>
        /// Translates the addresses.
        /// </summary>
        /// <param name="collection">The collection.</param>
        /// <param name="cart">The cart.</param>
        protected override void TranslateAddresses(OrderAddressCollection collection, Commerce.Entities.Carts.Cart cart)
        {
            List <Party> partyList = new List <Party>();

            foreach (OrderAddress commerceAddress in collection)
            {
                int partyType = (commerceAddress[CommerceServerStorefrontConstants.KnowWeaklyTypesProperties.PartyType] == null) ? 1 : System.Convert.ToInt32(commerceAddress[CommerceServerStorefrontConstants.KnowWeaklyTypesProperties.PartyType], CultureInfo.InvariantCulture);

                Party party = null;

                switch (partyType)
                {
                default:
                case 1:
                    party = this.EntityFactory.Create <Commerce.Connect.CommerceServer.Orders.Models.CommerceParty>("Party");
                    this.TranslateAddress(commerceAddress, party as Sitecore.Commerce.Connect.CommerceServer.Orders.Models.CommerceParty);
                    break;

                case 2:
                    party = this.EntityFactory.Create <EmailParty>("EmailParty");
                    this.TranslateAddress(commerceAddress, party as EmailParty);
                    break;
                }

                partyList.Add(party);
            }

            cart.Parties = partyList.AsReadOnly();
        }