Develop > Presentation layer > Customize promotions > Promotions customization: Management Center > Create a custom promotion type in the Management Center
Create the object template for the new promotion type
Create an object template to define the object structure for the custom promotion type. All promotions defined in the Promotions tool use the same primary object definition. The purpose of the object template is to model the differences between the promotion types. There is one object template for each promotion type. The object template contains all the objects that each promotion type requires.
Before you begin
Review the wcfObjectTemplate class that extend:
Most promotion properties are common for all promotion types. For example, if you compare the user interface for certain properties, such as the redemption limit and the promotion schedule, they typically look the same from one promotion type to the next. On the other hand, the properties of the purchase and reward conditions vary, depending on:
- Whether the promotion is an order-level, category-level, or catalog-entry-level promotion
- Whether the discount is a fixed price, a percentage off, an amount off, or a free gift
Create an object template to define the unique properties for the custom promotion type.
Procedure
- Open WebSphere Commerce Developer and switch to the Enterprise Explorer view.
- Create a directory to store the new promotion object template. You can store the file in a directory structure similar to the following example:
LOBTools/WebContent/WEB-INF/src/lzx/your_company_name/promotion/objectDefinitions/promotionTypes/
- Create an OpenLazlo file for the promotion object template.
- Create the promotion object template. See the example at the end of this procedure.
- Register the template in the PromotionExtensionsLibrary.lzx file.
The file is stored at this path:
LOBTools/WebContent/WEB-INF/src/lzx/commerce/promotion/
- Create an instance of the new template in the promotion primary object definition file, which is named PromotionPrimaryObjectDefinition.lzx.
The file is stored at this path:
LOBTools/WebContent/WEB-INF/src/lzx/commerce/promotion/objectDefinitions/
Example
For the custom promotion type, Customers who purchase two dining chairs (FULO-01) qualify to purchase a dining table (FULO-02) at the reduced price of $200, the object template looks like the following sample:
<library> <class name="proProductLevelPWPFixedCostDiscountTemplate" 1 extends="wcfObjectTemplate" templateType="ProductLevelPWPFixedCostDiscount" 2 displayName="Buy X get Y at a fixed cost" description="Offers a fixed cost discount on a catalog entry when the order includes some other specified catalog entry"> <dataset name="template"> <object objectType="ProductLevelPWPFixedCostPurchaseCondition"> 3 <object objectType="Purchase"/> 4a <object objectType="Reward"/> 4b </object> </dataset> </class> </library>
The following describes the lines with black numbered callouts:
- 1 This is a unique name you define for this template class.
- 2 This is the name you defined for this custom promotion type in the task Model the runtime promotion XML.
- 3 This is the name of the purchase condition object definition you defined in the task Create the object definitions for the new promotion type.
- 4a,b You can add additional code to instantiate additional objects to be used for the user interface.
For this example, the code to instantiate this new template in the promotion primary object definition file looks like this:
<class name="proBasePromotionPrimaryObjectDefinition" extends="wcfPrimaryObjectDefinition" isBaseDefinition="true" objectType="BasePromotion" . . .> . . <proProductLevelPWPFixedCostDiscountTemplate/> . . </class>
Previous topic: Create the object definitions for the new promotion type
Next topic: Specify widgets for the promotion type properties view