Exemple : Fichier XML de configuration du moteur de promotion
Les composants configurables du moteur de promotion sont indiqués dans un fichier XML de configuration, WCSPromotionEngineConfig.xml. Le fichier de configuration est enregistré dans le répertoire workspace_dir\WC\xml\PromotionEngineConfiguration.
L'exemple de code suivant représente un fichier XML de configuration du moteur de promotion :
<?xml version="1.0" encoding="UTF-8"?>
<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>