Fundamentals of SAP SD Pricing

Concepts Pricing is one of the core concepts in SAP SD and all SD consultants need to know pricing. Just as the name says, SAP SD Pricing is configuring the system to effectively determine the price of a product under different circumstances. The most easiest example to explore pricing is to take a simple grocery bill and expand on it.

Consider this as an extract of a grocery bill. You have purchased some items from the Produce section and some from the stationery section. Your Produce sub-total is 18.00 and your stationery sub-total is 10.00. You have been taxed 10% and your total comes to 27.00 as shown in the picture above.

Let¶s just explore on how the pricing is calculated on line item No. 10 ± Milk. However, they might not be shown on the bill but are internal to the company selling the product. Let¶s explore how a potential bill could be created. As you can see from the picture below, there is a Base Price from the price list ± 5.00 . And since the bill is for a retail customer , there is a retail discount of 1.00. So the sub-total for the line item 10 is 4.00. Condition Type :

For example when pricing a car. Requirement A requirement is a piece of code that calculates if a particular condition type should be evaluated or not. check: komp-kznep = space. Typically in SAP. For example. Functional consultants should be aware of the final result SY-SUBRC. sy-subrc = 4. the following piece of code says. * Pricing is turned on in item category configuration (TVAP) form kobed_002. Normally. sy-subrc = 0. if komp-kposn ne 0. this functionality should be used sparingly. endform. condition types of a particular kind are not cumulative ± Meaning if there are more than 1 Pricing condition type. SUBRC stands for SUB Routine Return Code. they don¶t add up ± instead the last pricing condition type is taken by the system. ³If the item is not relevant for pricing ± do not price it´. its the sum of the different pricing condition types that gives you the Price. since this involves hard-coding the logic in the system. and in price ± if its a retail price or a wholesale price or a variant price etc ) are called condition type. There are some exceptions to this however. . This is not necessarily the only way to check if. sy-subrc = 0. * Prestep form kobev_002. endform. a return code of 0 signifies a success. However. endif. They are called variant condition types. check: komp-prsfd ca µBX¶. discount or a tax calculation.The types of calculation ( whether its a price. Otherwise its a failure.

sy-subrc = 0. * Prestep form kobev_002. . then apply that discount. So the actual total depends on who the Order¶s customer is. but this is sure one hard-coded way to do it. check: komp-prsfd ca µBX¶. check: komp-kznep = space. if komp-kposn ne 0. endform. Similarly. sy-subrc = 4. If the customer is retail. the following picture shows a simple requirement. endform. sy-subrc = 0.* Pricing is turned on in item category configuration (TVAP) form kobed_002. then apply the other discount. There are 2 types of discount condition types ± Retail and Wholesale. endif. If the customer is wholesale. The same can be achieved using many different ways.

For example.? That actually depends on the business scenario.Sub-Total A sub-total as the name implies holds temporary totals before the final price is calculated. the Gross price is a sub-total that results from the base price. However. As shown in the picture below. The Net Price is a sub-total that is arrived at subtracting the Discount percentage off of the Gross Price. should the tax be applied on the Gross Price or the Net Price. if the item is taxable. the Sub-totals allow for easily identifying and computing values for further use. There are many additional steps that might be required to arrive at the final price. ..

County. get the tax rate as relevant for the corresponding jurisdiction code and return that value to the pricing procedure. . State and District ). So it is wiser for companies to just call an external tax vendor using a remote function call. However.00 for the Base Price ( shown in the picture above ) is derived based on condition records which we will see much further in the discussion. And they change continuously. if the condition type should NOT be calculated based on a condition record. Each alternative calculation routine is a 3 digit number between 1 and 999 that contains a piece of code that does some calculation either internally or externally and returns a value. Taxes in the US and Canada are based on Jurisdiction code.Alternative Calculation Type The value 5. So it is not practical for companies to keep track of the changes in tax rates. but should be calculated based on an external or internal logic. then an alternative calculation routine should be used. A simple example for the same is US Taxes. There are around 50000+ jurisdiction codes in the US alone ( Based on all possible variations of City. That value will be used to calculate the condition type as opposed to a condition record. There are external tax companies ( Called Tax Vendors ) that only does this.

tax accounts etc to be updated on the fly. expenses. the finance departments wants the corresponding Sales. The account key in the pricing procedure ( with the help of Account Determination ) helps in identifying which G/L account this should the amount flow into. A simple example could be Account Key Description Customer A/C Group Material A/C Group G/L Account ERL Sales Wholesale Consumables 1000040 ERL Sales Wholesale Stationery 1000050 ERS Discounts Wholesale Consumables 1100040 ERS Discounts Wholesale Stationery 1100050 .Account Key When an invoice is created.

since this is used by Controlling ( CO ) to evaluate profitability. the value should not be relevant when pricing to the customer. the actual cost of the material ( not the price but the cost price ) is available in all pricing procedures.Statistical This is a flag ( A Check mark ) that is used to signify if the pricing condition type is being used in the calculation or not. if you need informational condition types for further analysis set them up in the pricing procedure as statistical . For example. However. So.

Adobe Forms etc. .Print Flag The print flag is another check mark that is used to tell SAP if the particular pricing condition type should be printed on the final bill or not. the cost condition type should not be printed on the invoice. As discussed in the previous example. With the advent of advanced technologies like SmartForms. this flag has almost no use ( Since what is printed and what is not is decided mostly by these programs ).

The actual database table is defined in the Condition Table assigned to the Access Sequence. The transaction code to create the same is [VK11]. Maintain Condition Records A condition record is actually a row in a database table. Let¶s start by creating an condition record for a condition type PR00. Enter the pricing condition type. . We will only discuss the rest of the pricing relevant stuff going forward.SAP Pricing Configuration Now that we have understood the basic terminology used in Pricing. let¶s dig deeper into the configuration. and select the right Condition Table. The menu path is [ Logistics -> Sales and Distribution -> Master Data -> Condition -> Select Using Condition Type ]. The configuration is very similar to SAP Condition Technique.

scales etc which will not be discussed here. A sales order is shown below for Customer 1400 and for the material M-01 that we created the condition record for with a price value PR00 of 50. There are some advanced concepts like rebate functionality.Enter the values and save the record. SAP Pricing DEMO Let¶s start by creating a new sales order for the customer and material that we have created condition records for and see the effect of the condition records on the sales order pricing. condition supplements. Select the line item and click on the Nickel button in the bottom ( Pricing button ) to view the pricing details for that line item. .

.You will be taken to the Line Item¶s Condition tab where the pricing details can be viewed specific to that line item.00 which is exactly what we have set in the pricing condition record. As you can see. the PR00 value is set as 50.

00 click on the Analysis button as shown below.Let¶s say somebody else has entered the condition record for that material and you have just created the sales order. Now if you want to analyze and backtrack why the pricing is coming up as 50. . A new screen opens up where if you explore the particular condition type ( PR00 in this case ) you will see for which combination ( customer material in this case ) that pricing has been picked up.

You can just click on the area highlighted above to see further details of the condition record. if you click on PR00 above. you will be taken to a new screen that shows you the actual condition record. . For example. its validity ( Valid From and Valid To dates ) along with the value for PR00.

Sign up to vote on this title
UsefulNot useful