/// <summary>
		/// Removes a coupon code
		/// </summary>
		/// <param name="customer">Customer</param>
		/// <param name="couponCode">Coupon code to remove</param>
		/// <returns>New coupon codes document</returns>
		public static void RemoveGiftCardCouponCode(this Customer customer, string couponCode)
		{
			//get applied coupon codes
			var existingCouponCodes = customer.ParseAppliedGiftCardCouponCodes();

			//clear them
			var genericAttributeService = EngineContext.Current.Resolve<IGenericAttributeService>();
			genericAttributeService.SaveAttribute<string>(customer, SystemCustomerAttributeNames.GiftCardCouponCodes, null);

			//save again except removed one
			foreach (string existingCouponCode in existingCouponCodes)
				if (!existingCouponCode.Equals(couponCode, StringComparison.InvariantCultureIgnoreCase))
					customer.ApplyGiftCardCouponCode(existingCouponCode);
		}
        /// <summary>
        /// Removes a coupon code
        /// </summary>
        /// <param name="customer">Customer</param>
        /// <param name="couponCode">Coupon code to remove</param>
        /// <returns>New coupon codes document</returns>
        public static void RemoveGiftCardCouponCode(this Customer customer, string couponCode)
        {
            //get applied coupon codes
            var existingCouponCodes = customer.ParseAppliedGiftCardCouponCodes();

            //clear them
            customer.GiftCardCouponCodes = string.Empty;

            //save again except removed one
            foreach (string existingCouponCode in existingCouponCodes)
                if (!existingCouponCode.Equals(couponCode, StringComparison.InvariantCultureIgnoreCase))
                    customer.ApplyGiftCardCouponCode(existingCouponCode);
        }