Ejemplo: Archivo XML de configuración del motor de promociones

Los componentes configurables del motor de promociones se especifican en un archivo XML de configuración, WCSPromotionEngineConfig.xml. El archivo de configuración está almacenado en el directorio workspace_dir\WC\xml\PromotionEngineConfiguration.

El siguiente código de ejemplo representa un archivo XML completo de configuración de motor de promociones:

<?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>