Skip to Content
Author's profile photo Samatha Thammareddy

Playing with Pricing in SAP CRM

Pricing in CRM is one of the most interesting and flexible solutions that can be used to meet various requirements. There have been documents published on how pricing works in CRM as a stand- alone system and as an integrated system.


But this document touches on one interesting aspect of CRM pricing, where CRM is integrated with R3 and orders do not flow to ECC but will be processed to the customers from CRM. Here we can use both the pricings together to build a simple flexible way of using pricing. So, let’s see how to play with pricing in CRM.


In this document we will be discussing a scenario of pricing, in a landscape involving – ECC – CRM – REX solution on IPAD.

Scenario is as follows –


We have 3 sets of customers – Platinum, Gold and Silver As the name indicates,


(1) Platinum is the most coveted customers who have been responsible for huge business volumes. So here, when the sales agent goes to visit them to take an order, there would be a special price given by default for them. This will be maintained one time and will hold good for a quarter or more depending on the discretion of the sales agent based on approvals. The price offered on a product varies from one customer to another, in short it will be customer specific


(2) Gold is the second coveted list which will be a set of customers belonging to the gold group. The price will be maintained for that group which will be applicable to all customers in that group and will be defined at the product level


(3) Silver is the general list of customers and here the price that flows will be common to all customers who do not belong to the Platinum or gold groups


How can we design this? With simple maintenance in SAP CRM and the Sales agent will not have to go  go back to ECC to get the price changed every time.


The design is as follows –

Design in CRM

(1) Defining your condition types – Define two sets of condition types here

(a) One condition type which carries the ECC pricing. Condition type – ZEC

(b) One condition type which carries the CRM pricing maintained in CRM – ZCR



(2) Define your condition tables

(a) Condition table for Platinum customers. We can use the SAP005 table


(b) Condition table for the Gold group. Define a table for the gold group – CUS0098



(c) Condition table for the Silver group. This is a table which houses the prices flowing from ECC – CUS990



(4) Define your access sequence The access sequence will be as follows –

(a) The first in the sequence will be the Platinum access SAP005. If a record is maintained for the same then this gets determined first. Hence Platinum customers always have the platinum price determined maintained against the customer ID at the product level

(b) The second in the sequence will be the Gold access CUS00098. If a record is not maintained for a customer in the platinum access but is maintained for the customer group in this table then this gets determined on priority. Hence Gold customers always have the Gold price determined maintained against the Customer group at the product level

(c) The last in the sequence will be the Silver access Cus990. If a record is not maintained for a customer product combination either in the platinum or gold table  then the  price that flows from ECC maintained at the product and sales area level will be picked Hence the Silver customers will have a common price across maintained for the product for that sales area

The access sequence is as follows –


(5) Now define the pricing procedure to include the two condition types  –

ZEC  ( ECC condition type ) and ZCR ( CRM Condition type)–

The pricing procedure is as follows  ZSP–



(6) Set in the exclusion to prioritize the CRM maintained pricing over the ECC one as this exclusion ensures that in the pricing procedure the CRM process will be read first as per the access sequence and if the CRM price is not maintained then the ECC pricing will be picked





(7) Now you can maintain the price records in CRM at product level for the CRM maintained pricing against the condition type ZCR with SAP005  ( Platinum Price) and CUS0098 ( Gold Price). The silver price flows from ECC

(8) When the product is entered in an order, the price gets determined accordingly in the priority sequence maintained in the access sequence


REX BAPI enhancement to facilitate pricing flow to IPAD


The standard BAPI /MAC/RSFM_GET_PRICES has option to download any one condition table for base prices. The requirement is to download prices from 3 condition tables (Platinum, Gold, Silver) based on access sequence priority for each customer. So the BAPI /MAC/RSFM_GET_PRICES is enhanced with the logic below.


Implement the BADI of the BAPI “/MAC/RSFM_GET_CONDTABLE” with below logic

• Enhance the method /MAC/RS_BADI_GET_CONDTABLE_BEF of the BADI implementation of /MAC/RS_BADI_DEF_PRICING

• Fetch the value from the table Z_ACCESS_SEQ (Ref table structure below for the sales org of the SR into the table IT_ACCESS_SEQ.

Sort the table by the field KOZGF



Fetch the value from the condition table(IT_ACCESS_SEQ-COND_TABLE) for the customer groups of given BPs & products


Fetch the value from the condition table(IT_ACCESS_SEQ-COND_TABLE) for the given BPs & products


Fetch the value from the condition table (IT_ACCESS_SEQ-COND_TABLE) for the given BPs & products.


• Set the flag CV_SKIP as ‘X’ to ignore the standard BAPI flow.




Field Data Element Type Width Description
KSCHL KSCHL CHAR 4 Condition type



Authored by Samatha ThammaReddy and Co-authored by Karthi Dhayalan

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Thanks Samatha & Karthi for sharing this well written and detailed article.

      Author's profile photo Karthik Dhayalan
      Karthik Dhayalan

      Thanks Harsha for your feedback