protected void SetCouponItems(CouponScope couponScope, CouponData couponData, ItemsClientData itemsClientData) { //coupon items list List<CouponEntryData> items = new List<CouponEntryData>(); List<ItemsDataClientData> includedItems = new List<ItemsDataClientData>(); List<ItemsDataClientData> excludedItems = new List<ItemsDataClientData>(); //get included/excluded items switch (couponScope) { case CouponScope.EntireBasket: couponData.CouponType = EkEnumeration.CouponType.BasketLevel; break; case CouponScope.AllApprovedItems: case CouponScope.MostExpensiveItem: case CouponScope.LeastExpensiveItem: includedItems = itemsClientData.IncludedItems; excludedItems = itemsClientData.ExcludedItems; couponData.CouponType = EkEnumeration.CouponType.AllItems; break; } includedItems = includedItems == null ? new List<ItemsDataClientData>() : includedItems; excludedItems = excludedItems == null ? new List<ItemsDataClientData>() : excludedItems; //build coupon included items list foreach (ItemsDataClientData item in includedItems) { if (item.MarkedForDelete == false) { CouponEntryData includedItem = new CouponEntryData(); includedItem.CouponId = couponData.Id; includedItem.ObjectId = item.Id; switch (item.Type.ToLower()) { case "catalog": includedItem.ObjectType = EkEnumeration.CMSObjectTypes.Folder; break; case "taxonomy": includedItem.ObjectType = EkEnumeration.CMSObjectTypes.TaxonomyNode; break; case "product": includedItem.ObjectType = EkEnumeration.CMSObjectTypes.CatalogEntry; break; } includedItem.IsIncluded = true; items.Add(includedItem); } } //build coupon excluded items list foreach (ItemsDataClientData item in excludedItems) { if (item.MarkedForDelete == false) { CouponEntryData excludedItem = new CouponEntryData(); excludedItem.CouponId = couponData.Id; excludedItem.ObjectId = item.Id; switch (item.Type.ToLower()) { case "catalog": excludedItem.ObjectType = EkEnumeration.CMSObjectTypes.Folder; break; case "taxonomy": excludedItem.ObjectType = EkEnumeration.CMSObjectTypes.TaxonomyNode; break; case "product": excludedItem.ObjectType = EkEnumeration.CMSObjectTypes.CatalogEntry; break; } excludedItem.IsIncluded = false; items.Add(excludedItem); } } //add items to coupon _CouponApi.SaveCouponApplications(couponData.Id, items); }
protected void GetCouponScopeData() { // gather scope info (from ui), and transfer into CouponData object Coupons.Scope.ClientData.ScopeClientData scopeData = (Coupons.Scope.ClientData.ScopeClientData)this.ucScopeControl.GetClientData(); _RequestedCoupon.AppliesToQuantity = scopeData.IsApplicabletoallQuantities; _RequestedCoupon.IsApplicabletoSubscriptions = scopeData.IsApplicabletoSubscriptions; _RequestedCoupon.OnePerCustomer = scopeData.IsOnePerCustomer; _RequestedCoupon.MaximumUses = scopeData.MaxRedemptions; _RequestedCoupon.MinimumAmount = scopeData.MinBasketValue; _RequestedCoupon.IsCombinable = scopeData.IsCombinable; _RequestedCoupon.StartDate = scopeData.StartDate; _RequestedCoupon.ExpirationDate = scopeData.ExpirationDate; // determine application scope (translate enumerations): switch (scopeData.CouponScope) { case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.AllApprovedItems: _RequestedCoupon.CouponType = EkEnumeration.CouponType.AllItems; break; case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.EntireBasket: _RequestedCoupon.CouponType = EkEnumeration.CouponType.BasketLevel; break; case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.LeastExpensiveItem: _RequestedCoupon.CouponType = EkEnumeration.CouponType.LeastExpensiveItem; break; case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.MostExpensiveItem: _RequestedCoupon.CouponType = EkEnumeration.CouponType.MostExpensiveItem; break; } //set coupon scope - used by SaveCoupon() _CouponScope = scopeData.CouponScope; }