Thursday, September 9, 2010

Fundamentals of SAP Pricing

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.
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 :
The types of calculation ( whether its a price, discount or a tax calculation, and in price – if its a retail price or a wholesale price or a variant price etc ) are called condition type. Normally, condition types of a particular kind are not cumulative – Meaning if there are more than 1 Pricing condition type, they don’t add up – instead the last pricing condition type is taken by the system. There are some exceptions to this however. For example when pricing a car, its the sum of the different pricing condition types that gives you the Price. They are called variant condition types.
Requirement
A requirement is a piece of code that calculates if a particular condition type should be evaluated or not. This is not necessarily the only way to check if. However, since this involves hard-coding the logic in the system, this functionality should be used sparingly.
For example, the following piece of code says, “If the item is not relevant for pricing – do not price it”. Functional consultants should be aware of the final result SY-SUBRC. SUBRC stands for SUB Routine Return Code. Typically in SAP, a return code of 0 signifies a success. Otherwise its a failure.
* Pricing is turned on in item category configuration (TVAP)form kobed_002.sy-subrc = 4.if komp-kposn ne 0.check: komp-prsfd ca ‘BX’.check: komp-kznep = space.endif.sy-subrc = 0.endform.* Prestepform kobev_002.sy-subrc = 0.endform.
* Pricing is turned on in item category configuration (TVAP)
form kobed_002.
sy-subrc = 4.
if komp-kposn ne 0.
check: komp-prsfd ca ‘BX’.
check: komp-kznep = space.
endif.
sy-subrc = 0.
endform.
* Prestep
form kobev_002.
sy-subrc = 0.
endform.
Similarly, the following picture shows a simple requirement. There are 2 types of discount condition types – Retail and Wholesale. If the customer is retail, then apply that discount. If the customer is wholesale, then apply the other discount. So the actual total depends on who the Order’s customer is. The same can be achieved using many different ways, but this is sure one hard-coded way to do it.

No comments:

Post a Comment