...
To build a new project in PromotionManager, we will take the following steps:
- Create a contract calculation logic for each of the two line items in the contract.
- Create a contract term type for each of the calculation logics.
- Set up Price Records – map contract attributes to Price Record fields.
- Create a calculation logic for accessing the Price Records.
- Typically, you will also to set up an approval workflow logic in Workflow Logics (of Contract type).
Create Contract Calculation Logics
We will create two contract calculation logics that define user inputs and pass the entered values on to Price Records. To start, go to Configuration > Calculation Logic > Contracts and click 'Add'.
Volume Discount Calculation Logic
The volume discount logic will include the following elements:
...
Element Name | Label | Formula Expression |
---|---|---|
CustomerGroup | Customer Group | api.customerGroupEntry() |
ProductGroup | Product Group | api.productGroupEntry() |
ContractTermType | Contract Term Type |
|
ValidFrom | Valid From |
|
ValidTo | Valid To |
|
VolumeDiscount | Volume Discount |
|
Net Price Calculation Logic
The net price logic will include the following elements:
...
Element Name | Label | Formula Expression |
---|---|---|
CustomerGroup | Customer Group | api.customerGroupEntry() |
ProductGroup | Product Group | api.productGroupEntry() |
ContractTermType | Contract Term Type |
|
ValidFrom | Valid From |
|
ValidTo | Valid To |
|
NetPrice | Net Price | return api.userEntry("Net Price")?:0 |
Create Contract Term Types
A Contract term type represents an item in the promotional offer. We will create two contract term types, one for the volume discount and one for the net price promotion. We will assign the previously created calculation logics to them.
- Go to 'PromotionManager' > 'Contract Term Types'.
- Click 'Add' and enter the name and label.
- Select the corresponding Pricing logic.
- (Optional) Define the value of the Waterfall Element and other attributes.
In the Waterfall Element, you can indicate which field (of the Quote or Datamart) is influenced by this contract condition. This can be used, for example, when the Quote Line searches for the appropriate Price Record (which was generated from the Contract Term Type).
Set Up Price Records
Price Records are created automatically from the Contract lines but you can influence the content of the resulting fields. In our case most of the things go automatically, we only need an additional "VolumeDiscount" element.
Source | Destination Price Record | |
---|---|---|
Field Name | Field Label | |
currentItem().startDate | validAfter | |
currentItem().endDate | expiryDate | |
Logic element named "VolumeDiscount" | VolumeDiscount |
For more details see Price Records Generation from Contract/wiki/spaces/KB/pages/99570364.
Create Logic to Access the Price Records
This example shows how to find an appropriate Price Record on the Quote Line Item.
...