Hello Justin,
While there is no built in feature like this, it is achievable using simple
Custom Provider, overriding method
GetDiscountsInternal in
ShoppingCartItemInfoProvider:
/// <summary>
/// Returns the list of all discounts which should be applied to the specified shopping cart item.
/// </summary>
/// <param name="item">Shopping cart item</param>
protected override List<IItemDiscount> GetDiscountsInternal(ShoppingCartItemInfo item)
{
List<IItemDiscount> discounts = base.GetDiscountsInternal(item);
if (discounts != null && item != null)
{
foreach (IItemDiscount discount in discounts)
{
if (discount.ItemDiscountType == DiscountTypeEnum.DiscountCoupon && discount.ItemDiscountID == "<YourDiscountCouponID>")
{
discount.ItemDiscountedUnits = 1;
}
}
}
return discounts;
}
}
This code will find out if specific coupon has been used for item in shopping cart and force it to be applied only for single item. The discount amount will then be evenly distributed across any items above the first one.
Let me know if this helps.
Regards,
Josef Dvorak