You can restrict coupon redemptions by customer, time, or order configurable redemption limits (such as redemption limit per coupon code, redemption limit per customer or redemption limit per time frame). If the customer provides a coupon code that has not reached its redemption limits, the customer qualifies for any promotion associated with that coupon.
Coupons must be redeemed in the shopping cart: this is the only way coupons can be used to qualify for associated promotions. Customers are limited by default to redeeming one coupon code per item in the cart, even though they can enter multiple coupon codes. There can be additional coupon redemption opportunities for shipping and per order.
For a rolling redemption, where the customer can redeem a coupon once every 7 days, for example, Salesforce B2C Commerce looks at the date and time to determine when the coupon can be next applied. For example, for an order on Monday at 11:00 AM, the customer can't redeem the coupon before the next Monday at 11:00 AM. So, a redemption limit of 7 equals 7 x 24 hours after the last usage.
Coupon redemptions can be imported and exported.
B2C Commerce evaluates redemption limits each time a customer adds a coupon to the basket and each time the basket is recalculated, including checkout.
When a coupon is limited to one use by a customer, if the customer tries to use the coupon twice via guest checkout, B2C Commerce uses the customer's email address to verify coupon usage. The difference between a registered and unregistered customer is that for a registered customer, B2C Commerce validates the redemption limit when the customer adds the coupon to the cart. For an unregistered customer, B2C Commerce validates the redemption limit after the customer has entered their email address, which occurs on the SiteGenesis billing page.
You can specify the number of redemptions per order as follows:
When an order is placed from such a basket, all the coupon codes
are marked redeemed
. A multiple coupon codes coupon
simply extends the number of times the promotion applies, but doesn't
cause discounts to stack on the same product.
For multiple coupon codes, product promotions qualified by the coupon can apply more times than they normally would. For example, a merchant creates a coupon qualified product promotion, 10% off Discounted Products, with a maximum applications of two. The basket includes three distinct codes for the coupon. In this case, the promotion can apply up to six times (2 * 3) times.
Order level discounts are not supported with the multi-use coupon code feature because there is a strong potential for fraudulent usage. Repeated applications of coupon codes could be used to get the entire order for free if the coupons are not sufficiently limited, configured coupon codes are not sufficiently random, or through another form of attack. Product level monetary discounts are allowed because B2C Commerce enforces one financial discount per promotion per product line item.
If multiple codes from the same coupon are in a basket, they appear as separate CouponLineItems.
In a special case, B2C Commerce tracks which coupon code triggers a Choice Of Bonus Product discounts. If a coupon code is removed from a basket, B2C Commerce removes the corresponding BonusDiscountLineItem originally triggered by the code, and all related bonus products. In general, the relationship between coupon codes and discounted products isn't persisted in B2C Commerce for other types of promotions, and doesn't affect future applications of B2C Commerce.