cancel
Showing results for 
Search instead for 
Did you mean: 

SD discounts

Former Member
0 Kudos

Hi ,

Is there any way that Material 1 is ordered and discount 60% is given on Material 2 ?

Please suggest

Thanks ,

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

Hi,

I would suggest you to use Requirement routine in Pricing procedure with following case and logic:

Assuming:

Discount pricing conidition type: ZDIS

Create condition records:

Mat1 = 10%

Mat2 = 20%

Mat3 = 50%

Considering Header Materials as MatH1, MatH2.

Create a Z table (MATCHILD, MATPAR) to maintain the valid combinations like:

MATCHILD -- MATPAR

Mat1 -- MatH1

Mat2 -- MatH1

Mat1 -- MatH2

Mat3 -- MattH2 

In routine, write following logic:

Select MATPAR from Z table where MATCHILD = material in SO.

Loop on all line items of the SO.

     If MATPAR = SO Item metarial.

          Sy-Subrc = 0

     Esle

          Sy-Subrc = 4.

     endif.

endloop.

There is no other way to link Child and Parent materials assuming many to many mapping and you are not using BOMs.

Think and reply.

Former Member
0 Kudos

What is the global variable in pricing requirement routine that you can use to find item 1 material number?

Former Member
0 Kudos

use XVBAP and loop for all items to find the correct one.

former_member220617
Contributor
0 Kudos

Dear lakshmipathi sir , As per your suggestions, I tried but here scenario is dependent on other material,material group combination is not working for this line item 2 , because if material 1 presents then only material2 is eligible for discount. Here line item 10 also eligible for discount as per your scenario , because material-Mat786 also take material group from second line item and can show discount.but as per standard behavior line item will not consider other line item.but i will consider header line item and here there is no such option . @ Pranshu I think this can be done through userexit or any routine can be incorporated in your pricing procedure. Rotinue logic has to be with link with material MAT786 for MAT2, but think how u have to give logic as per your business scenario Regards, C.B Reddy.

Former Member
0 Kudos

Requirement is  - 1. Mat 2 , Mat 3 , Mat 4 will get 20% discount if ordered with Mat1 , else no discount . 2. Mat 1 is ordered, now if I add Mat 2 in order, system should check it with Mat 1 exist, then give 20% discount at Mat 2 3. Mat 1 is ordered, and Mat 2 not added in , so no discounts So , seems we cannot use BOM and Free Goods .

former_member184555
Active Contributor
0 Kudos

Your client is in which industry? Are they into retail business? If it is a realtime business requirement, please explain the scenario in detail.

Regards,

Ravi

Lakshmipathi
Active Contributor
0 Kudos


Assign some Material Group to Mat-2, Mat-3 & Mat-4 and maintain pricing condition record with the combination of Customer / Material / Material Group.

By doing so, once you create a sale order for that Sold To and Mat-1 with either of other materials, system will populate the required discount.  But I am not sure how system should behave if the end customer places an order for Mat-1 with Mat-4.  As per your post, still discount is eligible in which case, you can try with this suggestion

G. Lakshmipathi

Former Member
0 Kudos

Hi Lakshmipathi ,

If I try to think on your solution , may be you suggested like below : -

1. Create Mat grp - XYX  and assign to Mat 2 , 3 , 4

2.  Order  -

          Item 10  - MAT 1

          Item 20  - MAT 2  -  Access Seq  -  Customer = ABC / Mat = Mat 2 / Mat group = XYZ ( WRONG )

Here Mat = Mat1 will never get check which is correct . 

Item 20 ( Mat 2 ) should only have 20% discount ONLY if its bundled with Mat 1 .

If Mat 2 is ordered individually , it will be sold for full cost.

Thanks .

Lakshmipathi
Active Contributor
0 Kudos

I think, you have not gone through my suggestion carefully.

Let the header material     =  MAT-789
Let the Customer be          =  ABC
Let the material group        =  A-100 and assigned to MAT-2, MAT-3 & MAT-4
Pricing Condition would be ABC / MAT-789 / A-100  =  $ 100.00

Now try to create a sale order with MAT-789 and MAT-2 or MAT-3 or MAT-4 and check whether the system picks the required discount

G. Lakshmipathi

Former Member
0 Kudos

Hello Sir ,

I really appreciate the idea . But its not BOM . There is no header material and item material .

If I order in sequence like

10.  Mat 1 ( HP machine )

20.  Mat 8 ( wire )

30.  Mat 2 ( its cartridge )

It will fail .

in above scenario , as soon as I enter Mat 2 , system should check oh Mat 1 also ordered , so give discount of 20% ..

Thanks

Lakshmipathi
Active Contributor
0 Kudos

Why don't you try the suggestion given and update here?   I never said, you have to try with BOM.  If you keep on raising so many queries with certain assumptions, I can't help you.  In a simple language, I have explained clearly how to achieve this and if this is not working, you have to explain in which scenario, it is not working.

G. Lakshmipathi

Former Member
0 Kudos

On top of the discount condition type with pricing group access key, in SO user exit, if XVBAP has a  MAT1 entered in SO, modify VBAP-KONDM to the discount pricing group for mat 2, mat 2.

Do check for the differences in VA01 and in V02.

In VA02, if material changes, you may need to build checks for YVBAP.

Happy studying and hope you got what you want.

former_member220617
Contributor
0 Kudos

Dear Pranshu ,

As per my knowledge you can do through user exit and before that just think any impact is there for other material in the future or you want to extend for other materials. this may affect .

Write the logic for Sales order line item in MV45AFZZ program .

there is 2 materials ==== A & B

if in line item 10  and  material is A --- then logic in the program has to update the material name in header additional TAB A or B in any field after entering the material in any line item and don't hardcode that material name in your program . just link with any dynamic table so that in future if you want to extend any other material it will help you .every time logic will check with dynamic table if it matches then it will update other wise ignore .

now for line item 20 material is B -- in you pricing procedure, you have to add that HEADER ADDITIONAL TAB FEILD to you access sequence . so that when ever if you enter this material A automatically it will update to header level  and in your access sequence you have to add with material and additional tab and other required combination with 60% discount .  

Regards,

C.B Reddy.

Former Member
0 Kudos

are you using BOM?

If yes, sure you can customized the pricing procedure.