Pricing procedure Steps and Details in SAP MM
*****************************************************************************************************************
I have created a video for this functionality with a real time example in SAP system.
Link : Pricing Procedure steps and details in SAP
*****************************************************************************************************************
First of all we need to know the fundamental explanation about Pricing procedure.
What is Pricing procedure?
The main concept of pricing procedure is combination of different type charges, like Gross price, freight, discount, surcharges etc etc.
We use pricing procedure to determine these all conditions into one procedure, where we can find the sub-total for net amount.
To understand pricing procedure, we have to be comfortable about these below things :
1. Condition Table
2. Access Sequence
3. Condition Type
4. Condition Record.
5. Schema Group
6. Calculation Schema
7. Schema Determination
Let’s discuss about all these points in details.
1. Condition Table
It’s a table where system saves the all fields with the combination for individual condition record. Suppose if I use Plant as condition table, then the condition record will be created for plant only.
We can use many fields in one condition tables.
2. Access Sequence
The main concept of Access sequence is, it searches condition record for condition type from condition table.
One access sequence can contain one or multiple condition tables.
Suppose we maintain 4 condition tables in one access sequence. Then when a condition type will search for condition record via this access sequence, the access sequence will allow to search only these 4 condition tables.
3. Condition Type
In simple term, condition type is used for different type of charges. Like gross price, discount, freight, rebate etc etc.
Suppose we purchase a material for price 10, we get a discount of price 2. Then the price 10 will be going to a condition type and the price 2 will be going to another condition type.
4. Condition Record
Condition record contains the record which is maintained against condition table with regards to condition type.
It can be fetched via access sequence and condition type.
Suppose we maintain a condition record against condition table (vendor) with regards to condition type. Then whenever the vendor used this condition type, the condition record will be fetched.
5. Schema Group
It’s assigned to our vendor and Purchase Organization, It helps the vendor and purchase organization to choose pricing procedure.
One schema group will be assigned to vendor and one schema group will be assigned to Purchase organization. With this combination, system will fetch the pricing procedure.
6. Calculation Schema
Here we maintain sequence for the pricing calculation, like gross price, discount, rebate, surcharges etc. Here we maintain the calculation for all condition types and group together all required condition types for our pricing procedure.
7. Schema Determination
Here we maintain the pricing procedure for purchasing document. We maintain calculation schema combination of per each vendor – schema group and each purchase organization – schema group.
In general, below image will give the concept how a condition type will search for the condition records :
CONFIGURATIONS:
Step 1 : Maintain Condition Table
T-code M/03 or Path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Maintain Condition Table-Create condition table.
The initial screen will be appear for create condition table.
Give the new condition table no. You can use old condition table number as reference. To give reference just give the old condition table number in below “copy from condition table”.
{Note: As per standard SAP, they give the entire condition table for general business requirement. If any condition table doesn’t fulfill your requirement, then you can create new condition table. Please use between 501 to 999 as condition table (recommended in OSS note 32030)}.
Now press enter
You can see the left side will be blank in initial screen, Right side will be always filled. Just double click on the right side field which you can add for this condition table.
When you double click the field the field will be blue colour and the field is appear in left side.
As we can see the 1 field I have selected in this condition table.
Save your data.
You can change the option as per your business requirement. For more details for these options, just press F1 on these option, you will find sap help doc.
Step 2 : Maintain Access Sequence
T-code M/07 or path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Define Access Sequences.
The initial screen will appear.
You can create a new access sequence or maintain the condition table in existing access sequence (depend on your business process)
If you want to create then click New Entries. (Or you can use copy reference, Just select the access sequence and press Copy as…)
Enter your Access Sequence and give the description and also you can choose Access category.
Then select the AS and double click on Accesses
Click on New Entries
Enter the access number, condition table and if required the give routing number and Exclusive.
If you tick exclusive indicator, then if valid condition record found then system will stop searching after the first.
Choose as per your requirement.
Then select the line item and click on the fields (left side) to activate the condition table in access sequence. You do not need to do anything here, just double on the fields and go back. If you will not do that, then your condition table will be not accessible. You can add more condition table (s) on this access sequence.
Save your data.
Step 3 : Maintain Condition Type
T-code M/06 or path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Define Condition Types-Define Condition Type
The initial screen will be appear
As for gross price SAP default maintain as PBXX for time independent condition and PB00 for time dependent condition.
Time Independent condition is use with validity period, which can be differ as validity period (we use it in info record, RFQ, Contract, SA(as per configuration for document type)).
So we don’t need to create new condition type for gross price, although you can create your own starting with Z.
Assign you newly created access sequence to the gross price condition type (I have maintain in for PBXX)
Here you can find all types of condition type like as freight, discount, rebate, cash discount etc. If it can fulfill your requirement, then no need to create new condition type. If doesn’t the go for New Entries.
Here I have maintain ZCAH as discount, I give condition class A, Calculation type A, Plus/Minus X-Negative
(Note: Not required to maintain like that, you can maintain as per your requirement.)
As per this way please create other condition types as per your requirement (which will be used in Pricing Procedure)
Save you data.
Step 4 : Maintain Calculation Schema
T-code M/08 or path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Define Calculation Schema
This is very very important part in pricing procedure.
Here we give the calculation for all condition types.
Here also you can find the SAP default calculation schema, you can also use one of them as your pricing procedure. Although you can create new calculation schema as per your requirement.
Just click on New Entry. (or you can copy old schema and can modify yourself. then select copy as…)
Give the name and description for new procedure.
Then Select this procedure and press Control (in left side)
You can see a lots of option there, You can read all option help which is provide by SAP (Just select the portion and press F1)
Maintain PBXX as gross price in step 1, counter 1, leave the from and to blank, Subtotal will be value 9-Copy values to KOMP-BRTWR (gross value).
Maintain other condition types as per your requirement.
I have maintained ZCAH and ZCAS, I have used from 1, it means it will calculate the value against Gross Price (PBXX)
I have used Total Discount amount, from 7 to 9, It shows the total discount value (Total of ZCAH and ZCAS)
At last I have used TOTAL AMOUNT, It shows net value for this pricing procedure.
Step 5 : Maintain Schema Group for Vendor
T-code OMFN or path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Define Schema Group-Schema Groups: Vendor
Just click on New Entries and enter the Schema Grp Vndr and give the description.
Here I have maintained Z1.
Step 6 : Maintain Schema Groups for Purchasing Organizations
T-code OMFM or path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Define Schema Group-Schema Groups for Purchasing Organizations
Just click on the new entries and enter the Schema GrpPOrg and description.
Here I have maintained ZMM1.
Step 6 : Assign Schema Group to Purchasing Organization
T-code OMFP or path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Define Schema Group-Assignment of Schema Group to Purchasing Organization
Here find your Purchase Organization, and assign Schema GrpPOrg to Purchase organization.
Step 7 : Maintain Schema Determination
T-code OMFO or path SPRO-IMG-MM-Purchasing-Conditions-Define Price Determination Process-Define Schema Determination-Determine Calculation Schema for Standard Purchase Orders
Step 8 : Assign Schema group to Vendor
When you are going to create a vendor from XK01 in purchasing data you will find “Schema Group, Vendor”
Here assign the schema group which you have created on step 5.
You can also maintain it on existing vendor via XK02.
Step 9 : Maintain Condition Record
T-code MEK2
Maintain the condition record against the key combination.
Save your data.
Finally all configurations has been done.
Now see the result.
Create PO with this purchase organization and with this vendor.
We can see the my new pricing procedure is working perfect.
We can use this in SA.
Just we have to configure this for document of schedule agreement.
Go to path SPRO-IMG-MM-Purchasing-Scheduling Agreement-Define Document Types
Just un-tick Time Dep. Condition for SA document type.
Then Create SA for this vendor and purchasing organization.
This is called time independent condition. You can also use this pricing procedure for RFQ. But Contract and Info record will be always time dependent condition.
Time Independent conditions are not dependent on time. It hasn’t any validity period, that means it will be always same for all time. The above settings are for time independent condition. Whenever you will use time independent condition, then you need to do these above settings.
Time dependent conditions are always time dependent. It has the validity period. You can use more than one price for the same condition record with different validity period, so that system will change it automatically as per the validity period.
I think I do not need to explain anything more about the differences Time dependent condition and Time Independent condition because there are many discussions already there for the differences.
You can use either time dependent or time independent for Schedule Agreement and Request For Quotation but you can only use time dependent condition for Contract and Info record and for Purchase Order, you need to always use time independent conditions.
For time dependent settings, you just need to set the up the condition type, Access sequence, Condition table and Calculation schema. Schema group is not needed for the time dependent condition.
We can also maintain the fixed discount for particular vendor.
Suppose one of my vendors gives me material as 5 % discount for all material.
We can maintain it in condition record.
Go to MEK2
Click on Supplement Condition. Maintain there your condition type for ZCAH as 5.
You can see the default 5% discount has been automatically arrived in PO or SA.
You can only able to see these condition types which is associated with the condition type which you have entered at the first screen and it will be your gross condition type.
To add some more condition type, you need to add these condition types in the associated calculation schema. To find the calculation schema which is associated with the gross condition type, you need to go to M/06 and you will find the calculation schema as below :
You can add your condition type in this calculation schema in t-code M/08. Then your condition type will be visible for time dependent condition (MEK1) or Info record or Contract.
Appreciable effort, keep posting.
excellent!THX~~
i want to know relation between account key and pricing
very clear and to the point! thank you
Excellent. Really helpful.
Yes, its really helpful. excellent .
Really nice explanation... thank you Debeyndu
Awesome explanation. It is really helpful to understand perfectly. Thanks Dibyendu..
Very good
Nice…its really helpful!!
DADA TOMAR SATHE AMI LUX INDUSTRIES TE KAJ KORECHILAM... TOMAR THKE ONK KICHU SIKHECHILAM. PRICING NIYE EKTA PRBLM SOKAL THKE CHOLCHILO TAI EKHN VABLAM J TOMAR DOC TA EKBAR REVISED KORI, JODI KICHU SOLUTION PAI R PELAM O.... THNX DADA
Brilliant Post, Dibyendu ! Very well explained..
Thanks a lot for sharing your knowledge 🙂
Thanks Rahul.
hello dibyendu,bhai good evng,what the 16 steps of pricing procedure.U ve shown 7 steps.can u explain bhai ,confused lil bit.can u help me out bhai
There are no 16 steps involved. Many consultants say it as 16 fields are there in pricing procedure. If you go to M/08, then you will find 16 tab there, see below:
Simply supper and excellent way of explanation.
Thanks for sharing your knowledge.
Great document. We are willing to use time dependent conditions at header level with group indicator can you put some light on it.
its just amazing
Thank you, Dibyendu Patra! This is one of the most detailed and comprehensive blogs on Pricing Procedure. I am looking forward to your other posts. Appreciate your efforts.
- Sai Teja
Excellent block. Very well explained.
Very useful for beginners, how to config pricing procedure
Really appreciates your efforts with 16 fields explanation.
THKS
Fantastic blog and I really appreciate your efforts to build this material.
Regards,
Pravin M
Subject Matter Expertise,
SAP Procurement and Ariba Spend Management.
Hi
I got this error after apply your explanation
Error in net price calculation, item 000010 (Please correct)
Message no. 06213
Diagnosis
Possible causes:
The net price is negative.
Check the prices and conditions entered.
An error has occurred during currency translation.
Check whether the foreign currency is defined in the system.
The unit of measure of an item is not allowed.
Check the units of measure entered.
An internal error has occurred during the price determination process.
A mandatory condition type is not defined in the system. Please contact your system administrator.
Hi Dibyendu,
could you pls help for below Issue?
I want to give a discount for different Material number and bundled quantities in one sales order.
If mixed Material number (e.g. 3-4 different Material) and their quantities together reach
1,200 pcs, all materials get 5 % discount
2,400 pcs, all material get 7% discount
3,600 pcs, all material get 9% discount
I want to use Product Hierarchy instead of Material number.
How can I solve this?
Thanks for your support.
Michael K.
Nice explanation
Very informative post! Keep posting like this🥰