What max usage configurations are supported for offers and offer codes?

Offer Max Usage Scenarios

1. Max uses across all customers (e.g. 1st 100 users)

  • Offer#maxUsages (BLC_OFFER.MAX_USES)
    • Determines the maximum number of times this offer can be used.
    • A value of 0 indicates unlimited usage.
    • Default is 0.

2. Max uses within a cart (e.g. allow up to 3 applications of the same discount on a single order)

  • Offer#maxUsesPerOrder (BLC_OFFER.MAX_USES_PER_ORDER)
    • Determines the maximum number of times this offer can be used on a single order.
    • A value of 0 indicates unlimited usage.
    • Default is 0.

3. Max uses for a given customer or account (e.g. only allow 1 discount per customer)

  • Offer#maxUsesPerUser (BLC_OFFER.MAX_USES_PER_USER)
    • Determines the maximum number of times this offer can be used by the same user. Works in conjunction with Offer#maxUsesPerUserFrequency to limit the frequency with which an individual user can use this offer.
    • A value of 0 indicates unlimited usage.
    • Default is 0.
  • Offer#maxUsesPerUserFrequency (BLC_OFFER.MAX_USES_PER_USER_FREQUENCY)
    • This field works in conjunction with Offer#maxUsesPerUser to limit the frequency with which an individual user can use this offer.
    • If maxUsesPerUser = 3 and maxUsesPerUserFrequency = 5, then a user cannot use this offer more than 3 times in any 5 day period. Note that this is a sliding-window of opportunity. If a user uses this offer on days 1, 4, and 5, then they can use it on 6 but not on 7 since day 7 is within 5 days of days 4, 5, and 6.
    • A value of 0 indicates that a user can only use the offer Offer#maxUsesPerUser times ever.
    • Default is 0.
  • Offer#maxUsesPerUserStrategy (BLC_OFFER.MAX_USES_PER_USER_STRAT)
    • Enum that allows implementations to vary how user max uses will be interpreted.
    • By default the strategy is UserMaxUsesStrategyType#CUSTOMER.

Offer Code Max Usage Scenarios

1. Max uses for an offer code (e.g. codes "ABC123" & "XYZ987" can each only be used once)

  • SharedCode#maxUses (BLC_SHARED_CODE.MAX_USES)
    • Defines the maximum number of times that this code can be used, regardless of Order or Customer.
    • The value of 0 indicates unlimited usage.
    • Default is 0.