A CRM trade promotion may generate different types of conditions. Depending on the trade spends a trade promotion will generate price determination relevant conditions such as pricing conditions (PR), rebate conditions (BO) and free goods conditions (FG). This article contains information about PR conditions only.
Overview
Pricing Conditions are used in the off-invoice scenario to give a certain discount to the customer when buying the promoted goods. That can be a fixed amount per case (10€ off per sales unit) or a percentage value (2,5% off). The discount is applied on the invoice, the discount is therefore applied in advance. The discount is driven by the trade spend type used. Off-Invoice Trade Spends create condition records from type PR.
The sample promotion contains different trade spends and shows the PR conditions created.
For each trade offinvoice trade spend a seperate PR condition record will be generated.
In case there are exceptions maintained for the products the PR conditions are generated accordingly.
It is therefore possible that several PR condition records are generated for a single product in the trade promotion. This is depending on the product exceptions.
The spend value is taken from the trade spends. There are two different scenarios:
- CRM rates: In case of CRM rates the spend value is stored in CRM on trade spend level. The values can be edited in CRM using the trade spend assignment block.
- BI rates: In case of BI rates the spend value is stored in BW only. The values need to be entered in the planning layout of the trade promotion. The trade spend assignment block won't show the values at all.
PR Conditions Generation
PR conditions are either generated when releasing, the trade promotion or can be created manually using the 'generate conditions' button. Using the 'generate conditions' button the PR conditions can be re-generated again after any changes were done to the trade spends.
Using the 'generate conditions' button the conditions are generated or re-generated for the selected trade spend only.
When PR conditions are generated the product assignment is validated against the master data. This happens in the call of
cl_crm_mktgs_prod_assign=>reeval_mass_assign. In case the master data got changed conditions cannot be generated and the following error is raised:
CRM_MKTPL_COND_IF 077 Pricing conds not maintained successfully; status change cannot be saved
In that case the PMDC report needs to be used to correct the product master data. Please find further information about the PMDC in the following document: PMDC report in CRM Trade Promotions
Status Dependencies
There is the following design based on the status of the trade promotion:
- Status CREATED:
In status created PR conditions can be generated manually only using the 'generate conditions' button. - Status RELEASED:
On releasing a trade promotion the PR conditions are automatically generated. - Status LOCK, CANCEL
Locking or cancelling a trade promotion deletes the PR conditions. The condition records are not deleted physically but get the deletion flag assigned, and cannot be used. - Status UNLOCK, UNCANCEL
Unlocking or undoing the cancel status will activate the PR conditions again that are flagged for deletion. - Status FINISHED
Finishing a trade promotion won't affect the PR conditions, the conditions are still valid.
PR condition records are updated automatically when changing the trade promotion execution dates, or when changing the product or trade spend validity.
When the trade promotion execution period gets changed the PR conditions get changed automatically.
When having product effective dates, chaging the trade promotion date is not changing the Pr condition dates. Those are still created based on the product effective dates.
When changing the spend value or maintaining any product exceptions for a released trade promotion the the PR conditions need to be re-generated manually.
PR conditions are deleted by one of the above mentioned status. Additionally the conditions are deleted when deleting either the product or the trade spend. This is however prohibited for active released trade promotions, so is allowed either for not yet released or for future dated trade promotions only. PR condition records are not deleted physically but get the deletion flag assigned.
The PR conditions can be deleted manually as well. This happens when using the 'delete' button from the Discounts assignment block. This function can be used to delete the individual PR records manually:
Retroactive Trade Spends
A past dated trade promotion (with having the end date earlier than today's date) has so called retroactive trade spends assigned. Depending on the customizing it must be allowed to further edit those trade spends. There is the following design:
There is a check if off-invoice trade spends exist in the trade promotion. When off-invoice trade spends with dates in the past already exist, it is not allowed to add the following:
- Off-invoice trade spends with dates in the past
- Effective dates for products that are in the past when off-invoice trade spends with dates in the past exist
Customizing:
CRM or BI rates:
In the following customizing it needs to be defined wheater CRM or BI rates are used.
Customer Relationship Management
Trade Promotion Management
Basic Data
Define Rates' Origin
This customizing defines where to maintain the spend values.
Trade Spends
In the following customizing is required for defining the trade spends that are to be used in the trade promotion.
Customer Relationship Management
Trade Promotion Management
Trade Promotions
Trade Spends
Define Trade Spends for Values
The customizing defines the possible spend type, spend category and spend method. This customizing holds the mapping to the key figure used in the planning layout.
Condition Generation Customizing
The condition generation is depending on the condition generation type. The condition generation type is mapped to a the trade promotion type and the sales organization, distribution channel and division data. The mapping is done in the following customizing:
Customer Relationship Management
Trade Promotion Management
Trade Promotions
Condition Maintenance
Assign Condition Generation Types
The PR conditions customizing is linked to the condition generation type and needs to be maintained in the following customizing:
Customer Relationship Management
Trade Promotion Management
Trade Promotions
Condition Maintenance
Define Condition Generation
The PR specific customizing is available in the 'Pricing Condition Types' dialog.
This contains a mapping from the trade spend type, spend category, spend method to the condition type. The condition type from usage PR are off-invoice conditions.
The 'Conditions Table' dialog holds the mapping for the account dimension and product dimension to the condition table that is used for generating the PR records.
Condition Types
The condition types are available in the following customizing path:
Customer Relationship Management
Basic Functions
Pricing
Define Settings for Pricing
Create Condition Types
The condition type stores the information about the conditions to be generated. For Pr conditions the most important information is the calculation type. The calculation type specifies how the system calculates the conditon value. For PR conditions this is either a fixed amount per quantity or a percentage value.
Condition Tables
The condition tables are available in the following customizing path:
Customer Relationship Management
Master Data
Conditions and Condition Technique
Condition Technique: Basics
Create Condition Tables
The condition table contains the combination of fields used for the coniditons generation.
Retroactive Trade Spends
The following customizing enables for trade promotions created in a specific sales area:
Customer Relationship Management
Trade Promotion Management
Trade Promotions
Trade Spends
Define Sales Areas for Off-Invoice Check
BAdI
The BAdI CRM_MKTPL_COND_IF provides method CHANGE_WORKING_SET_PR to modify the PR condition records while creation. This may be used to change or add addional attributes.
Additional Information
Depending on the account dimension of the trade promotion the PR conditions can be created on sold to level, or on account hierarchy or target group level. The same is defined by the condition table used.
Some PR condition records may not include the account field at all, these condition records require the campaign ID instead. The conditions are then identified and applied when the trade promotion is determined using the CD records. This is the case for short term trade promotions.
In this case there is no account information included in the PR record, but due to the condition type used the TP guid is available on the PR condition record.
Pricing Conditions can never be generated without spend value assigned. The conditions generation is failing with the following error messages in that case:
No data for condition generation available for &1, &2, &3. [CRM_MKTPL_COND_IF 109]
No data for condition generation available [CRM_MKTPL_COND_IF 044]
Using report CRM_MKTPL_COND_IF_R002 PR conditions for trade promotions can be created from the backend.
Known Issues
There are some known issues that should be solved with the following SAP notes:
Conditions cannot be generated due to overlaping condition records
Date Shift not working
There is an issue happening for long term trade promotions - for trade promotions without having campaign determination records and without having the campaign guid available as field in the underlying condition table. Whenever there are similar conditions existing that were deleted earlier (technically got the deletion flag) conditions cannot be generated properly on releasing the newly created trade promotion, nor on shifting the trade promotion dates. The reason is an overlap issue with the existing deleted condition records.
The deleted condition records may come from old 'finished' ttrade promotions. Those deleted records should not be considered in the overlap checks.
The issue can be solved with implementing BAdI /SAPCND/MNT_CHK_R3C.
Using the following filter settings:
Appl. = CRM
Usages = PR
Cond.Type = *
Table = *
MaintCont = 'CAMPAIGN'
The interface method PREVENT_PROCESSING_DELETED_WSI needs to be implemented - the following can be taken as a template:
--------------------------
* By default method was executed and everything was ok
e_was_executed = ctcus_true.
e_result = 0.
* TP excludes deleted condition records from processing
* Overlap check will not take deleted records into consideration
e_is_processing_allowed = ctcus_false.
---------------------------
Error on generating conditions
2195430 Not able to generate conditions: infinite loop
1901912 Condition generation errors
Error on changing TP status
2145334 Run time error while closing long term Promotions
Error on shifting TP dates
1999452 Dates in campaign determination record not adjusted when campaign dates are changed
1644003 Cannot change End Date of a released Off-Invoice Promotion
Amount issues with BI rates:
When using BI rates the decimal settings in BPS planning need to be considered as well - the set up is documented in the following blog:
Decimal issues in BPS Planning for CRM Marketing Objects
This document should provide an overview about PR conditions in trade promotions. In case you feel anything is missing, or anything is unclear please let me know.
A similar document is available for Campaign Determination Conditions in CRM Trade Promotions and Rebate Conditions in CRM Trade Promotions.