Skip to Content
Technical Articles
Author's profile photo shailesh mishra

Variant Conditions in Purchasing using reference characteristics

In past, I had opportunity and privilege to work for an automotive organization which used to manufacture ‘‘Tyres”. Any industry which has variants in their business from Sales, Purchasing and in production heavily depend on characteristics and variants of materials and inevitably ”Variant Configuration” has to be implemented.

Though client was not using VC, during our system audit, we observed how tedious has become the business when 100 of variants of production were taking place and all where on different material codes.This blog is written to explain how during purchasing,a variant conditions can be deployed so as to calculate surcharges or discount values based on characteristics of product.

Variant configuration from my perspective is not an industry specific solutions for customer and its usage can be anywhere example while placing an order for a ”Pizza”:)

You place an order of Pizza and based on Pizza types,  and vendor put some surcharges( Additional charges) based on your choice.


Testing system: S4H 1709

Example. Product Pizza and it has 6 different characteristics(Pizza types), surcharge calculation.


SAP VC heavily rely on class, characteristics and object dependencies to infer the values. In this case, I will use ”Procedure” because I need successive calculation of surcharges which will be derived by characteristics value. Only dependency type ”Procedure” provides derivation of characteristics with option of overwriting and successive calculation.

Dependency type ”Procedure” is primarily used in  BOM Items,  Task list object and Configuration Profile. Latter this blog, it will be explained, how in our case, configuration profile will be used.


Create different Pizza types using a characteristics.



Create another Characteristics using reference characteristics using  table MMCOM, field VKOND.

–>Reference characteristics are characteristics that refer to table fields. 


In our case, surcharges on pizza during Purchasing will be calculated based on Piza Types( Characteristics of pizas and its values) from reference table MMCOM VKOND.

Create a characteristics and assign the reference characteristics in it.



Create a material and ensure to make to configurable product in material master and assign a class having both the characteristics being created above.

Create a configuration profile CU41 and assign the class and write a dependency code using dependency type procedure.


Use $self-> for writing the dependency code and check the syntax is correct or not.

Create a vendor info record for this Material as below. Condition type VA00 is used for variant functions( Qty/ value based)


and mention the surcharge rate based on pizza types.


why VA00 condition type is used in creating Vendor info record for surcharge is explicable from configuration.



Now, create a Purchase order and see how our variant function in purchasing works.


Select the pizza of your choise, system will automatically bring its values.


and if you check the condition record, price is fetched based on characteristics of Pizza.


if we change the alternative to another variant of Pizza 04(Meat), system automatically adjusts the new one


The new surcharge is calculated.


Hence, the blog ends here. Hope you would have enjoyed reading blog. I would write more on VC like in future on Production side like Planning strategy 56, 89.




Best regards

Shailesh Mishra

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo VAMSIKRISHNA SRIRANGAM

      Hi Sailesh,

      It is really great Blog ?

      Author's profile photo amarjeet kumar
      amarjeet kumar

      Good one

      Author's profile photo Pulla Rao Tulava
      Pulla Rao Tulava

      Nice blog thanks for sharing...?

      Author's profile photo Vignesh Veerasamy
      Vignesh Veerasamy

      Wonderful blog.

      Author's profile photo Liu Zhijie
      Liu Zhijie

      Hi Sailesh,

      It's a wonderful blog, and appreciate your sharing.

      I have one question about the costing run and valuation for material with variant condition, normally these material should be managed and valuated within batch, right?


      Author's profile photo shailesh mishra
      shailesh mishra
      Blog Post Author

      Hello Liu,

      Thanks for your reply. Yes, during testing I had 2 observations

      1. When product is a configurable material, during creating Purchase order, system prompts a message to make the product as batch managed, and hence its valuation should be batch specific.


      2. However, my product was not batch managed, I found some other work around to do this. I created PO for account assignment category, K.


      3. My product was not KMAT material type as KMAT material do not have purchasing view, what I did is I took a trading material type and in material master, I made it as configurable materials.

      If cost is not required to an object then material has to be batch managed.

      Best regards

      Shailesh Mishra


      Author's profile photo Ranjan Amit
      Ranjan Amit

      Do we have anything new in running this process in Classical vs AVC?

      Author's profile photo Tiancai Lin
      Tiancai Lin

      NICE DOCU!

      Author's profile photo Yutaka Saiki
      Yutaka Saiki

      Hi Shailesh,

      I really liked your article on price conditions.
      I would like your help. Is there any function or method that I can get the name of the conditions and the value according to the attached image? I need to inform this on a form, but the kschl field does not come with the name of the variant. Thanks in advance for your help.

      Author's profile photo Ulf Petzel
      Ulf Petzel

      Hi Shailesh,


      I am stuck at the step where I am supposed to be able to maintain the variant condition. When I click on the menu option "Variant Conditions", I am only able to select a validity period in a pop-up, am not getting the pop-up "Overview of Condition Types". I directly get a pop-up called "Variant condition" in which a table can be maintained, but nothing else. Where are the condition types activated to be showing up as selectable here?


      Thanks, Ulf.

      Author's profile photo Ulf Petzel
      Ulf Petzel

      Hi Shailesh,


      I finally managed to get this working. Key is to check if VA00/VA01 condition type has flag "Variant Condition" set in Customizing, and also that in price determination schema for the respective Purchasing Group, VA00 is indeed contained. Otherwise maintenance of the variant conditions is not possible. Also, when in the PIR maintenance, you need to enter the variant condition key (e.g. Cheese, Veggie) in the first pop-up before you get to select VA00 or VA01, and then getting to variant condition based price maintenance.

      Hope this helps others who try to make this work! Unfortunately the variant conditions documentation is pretty high-level:


      Author's profile photo Xiaoguang Li
      Xiaoguang Li

      If both finished materials and raw materials are configurable, how can the relevant characteristics of finished materials be brought into the purchase order of raw materials when a sales order is placed for finished materials?


      Author's profile photo Chetan Mahamune
      Chetan Mahamune

      Nice content Shailesh, its very insightful. Have you written blog on Planning strategy 56, 89 ? If yes, could you please share the URL here ?

      Author's profile photo Vishwanath Mani
      Vishwanath Mani

      Hi All,

      Just wanted to know what happens to PBXX price, whether it will added to base price.


      Because actually price of Meat Pizza is 80 CAD but here it shows 90 CAD so bit confused