public class DefaultPromotionEngine
extends java.lang.Object
implements com.ibm.commerce.marketing.promotion.runtime.AdvancedPromotionEngine
XML Snippet of DefaultPromotionEngine:
<PromotionEngine impl="com.ibm.commerce.marketing.promotion.runtime.DefaultPromotionEngine"> <Name>PromotionEngine</Name> <SingleJVMConfiguration>true</SingleJVMConfiguration> <PromotionCodeManager impl="com.ibm.commerce.marketing.promotion.code.WCSPromotionCodeManager"> <PromotionCodeResolver impl="com.ibm.commerce.marketing.promotion.code.DefaultPromotionCodeResolver"/> </PromotionCodeManager> <CouponManager impl="com.ibm.commerce.marketing.promotion.coupon.DefaultCouponManager"/> <PromotionContextFactory impl="com.ibm.commerce.marketing.promotion.runtime.DefaultPromotionContextFactory"/> <DefaultBehavior> <StatelessInvocation>true</StatelessInvocation> <CheckTargetingAtRuntime>true</CheckTargetingAtRuntime> <SkipTargetingOnCodeEntered>true</SkipTargetingOnCodeEntered> <PriceAdjustmentBasedOnStandardOfferPrice>true</PriceAdjustmentBasedOnStandardOfferPrice> <Debug>false</Debug> </DefaultBehavior> <ExternalEntityFactoryRegistry impl="com.ibm.commerce.marketing.promotion.dependency.ExternalEntityFactoryRegistry"> <OrderFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSOrderFactory"/> <OrderItemFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSOrderItemFactory"/> <CustomerFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSCustomerFactory"/> <CustomerProfileFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSCustomerProfileFactory"/> <CatalogEntryFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSCatalogEntryFactory"/> <StoreFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSStoreFactory"/> <CampaignFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSCampaignFactory" <PriceConverterFactory impl="com.ibm.commerce.marketing.promotion.integration.dependency.WCSPriceConverterFactory"/> </ExternalEntityFactoryRegistry> <PersistenceManagerRegistry impl="com.ibm.commerce.marketing.promotion.persistence.PersistenceManagerRegistry"> <PromotionPersistenceManager impl="com.ibm.commerce.marketing.promotion.PromotionSessionBeanPersistenceManager"> <InitialCacheSize>1024</InitialCacheSize> <MaxCacheSize>8192</MaxCacheSize> </PromotionPersistenceManager> <PromotionPolicyPersistenceManager impl="com.ibm.commerce.marketing.promotion.policy.PromotionPolicySessionBeanPersistenceManager"> <InitialCacheSize>32</InitialCacheSize> <MaxCacheSize>1024</MaxCacheSize> </PromotionPolicyPersistenceManager> <PromotionGroupPersistenceManager impl="com.ibm.commerce.marketing.promotion.group.PromotionGroupSessionBeanPersistenceManager"> <InitialCacheSize>32</InitialCacheSize> <MaxCacheSize>1024</MaxCacheSize> </PromotionGroupPersistenceManager> <DynamicAttributePersistenceManager impl="com.ibm.commerce.marketing.promotion.dynattr.DynamicAttributeSessionBeanPersistenceManager"> <InitialCacheSize>32</InitialCacheSize> <MaxCacheSize>1024</MaxCacheSize> </DynamicAttributePersistenceManager> <PromotionArgumentPersistenceManager impl="com.ibm.commerce.marketing.promotion.runtime.PromotionArgumentSessionBeanPersistenceManager"/> <CouponPersistenceManager impl="com.ibm.commerce.marketing.promotion.coupon.CouponSessionBeanPersistenceManager"/> <StatsPersistenceManager impl="com.ibm.commerce.marketing.promotion.stats.StatsSessionBeanPersistenceManager"/> </PersistenceManagerRegistry> <PromotionEventListenerRegistry impl="com.ibm.commerce.marketing.promotion.event.ListenerRegistry"> <!-- DO NOT MODIFY THE SECTION BELOW --> <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionDebugEventListener"> <Name>[SYSTEM]DEBUGDAEMON</Name> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionDebugEvent</ListensFor> </Listener> <Listener impl="com.ibm.commerce.marketing.promotion.coupon.CouponDaemon"> <Name>[SYSTEM]COUPONDAEMON</Name> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionAppliedEvent</ListensFor> </Listener> <Listener impl="com.ibm.commerce.marketing.promotion.event.WCSPromotionSuspendedEventListener"> <Name>[SYSTEM]PROMOTIONSUSPENDHELPER</Name> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionSuspendedEvent</ListensFor> </Listener> <!-- DO NOT MODIFY THE SECTION ABOVE --> <!-- <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionLifeCycleEventListener"> <Name>PrintLifeCycleEventListener</Name> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionChangedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionCreatedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionDeployedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionRemovedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionResetEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionResumedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionSuspendedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionWithdrawnEvent</ListensFor> </Listener> <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionExecutionEventListener"> <Name>PrintExecutionEventListener</Name> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionAssessedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionAppliedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionEliminatedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionQualifiedEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionRejectedEvent</ListensFor> </Listener> <Listener impl="com.ibm.commerce.marketing.promotion.event.PrintPromotionRASEventListener"> <Name>PrintRASEventListener</Name> <StoreKey> <DN>ou=BlueMall B2C Organization,o=Seller Organization,o=Root Organization</DN> <Identifier>BlueStore 201</Identifier> </StoreKey> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionDebugEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionErrorEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionLogEvent</ListensFor> <ListensFor>com.ibm.commerce.marketing.promotion.event.PromotionTraceEvent</ListensFor> </Listener> --> </PromotionEventListenerRegistry> <PromotionExecutionSequenceBuilder impl="com.ibm.commerce.marketing.promotion.runtime.DefaultSequenceBuilder"/> <PromotionExecutionAgendaBuilder impl="com.ibm.commerce.marketing.promotion.runtime.DefaultAgendaBuilder"> <InvocationTemplates> <Template> <TemplateKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <Name>All Promotions</Name> </TemplateKey> <MonetaryValuePresence> <Price>true</Price> <ShippingCharge>false</ShippingCharge> <Tax>false</Tax> <ShippingTax>false</ShippingTax> </MonetaryValuePresence> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>ProductLevelPromotion</GroupName> </PromotionGroupKey> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>OrderLevelPromotion</GroupName> </PromotionGroupKey> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>ShippingPromotion</GroupName> </PromotionGroupKey> </Template> <Template> <TemplateKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <Name>Order Level Promotion</Name> </TemplateKey> <MonetaryValuePresence> <Price>true</Price> <ShippingCharge>false</ShippingCharge> <Tax>false</Tax> <ShippingTax>false</ShippingTax> </MonetaryValuePresence> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>OrderLevelPromotion</GroupName> </PromotionGroupKey> </Template> <Template> <TemplateKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <Name>Product Level Promotion</Name> </TemplateKey> <MonetaryValuePresence> <Price>true</Price> <ShippingCharge>false</ShippingCharge> <Tax>false</Tax> <ShippingTax>false</ShippingTax> </MonetaryValuePresence> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>ProductLevelPromotion</GroupName> </PromotionGroupKey> </Template> <Template> <TemplateKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <Name>Shipping Promotions</Name> </TemplateKey> <MonetaryValuePresence> <Price>true</Price> <ShippingCharge>false</ShippingCharge> <Tax>false</Tax> <ShippingTax>false</ShippingTax> </MonetaryValuePresence> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>ShippingPromotion</GroupName> </PromotionGroupKey> </Template> <Template> <TemplateKey> <Name>Order And Product Level Promotion</Name> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> </TemplateKey> <MonetaryValuePresence> <Price>true</Price> <ShippingCharge>false</ShippingCharge> <Tax>false</Tax> <ShippingTax>false</ShippingTax> </MonetaryValuePresence> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>OrderLevelPromotion</GroupName> </PromotionGroupKey> <PromotionGroupKey> <StoreKey> <DN>o=root organization</DN> <Identifier>NullEntity</Identifier> </StoreKey> <GroupName>ProductLevelPromotion</GroupName> </PromotionGroupKey> </Template> </InvocationTemplates> </PromotionExecutionAgendaBuilder> </PromotionEngine>
Modifier and Type | Field and Description |
---|---|
static java.lang.String | COPYRIGHT
IBM Copyright
|
Constructor and Description |
---|
DefaultPromotionEngine()
Constructor for DefaultPromotionEngine.
|
Modifier and Type | Method and Description |
---|---|
protected boolean | applyPolicies(PromotionExecutionRecord record, PromotionContext context)
Applies all registered policies to a promotion execution record
|
boolean | checkTargetingAtRuntime()
Returns true if the targeting condition should be checked at runtime by default.
|
void | cleanup()
Cleans up the promotion engine when the engine is about to shut down.
|
protected int | compareResult(PromotionArgument aPromotionArgument, PromotionArgument bPromotionArgument)
This method compares two PromotionArgument object.
|
PromotionContext | createPromotionContext(Order aOrder, CommandContext aCommandContext, java.lang.String aTemplateName, java.util.List promotionKeys, boolean bSimulationMode) |
void | fromXML(org.w3c.dom.Node node)
Transforms the XML node into its corresponding real Object.
|
PromotionExecutionAgendaBuilder | getAgendaBuilder()
Returns the promotion execution agenda builder.
|
PromotionContextFactory | getContextFactory()
Returns the contextFactory.
|
CouponManager | getCouponManager()
Returns configured coupon manager for this engine.
|
java.lang.String | getEngineName()
Returns the name of a named promotion engine.
|
com.ibm.commerce.marketing.promotion.dependency.ExternalEntityFactoryRegistry | getExternalEntityRegistry()
Returns configured external entity factory registry for this promotion engine.
|
int | getFlowControl()
This method will return the flow control configuration value configured for this promotion engine.
|
java.lang.Integer | getMaxPromotionsPerGroupForBestDealEvaluation()
This method will return the maximum promotions for the best deal evaluation configuration value configured for this promotion engine.
|
PersistenceManagerRegistry | getPersistenceManagerRegistry()
Returns configured persistence manager registry for this promotion engine.
|
GenericPromotionCodeManager | getPromotionCodeManager()
Returns configured promotion code manager.
|
PromotionContextFactory | getPromotionContextFactory()
Returns the promotionContextFactory associated with the promotion engine.
|
com.ibm.commerce.marketing.promotion.event.ListenerRegistry | getPromotionEventListenerRegistry()
Returns configured promotion event listener registry for this promotion engine.
|
java.util.HashSet<java.lang.String> | getPromotionGroupsForBestDealEvaluation()
This method will return the promotion group listing for the best deal evaluation configuration value configured for this promotion engine.
|
PromotionExecutionSequenceBuilder | getSequenceBuilder()
Returns configured promotion execution sequence builder
|
int | getSequenceCombinationThreshold()
This method will return the sequence combination configuration value configured for this promotion engine.
|
void | initialize()
Initializes this promotion engine
|
protected void | initializeSequenceCombinationBuilder(com.ibm.commerce.marketing.promotion.internal.runtime.SequenceCombinationBuilder aSequenceCombinationBuilder, java.util.List aPromotionList)
Initialize the SequenceCombinationBuilder with list of promotions.
|
void | invoke(PromotionArgument argument)
Invokes the evaluation logic.
|
void | invoke(PromotionContext context)
Invokes the evaluation logic.
|
PromotionArgument | invoke(java.lang.String template, java.lang.Long orderId, boolean discardPreviousResult, boolean saveCurrentResult, java.util.Hashtable aNVP)
Invokes the engine.
|
boolean | isAdjustmentBasedOnStandardOfferPrice()
Returns true if all the adjustments will be based on standard offer price by default.
|
protected boolean | isExclusivePromotions(java.util.List aPromotionList)
Return true if all promotions in the list has its exclusiveness value as 1 or 2.
|
boolean | isInDebugMode()
Returns true if the engine is running in debug mode.
|
boolean | isSingleJVMConfiguration()
Returns true if the promotion engine is running in a single JVM.
|
boolean | isStateless()
Returns true if this promotion engine is stateless.
|
protected void | saveArgument(PromotionArgument argument)
The method persist PromotionArgument object to database.
|
void | setAdjustmentBasedOnStandardOfferPrice(boolean aAdjustmentBasedOnStandardOfferPrice)
Sets if all the adjustments will be based on standard offer price or not by default.
|
void | setAgendaBuilder(PromotionExecutionAgendaBuilder aAgendaBuilder)
Sets the agendaBuilder
|
void | setCheckTargeting(boolean aCheckTargeting)
Sets boolean value to indicate if the targeting condition should be checked by default.
|
void | setContextFactory(PromotionContextFactory aContextFactory)
Sets the contextFactory
|
void | setCouponManager(CouponManager aCouponManager)
Sets the couponManager
|
void | setEngineName(java.lang.String aEngineName)
Sets the name for engine
|
void | setExternalEntityRegistry(com.ibm.commerce.marketing.promotion.dependency.ExternalEntityFactoryRegistry aExternalEntityRegistry)
Sets the ExternalRegistry
|
void | setInDebugMode(boolean b)
This method is used to set the promotion engine running in debug mode.
|
void | setPersistenceManagerRegistry(PersistenceManagerRegistry aPersistenceManagerRegistry)
Sets the persistenceManagerRegistry
|
void | setPromotionCodeManager(GenericPromotionCodeManager aPpromotionCodeManager)
Sets the promotionCodeManager
|
void | setPromotionEventListenerRegistry(com.ibm.commerce.marketing.promotion.event.ListenerRegistry aPromotionEventListenerRegistry)
Sets the promotionEventListenerRegistry
|
void | setSequenceBuilder(PromotionExecutionSequenceBuilder aSequenceBuilder)
Sets the SequenceBuilder
|
void | setSingleJVMConfiguration(boolean aSingleJVMConfiguration)
Sets boolean value to indicate if the engine is running in a Single JVM environment or not.
|
void | setSkipTargeting(boolean aSkipTargeting)
Sets boolean value to indicate if the targeting condition should be skipped checking by default.
|
void | setStateless(boolean aStateless)
Sets if by default all invocations to the engine is stateless from a pass-in boolean value.
|
boolean | skipTargetingOnCodeEntered()
By default, if a correct promotion code is entered will the engine evaluate targeting condition or not.
|
java.lang.String | toXML()
Converts the object into its corresponding XML format representation.
|
protected void | updateRewardOption(java.util.Iterator iterator)
Updates promotion reward option records.
|
public static final java.lang.String COPYRIGHT
public DefaultPromotionEngine()
public boolean checkTargetingAtRuntime()
public java.lang.String getEngineName()
public PromotionContextFactory getPromotionContextFactory()
public boolean isSingleJVMConfiguration()
public boolean skipTargetingOnCodeEntered()
public PromotionExecutionAgendaBuilder getAgendaBuilder()
public PromotionContextFactory getContextFactory()
public boolean isStateless()
public void initialize() throws PromotionRuntimeException
public PromotionArgument invoke(java.lang.String template, java.lang.Long orderId, boolean discardPreviousResult, boolean saveCurrentResult, java.util.Hashtable aNVP) throws PromotionRuntimeException
protected boolean applyPolicies(PromotionExecutionRecord record, PromotionContext context)
protected void saveArgument(PromotionArgument argument)
protected void updateRewardOption(java.util.Iterator iterator)
public void invoke(PromotionContext context) throws PromotionRuntimeException
public void cleanup()
public void fromXML(org.w3c.dom.Node node) throws DeXMLizationException
public java.lang.String toXML() throws XMLizationException
public boolean isAdjustmentBasedOnStandardOfferPrice()
public PromotionExecutionSequenceBuilder getSequenceBuilder()
public CouponManager getCouponManager()
public GenericPromotionCodeManager getPromotionCodeManager()
public com.ibm.commerce.marketing.promotion.dependency.ExternalEntityFactoryRegistry getExternalEntityRegistry()
public PersistenceManagerRegistry getPersistenceManagerRegistry()
public com.ibm.commerce.marketing.promotion.event.ListenerRegistry getPromotionEventListenerRegistry()
public boolean isInDebugMode()
public void setInDebugMode(boolean b)
public void setEngineName(java.lang.String aEngineName)
public void setAdjustmentBasedOnStandardOfferPrice(boolean aAdjustmentBasedOnStandardOfferPrice)
public void setCheckTargeting(boolean aCheckTargeting)
public void setSingleJVMConfiguration(boolean aSingleJVMConfiguration)
public void setSkipTargeting(boolean aSkipTargeting)
public void setStateless(boolean aStateless)
public void setAgendaBuilder(PromotionExecutionAgendaBuilder aAgendaBuilder)
public void setCouponManager(CouponManager aCouponManager)
public void setPromotionCodeManager(GenericPromotionCodeManager aPpromotionCodeManager)
public void setContextFactory(PromotionContextFactory aContextFactory)
public void setSequenceBuilder(PromotionExecutionSequenceBuilder aSequenceBuilder)
public void setExternalEntityRegistry(com.ibm.commerce.marketing.promotion.dependency.ExternalEntityFactoryRegistry aExternalEntityRegistry)
public void setPersistenceManagerRegistry(PersistenceManagerRegistry aPersistenceManagerRegistry)
public void setPromotionEventListenerRegistry(com.ibm.commerce.marketing.promotion.event.ListenerRegistry aPromotionEventListenerRegistry)
public void invoke(PromotionArgument argument) throws PromotionRuntimeException
protected void initializeSequenceCombinationBuilder(com.ibm.commerce.marketing.promotion.internal.runtime.SequenceCombinationBuilder aSequenceCombinationBuilder, java.util.List aPromotionList)
protected boolean isExclusivePromotions(java.util.List aPromotionList)
protected int compareResult(PromotionArgument aPromotionArgument, PromotionArgument bPromotionArgument)
public PromotionContext createPromotionContext(Order aOrder, CommandContext aCommandContext, java.lang.String aTemplateName, java.util.List promotionKeys, boolean bSimulationMode) throws PromotionRuntimeException
public int getFlowControl()
This method will return the flow control configuration value configured for this promotion engine.
public int getSequenceCombinationThreshold()
This method will return the sequence combination configuration value configured for this promotion engine.
public java.lang.Integer getMaxPromotionsPerGroupForBestDealEvaluation()
This method will return the maximum promotions for the best deal evaluation configuration value configured for this promotion engine.
public java.util.HashSet<java.lang.String> getPromotionGroupsForBestDealEvaluation()
This method will return the promotion group listing for the best deal evaluation configuration value configured for this promotion engine.