Skip to Content
Technical Articles

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

You must be Logged on to comment or reply to a post.
  • 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?


    • 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


  • 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.