/// <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); } } }
/// <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(); }