Develop > Presentation layer > Customize promotions > Promotion engine customization
Default promotion policies
The Promotions component has various default promotion policies, each with a default XML representation.
- DummyPromotionPolicy
- EachItemCanParticipateInPromotionsOncePolicy
- GlobalExclusivenessEnforcementPolicy
- GroupExclusivenessEnforcementPolicy
- NoneZeroOrderTotalPolicy
- OnlyOnePromotionGovernedByThisPoliceAppliesPolicy
- OrderQualifyingTotalEnforcementPolicy
- RBDOrderDiscountExclusivenessEnforcementPolicy
- RedemptionLimitEnforcementPolicy
DummyPromotionPolicy
As suggested by its name, this policy does not do anything. It always returns "true", which means this policy is satisfied, no violation is found. This policy can be used as both global and local policy.
- Class name:
- com.ibm.commerce.marketing.promotion.policy.DummyPromotionPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.DummyPromotionPolicy"> <PromotionPolicyKey> <PolicyName>My Sample Dummy Policy/PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
EachItemCanParticipateInPromotionOncePolicy
This is a group level only policy, it prevents any order items from being targeted or affected by a promotion more than once. By default, an order item cannot be targeted or affected more than once. However, exemptions can be made so that an order item, although it cannot be targeted more than once, can be affected more than once. Similar exemptions can be made so that order items can be targeted more than once but cannot be affected more than once.
- Class name:
- com.ibm.commerce.marketing.promotion.policy.EachItemCanParticipateInPromotionOncePolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.EachItemCanParticipateInPromotionOncePolicy"> <PromotionPolicyKey> <PolicyName>Shipping: Any order item can only participate in one promotion</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <!-- Exemptions are optional and can be listed like the following: <Exemption>Targeted</Exemption> OR <Exemption>Affected</Exemption> --> <Status>Active</Status> </PromotionPolicy>
GlobalExclusivenessEnforcementPolicy
This is a global level policy. It enforces the exclusivity of promotions at the global level. If this policy is not registered with the promotion engine, promotion exclusivity at the global level will not be enforced, which means even a promotion is marked as exclusive at the global level, it can still be combined with other promotions.
- Class name:
- com.ibm.commerce.marketing.promotion.policy.GlobalExclusivenessEnforcementPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.GlobalExclusivenessEnforcementPolicy"> <PromotionPolicyKey> <PolicyName>Enforce Global Level Exclusivity</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
GroupExclusivenessEnforcementPolicy
This is a group level policy. It enforces the exclusivity of promotions at group level. If this policy is not registered with a promotion group, promotion exclusivity at group level in that group will not be enforced. Even if a promotion in that group is marked as exclusive at the group level, it can still be combined with other promotions in the same group.
- Class name:
- com.ibm.commerce.marketing.promotion.policy.GroupExclusivenessEnforcementPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.GroupExclusivenessEnforcementPolicy"> <PromotionPolicyKey> <PolicyName>Shipping: Enforce group level exclusiveness of promotion</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
NoneZeroOrderTotalPolicy
This policy checks if the order total is less than or equal to zero after a promotion is applied. The total is made up of the sum of all order items excluding shipping and tax related charges. If the order total is less than or equal to zero, a violation will be reported. This policy can be used as either a global or group level policy.
- Class name:
- com.ibm.commerce.marketing.promotion.policy.NoneZeroOrderTotalPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.NoneZeroOrderTotalPolicy"> <PromotionPolicyKey> <PolicyName>Order total cannot be zero</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
OnlyOnePromotionGovernedByThisPolicyAppliesPolicy
This promotion policy allows just one promotion governed by this policy to be applied to an order. This can be either a global or group level policy. If this policy is registered with a group, only one promotion in the group can be applied to an order. If this policy is registered as a global policy, only one promotion can be applied regardless of group membership.
- Class name:
- com.ibm.commerce.marketing.promotion.policy.OnlyOnePromotionGovernedByThisPoliceAppliesPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.OnlyOnePromotionGovernedByThisPoliceAppliesPolicy"> <PromotionPolicyKey> <PolicyName>Order: One per group</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
OrderQualifyingTotalEnforcementPolicy
This is registered as a group level policy, however the order qualifying total is a global attribute and will be affected by any promotions targeting qualifying total regardless of their group membership. This promotion policy enforces the fact that the qualifying total of an order cannot be less than or equal to zero. Order qualifying total is defined as the total of the order that can be used to qualify for promotions. This policy is used in conjunction with the OrderQualifyingTotalBasedPurchaseCondition only.
- Class name:
- com.ibm.commerce.marketing.promotion.policy.OrderQualifyingTotalEnforcementPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.OrderQualifyingTotalEnforcementPolicy"> <PromotionPolicyKey> <PolicyName>My Order Qualifying Total Enforcement Policy</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
RBDOrderDiscountExclusivenessEnforcementPolicy
This is a global level promotion policy. It is deprecated. It is created to mimic a behavior promotions demonstrated in v5.4 Commerce Enhancement Pack 3 and v5.5, where an order level promotion can be marked to be combinable with any product level promotions or not.
- Policy:
- com.ibm.commerce.marketing.promotion.policy.RBDOrderDiscountExclusivenessEnforcementPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.RBDOrderDiscountExclusivenessEnforcementPolicy"> <PromotionPolicyKey> <PolicyName>Global: RBD order level/product level combinability policy (backward compatibility)</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
RedemptionLimitEnforcementPolicy
This can be used as either a group level or global level policy. It enforces the redemption limits on a promotion. If this policy is not registered, the redemption limit on a promotion will not be enforced.
- Policy:
- com.ibm.commerce.marketing.promotion.policy.RedemptionLimitEnforcementPolicy
- Sample XML:
<PromotionPolicy impl="com.ibm.commerce.marketing.promotion.policy.RedemptionLimitEnforcementPolicy"> <PromotionPolicyKey> <PolicyName>Order: Enforce the redemption limit</PolicyName> <StoreKey> <DN>ou=bluemall b2b organization,o=seller organization,o=root organization</DN> <Identifier>BlueStore 202</Identifier> </StoreKey> </PromotionPolicyKey> <Status>Active</Status> </PromotionPolicy>
Related concepts
Black box view of the promotion engine's architecture