WebSphere Commerce Version 8.0.4.24 or later

Configuring promotion reservation

Enable promotion reservation to reserve a promotion for an order for a set time. This feature can be used to count an order against a redemption limit, without the need for the order to be completed.

Before you begin

This feature requires two prerequisites before it can be enabled on your site:
  • This feature was implemented in Fix Pack 24 of Mod Pack 4. Install this, or a later version of WebSphere Commerce before you enable this feature.
  • This feature requires the version of CheckoutPayments.js from Fix Pack 24 of Mod Pack 4, or later be included on your storefront. Ensure that the version of this file on your storefront is updated to the version provided in the Aurora starter store that is packaged with WebSphere Commerce 8.0.4.24, or later.

About this task

In the standard order flow, a redemption limit is only iterated upon once an order is completed. Due to a lack of tolerance in the design of the order flow, this can potentially allow for multiple orders receiving a limited promotion if a promotion has a very low redemption limit, or if the redemption limit is close to being hit. For more granular control of redemption limits through the order flow, you can configure and use promotion reservations.

This process is designed through the use of two new database tables, PX_RESRV and PX_RESRVUSAGE.

Procedure

Enable promotion reservation for the standard order flow in the order component configuration file.
  1. Create or open the com.ibm.commerce.order-ext\wc-admin-component.xml order component configuration file for editing.
    For more information on creating or modifying this file, see Changing properties in the order component configuration file (wc-admin-component.xml).
  2. Set the ReservePromotionFromOrder property to true.
    This property will invoke ReservePromotionCmdImpl through PrepareOrderCmdImpl by default.

Results

When enabled, ReservePromotionCmdImpl will check against the PromotionArgumentPersistenceManager to see if there is a redemption limit for the associated promotion.

If there is a limit for the promotion, an attempt is made to reserve the promotion for the associated order ID. If the associated promotion reservation is already maxed out against the promotion redemption limit, RedemptionLimitEnforcementPolicy will fail, and the promotion will not be applied to the associated order.