Payment Terms to be Dynamically Determined

In this post, we talk about one live scenario in SAP. These scenarios are discussed as part of SAP Training Classes. You can use these as examples.

Scenario : Determine Payment Terms dynamically at the Item Level, based on Material Group.

Explanation : In one of the projects, I have encountered a situation where the payment terms should be determined based on the material group. Here is more detailed explanation.

Let’s say that this company sells multiple products ( Wireless Controllers, Access Points, cables and other Accessories ) and any customer can buy multiple products mentioned above using the same sales order. However, they different varied value and represent different cash flow situations. For example, Wireless Controllers typically cost 200,000 USD + , whereas accessories cost 50 $. So, it is not wise to ask the Customer to pay all of them with the same payment terms.

Solution : This problem can be broken down like this.  As usual, there are multiple solutions possible for the same scenario and we only talk about one solution to this problem.

Step 1 : Since the problem statement says that we have to have multiple payment terms based on product group, first we need to internally classify the materials into multiple product groups. We can use any kind of categorization used in the material master like SAP Material Groups, SAP Product Hierarchy etc. For this example, let’s stick with material groups which is much simpler to configure.

Step 2 : Now that we have categorized the materials, we now need a way to identify the material as belonging to a particular group at the line item level in the sales order and dynamically change the payment terms. For this there are 2 ways.

  • Write code in one of the SAP User Exits that is triggered at the line item level , looks at the material group and based on that look at a mapping table ( say a Z table ) and dynamically change the payment terms ( VBKD-ZTERM ) at the line item level based on the material group ( VBAP-MATKL ). Look at How to identify the technical field names in SAP to understand how I have identified the technical names associated with payment terms and material groups.
  • The other easier way is to use SAP Pricing‘s SAP Condition Record. As part of our SAP SD Training, we have learnt that Condition Record has payment terms associated with it. So, we can use this functionality to affect payment terms at the line item level.

Since, condition records is a much more friendly way of doing this ( compared to User Exits ) let’s concentrate on this approach. Here is how to Create SAP Condition Records. A much lesser known fact is that SAP Payment Terms can be made to be part of each condition record. And payment terms associated with a particular line item’s pricing will automatically be made part of the corresponding line item in the sales order. Here is an example.

Let’s create a condition record for M-01 with a price of 250 EUR for the sales organization 1000 and distribution channel 10 using SAP Pricing Condition Type PR00. Along with the price, you can also specify the payment terms as shown below.

As you can see, we have specified a payment terms of 0001. Now, let’s create an SAP Sales Order and see the effect of this on the payment terms in the sales order.

However, the Payment terms in the SAP Customer master for the SAP Sales Area in Question is 0004. 

Now that you know how to effect pricing at the line item level using condition record, you can let the pricing team know that they need to create pricing condition records with material group as one of the parameters in the SAP Condition table and set the payment terms accordingly.

Question 1 : What if the pricing for that material is NOT based on material group but we still want to effect payment terms based on material group ?

Question 2 : What is the problem involves the Customer also ? Meaning, the Payment Terms by material group at the line item level ONLY applies to a specific customer master or by a group of Customers ? ( SAP Customer Group )

Advertisements

5 thoughts on “Payment Terms to be Dynamically Determined

  1. Narendra says:

    Question 1 : What if the pricing for that material is NOT based on material group but we still want to effect payment terms based on material group ?

    If the pricing is not based on Material Group, then can we have a dummy pricing condition type based on material group and let it effect the payment terms based on condition record ?

    Question 2 : What is the problem involves the Customer also ? Meaning, the Payment Terms by material group at the line item level ONLY applies to a specific customer master or by a group of Customers ? ( SAP Customer Group )

    Once again, can we create dummy pricing condition record which includes the Customer also as one of the parameters and as usual create condition records for the same that has payment terms specified.

    Like

  2. siva says:

    Excellent Narendra ! . Now the question that remains is , how do you make the pricing condition type as dummy ? Please specify explicitly, which parameter you can use to make the pricing condition type “dummy” and not affect sales order pricing ?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s