Overview of Pricing:
The Pricing function is a method of determining prices using the condition technique. For example, when a shopping cart or purchase order is created. The system automatically determines the gross price and any surcharges and discounts that apply to a specific vendor according to defined conditions. The system uses the gross price and these surcharges or discounts to determine the net price.
How Pricing Works in SAP CRM:
Condition Types:
SAP CRM differentiates different price components like the ones shown in the receipt by using “Condition Types”
Separate “condition Types” can be defined for
Ø Price
Ø Discounts
Ø Surcharges like Shipping
Ø Tax etc.
SAP CRM comes with many predefined exhaustive list of condition types that can be used. But new ones can be defined also. Definition of a condition types involves, among many things, how the condition type is expected to behave. Is the calculation based on Quantity, weight or volume? Is it a ‘amount’ type or a ‘percentage’ type, is it just ’flat amount’ or does this vary with ’scale’ and others.
The final pricing is determined by using scheme in which different condition types are evaluated by the system in defined sequence of steps. This scheme is called “Pricing Procedure”.
What if the Price or discount to be determined is not very straightforward ? For example, what if the price to be determined depends on the specific customer or customer group. What if the discount only applies to certain product types but not others and only applies to some specific regions where customer is located. What if the Tax is exempt for certain customers? or specific customer-product combinations. What if, for a short period, company decides to offer free shipping? In these and many more complexities of pricing scenarios that businesses engage in, how the system determines appropriate applicable prices?
These complexities can be accommodated in Pricing Procedure usingAccess Sequence.
Access Sequence:
Access sequences are search strategies defined for the system.
The strategy lays out searching sequence for best data that fits the situation through iteration. Suppose the special prices have been set up in system for a Customer Group and a product combination , then system searches for this first. If it does not find it, then searches just the generic product price applicable for any customer.
Pricing Procedure:
Pricing Procedure defines the sequence of how systems starts evaluating different Condition Types. Pricing Procedures can be defined with several conditions. For example one could add three discount conditions or several Tax conditions, for example City taxes and county taxes.
The system evaluates each step in the pricing procedure to determine values that are applicable for the data during sales order processing.
Pricing procedures are assigned to transaction document types in a configuration step. This way when users start creating a transaction document in the system, the pricing procedure is invoked.
Condition Records:
Pricing Procedure evaluates condition at different steps. Condition types are connected to ‘Access Sequences’ which are a collection of Condition Table Structures. These condition Table Structures are created out of fields from a Field catalog. These structure help define the Condition Records which indicate the price set by a company for a combination of Data parameters.
For a particular material, to determine the base price following Accesses are maintained are maintained:
1) Sales Org / Division / Product Group / Material - 50 USD
2) Sales Org / Distribution Channel / Sold-to-party / Product - 55 USD
3) Sales Org / Distribution Channel / Division / Sold-to-party 60 USD
Product: Copymachine01
Customer: PCS System PVT Ltd
Roles defined for customer: Sold-to-party, ship-to-party, payer, Bill-to-party
Steps for Base Price Determination:
a) Create Access Sequence ZPR8 a copy of access sequence 0PR0. Maintain the access with condition table SAP005, SAP007 and CUS506
Access defined here are:
1) Sales Org / Division / Product Group / Material -
2) Sales Org / Distribution Channel / Sold-to-party / Product -
3) Sales Org / Distribution Channel / Division / Sold-to-party
Path: SPRO> CRM> Basic functions> Pricing> Define settings for Pricing> Create Access sequence
![3.jpg.png]()
![4.jpg.png]()
![5.jpg.png]()
a) b) Create Condition type ZPR8, it’s a copy of standard condition type PR00 for price
Path: SPRO> CRM> Basic functions> Pricing> Define settings for Pricing> Create Condition Type
![6.jpg.png]()
a) c) Assign Access sequence ZPR8 to Condition type ZPR8![7.jpg.png]()
a) d) In Condition maintenance group assign condition type ZPR8 to Condition maintenance group ‘BUPAPRICE’
Path: SPRO> Master Data> Conditions and Condition Techniques> Condition Techniques basics> Create Maintenance Group
![8.jpg.png]()
a) e) In condition type ZPR8 maintain the condition records
![9.jpg.png]()
Path: Main Menu > Master Data > Prices and Condition > Maintain Conditions
1) Sales Org / Division / Product Group / Material - 50 USD
2) Sales Org / Distribution Channel / Sold-to-party / Product - 55 USD
3) Sales Org / Distribution Channel / Division / Sold-to-party 60 USD
![11.jpg.png]()
a) f) Create a pricing procedure ZCRM11, a copy of standard CRM01 pricing procedure
![12.jpg.png]()
Path: SPRO> CRM> Basic functions> Pricing> Define settings for Pricing> Create Pricing procedure
In control data replace the condition type 0PRO for price with our condition type ‘ZPR8’
![13.jpg.png]()
a) g) Pricing Determination procedure:: Here you have to maintain the sales organization, customer and document pricing procedure Customer Pricing Procedure- 1 (Standard) / Document Pricing Procedure- A (standard) / Division -1
![14.jpg.png]()
Path: SPRO> CRM> Basic functions> Pricing> Pricing in Business transaction> Determine Pricing procedure
a) h) Create Standard Order, Below is the pricing condition at Item level
T-Code: commpr01
![15.jpg.png]()
Here depending upon the condition record maintained base price of 60 USD has been determined.
Scenario 1: Discount / Scale Based
Provide Item level discount and maintain quantity scales and see how change in quantity picks will alter the percentage discount
Conditions:
Discount based on Price Group:
Bulk Buyer– 5 % min discount / Scale base discount
For, 0-5 Units – 5% of Discount
For, 5-10 units – 6 % of Discount
For Above 10 units – 7 % of Discount
Occasional Buyer– 2 % Flat discount irrespective of quantity ordered
Steps
a) Create a condition type: ZSKV, it’s a copy of standard condition type for Discount/Surcharge
T-code: PRC_CONDTYPE_CRM
![1.jpg.png]()
a) Assign access sequence 0K20 (Price Group Access Sequence) to Condition type ZSKV
T-Code: ACCESS_SEQ_CRM_PR
![2.jpg.png]()
a) In condition maintenance group assign condition type ZSKV to condition maintenance group ‘BUPADISCOUNT ‘
T-code: SPRO>Master Data>Conditions and Condition Techniques>Condition Techniques basics>Create Maintenance Group
![3.jpg.png]()
a) Create a pricing procedure ZCRM11, a copy of standard CRM01 pricing procedure. In control data replace the condition type 0KF0 with our condition type for freight ‘ZSKV’
T-Code: PRC_PRICPROC_CRM
![4.jpg.png]()
a) In condition type ZSKV maintain the condition records.
Discount will vary depending upon the price group
Discount based on Price Group:
Bulk Buyer– 5 % min discount / Scale base discount
Scale based Discount:
For, 0-5 Units – 5% of Discount
For, 5-10 units – 6 % of Discount
For Above 10 units – 7 % of Discount
Occasional Buyer– 2 % Flat discount irrespective of quantity ordered
![5.jpg.png]()
![6.jpg.png]()
a) Determine Pricing Procedure: Here you have to maintain the sales organization, customer and document pricing procedure
Customer Pricing Procedure- 1 (Standard) / Document Pricing Procedure- A (standard) / Division -1
![7.jpg.png]()
a) Create Standard Order, Below is the pricing condition at Item level
T-Code: commpr01
![8.jpg.png]()
As the customer is an occasional buyer discount of 2% is been selected
Scenario 2: Freight Charges
For a particular material, there is a freight charge. Here we will take freight value depending upon the quantity. The freight value of 2 USD is charged per unit of product
Product:
Copymachine01
Customer:
PCS System Pvt Ltd, Roles defined for customer: Sold-to-party, ship-to-party, payer, Bill-to-party
Steps:
a) Create a condition type: ZFR8, it’s a copy of standard condition type for freight
T-code: PRC_CONDTYPE_CRM
![1.jpg.png]()
a) Create Access Sequence ZFR8 a copy of access sequence for standard freight. Maintain the access with condition table SAP034 and SAP033
Access defined here are:
1) Sales Org / Division / Distribution channel / lncoterms 1 / Incoterms 2
2) Sales Org / Division / Distribution channel / lncoterms 1 / Incoterms 2
T-Code: ACCESS_SEQ_CRM_PR
![2.jpg.png]()
c) In condition maintenance group assign condition type ZFR8 to condition maintenance group ‘ FREIGHTCRM ‘
T-code: SPRO>Master Data>Conditions and Condition Techniques>Condition Techniques basics>Create Maintenance Group
![3.jpg.png]()
![4.jpg.png]()
a) Create a pricing procedure ZCRM11, a copy of standard CRM01 pricing procedure. In control data replace the condition type 0KF0 with our condition type for freight ‘ZFR8’
T-Code: PRC_PRICPROC_CRM
![5.jpg.png]()
a) In condition type ZFR8 maintain the condition records.
Here freight value for 2 USD for each quantity of product is maintained
T-Code: Master Data>Prices and Conditions>Maintenance group – Freightcrm
![7.jpg.png]()
a) Create a Standard Sales Order. Below is the pricing condition at Item level.
![8.jpg.png]()
Here as order is prepared for 10 units freight charges is picked up as 20 USD, 2 USD per unit
Scenario 3: Free Goods (Inclusive/Exclusive)
We will be using both,
Inclusive Bonus Quantity: The customer only pays for part of the goods he or she has ordered. The rest of the products are provided at no extra cost. For example, a customer orders ten notebooks but only has to pay for nine.
Exclusive Bonus quantity: The customer pays for the goods he has ordered, and also receives additional products for free. The materials delivered as free goods do not have to be the same as the goods ordered. For example, a customer orders ten notebooks, and additionally receives a handheld free of charge.
Products:
Copymachine01
Copymachine02
Customer:
PCS System Pvt Ltd
Steps:
a) Create Access Sequence ZNA0 a copy of access sequence 0NA0 for free goods. Maintain the access with condition table SAP010
Access defined here is: Sales Org / Distribution channel / Sold-to-party / Product
Path: Spro> CRM> Basic function> free goods> set up free goods> create access sequence
![1.jpg.png]()
![2.jpg.png]()
![3.jpg.png]()
a) Create Condition type ZNA0, it’s a copy of standard condition type 0NA0 for free goods
Path: Spro> CRM> Basic function> free goods> set up free goods>create Condition types
![4.jpg.png]()
a) Assign Access sequence ZNA0 to Condition type ZNA0
![5.jpg.png]()
a) In Condition maintenance group assign condition type ZNAO to Condition maintenance group ‘ZFREEGOODS’
Path: SPRO> Master Data> Conditions and Condition Techniques> Condition Techniques basics> Create Maintenance Group
![6.jpg.png]()
a) In condition type ZNA0 maintain the condition records
![7.jpg.png]()
Path: Main Menu > Master Data > Prices and Condition > Maintain Conditions
For Inclusive:
![8.jpg.png]()
Type: 1 need to be maintained for inclusive free goods. Here there is no need to maintain free product
For Exclusive:
![9.jpg.png]()
Type 2 should be maintained. Here you should maintain the free product details, it can be the same product or the diffirent product
a) Create a free good procedure ZNA001, a copy of standard 0NA001 procedure
![10.jpg.png]()
Path: SPRO> CRM> Basic functions> free goods> Set up free goods> Create free good determination procedure
In control data replace the condition type 0NA0 for price with our condition type ‘ZNA0’
![11.jpg.png]()
a) Assign free good determination procedure: Here you have to maintain the sales organization, customer and document pricing procedure Customer Pricing Procedure- 1 (Standard) / Document Pricing Procedure- A (standard) / Division -1
![12.jpg.png]()
Path: SPRO> CRM> Basic functions> free goods > set up free goods > Assign free goods Determine procedure
a) Create Standard Order, Below is the pricing condition at Item level
T-Code: commpr01
For Inclusive free goods:
![13.jpg.png]()
The customer only pays for part of the goods he or she has ordered, In this case he will be charged for only 9 nos of product and 1 nos will be provided at no extra cost
For Exclusive free goods:
![14.jpg.png]()
The customer pays for the goods he has ordered in this case 10 nos and also receives additional products for free, 1 nos of ‘Copymachine02’
Scenario 4: Campaign Based Pricing
Maintain a campaign specific pricing. Creating a campaign and assign product and discount records for it.
Steps
a) Create a campaign determination procedure (ZPCS01)
Path: Spro> Crm > basic function> campaign determination> define determination procedure
![1.jpg.png]()
a) Add Elements of determination (Condition type)namely – 1200, 1201 and ZCAM to the determination procedure
![2.jpg.png]()
a) Determination of procedure for campaign determination
Path: Spro> Crm > basic function> campaign determination> assign determination procedure
![3.jpg.png]()
a) Create a campaign: Campaign can be created using ‘Marketing Pro Role’
T-Code: crm_ui
![4.jpg.png]()
![5.jpg.png]()
a) Maintain the product for which campaign is applicable
![6.jpg.png]()
a) Enter the condition records (Discounts) applicable for the campign
![7.jpg.png]()
a) Create a condition maintenance group for campaign
![8.jpg.png]()
a) Add condition types ZCAM, 1200,1201 to maintenance group ‘1200’ for ‘Campaign’
![9.jpg.png]()
Create condition exclusion group ZDIS & ZPCS. If several condition records are valid for pricing in the document item, you can define rules that determine which condition records are selected and which are not taken into consideration. To do this, we use condition exclusion.
Excluding condition records is controlled using exclusion groups. An exclusion group is a list of condition types that are compared to each other in pricing and can be used to exclude a whole group or individual condition types in a group.
You can set the pricing result so that it is influenced by specific criteria (for example, the cheapest price) and that some condition types are excluded whereas others are taken into account.
![10.jpg.png]()
a) Maintain condition types in exclusion group
![11.jpg.png]()
![12.jpg.png]()
a) Conditions exclusion: procedure assignment
![13.jpg.png]()
Maintain the exclusion group and condition exclusion procedure as best of two exclusion types
![14.jpg.png]()
a) Assign campaign to the sales order
![15.jpg.png]()
a) Create standard order. The best possible discount gets determined for the sold to party. Condition type ‘1201’ with 8% discount gets determined not the 2% general discount applicable for occasional buyer (shown in the below screen shot.
![16.jpg.png]()
![17.jpg.png]()