cancel
Showing results for 
Search instead for 
Did you mean: 

Restricting sale of material to just one customer

Former Member
0 Kudos

One of our users questioned us about restricting the sale of one material number to a certain customer. We know there are ways to create inclusion and exclusion lists, but that would be too much to maintain. We have a proprietary material for just one customer and we don't want to sell it to anyone else. How do we accomplish this in SAP?

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

During all my 12+ years of consulting, I hear some times the requirement to have Customer-Specific Materials but every time …..the requirement was addressed either with Project stock (PS), or Customer Specific Storage Locations (IM), Contract Sales order stock (SD), or Enhancements.
But this time, I got the requirement from my client, to constraint certain materials  to only certain distributors (Customers)  but the variety of material types was very diverse (MTS, MTO,  Drop-Ship, 3rd party Back-to-Back, etc.)
So I started to find out if somebody had that requirement before and how to resolve it, I found many postings talking about Listing/Exclusion functionality, but most of those suggestions, either did not understood the requirement, or they do not understand all the amount of master data required to set that up …needless to mention the pain in the ….. of having to add new materials/customers/groups or any other grouping access sequence you defined in  your listing/exclusion if you got lucky and figured a very complex way to use it.
I wanted a simple 2 step solution that will allow me to first create a material and second ONLY allow one customer to buy it when I defined it:
A-Setup a Material  & B-Assign that material to a customer when I wanted
I read the comments about an enhancement with a customer table with the sold-to and the material and use a user exit…. But I challenged myself to do it with standard SAP without enhancements
And I am happy to share with you, that I was able to do so, and here I share the solution
1-Create an Item Category Group value ZEDS (Ed Shortt’s special Item Category Group for materials to be part of this restriction)
2-Create an Item Category Usage ZCUS (Ed Shortt’s special to control when the Usage is allowed)
3-Then, for the sales documents you want to allow this (e.g. “OR”), go into item category determination and setup document type OR with usage ZCUS and Item category Group ZEDS pointing to your item category (e.g.TAN)
e.g. OR  ZCUS  ZEDS   TAN
4-then in the material master records that you want to restrict, go into the Sales Org: General/Plant Data view and assign ZEDS Item Category Group
5-Go into VD51 and create a CMIR (Customer Material info Record) for your sales org, the customer you want to allow to buy this material and the restricted material number  …. and set the usage ZCUS in the CMIR and Save

From now on, for any customer that you want to allow to buy this material, just create a CMIR and setup usage ZCUS and that will be your approval to sell that material to that customer
If you want to create more materials restricted this way, just add the ZEDS item category Group in the material master and voila it is not possible to be entered on the OR unless you create the corresponding CMIR 
If in the future, you want to graduate the material, to allow it to be sold to any customer, just change the item category group in the material master and flag for deletion the CMIR (or remove the usage) and now, it will be possible to sell it to everybody.
Any other customer that tries to but a material with the ZEDS item category group and they do not have the CMIR with the ZCUS usage, will get a "Item category determination not defined" message

As an alternative, you could map the item category determination ZEDS (Without the 'usage') to an item category that behaves like a text-item ....so no delivery or billing is allowed but it does not fail on inbound EDI for example, or allows you to record who tried to order it, but got the “No Confirmation” text item (Maybe incomplete because missing pricing).
You could also add a specific billing block "Z1-Not Allowed" to the text-item (item category) to easilly identify the sales doc items that tried to enter a material that is not allowed for that customer)
Obviouslly,  if you have multiple item category requirements for your diferent material procurmeent types (TAN, TAS, TAB, TAD, etc.),
You will need as many ZEDS (Ed Shortt’s special item category groups like ZED1 = TAN, ZED2 = TAS, ZED3 = TAB, etc.) item category groups available to map each one to the corresponding and correct material to perform the correct item category determination
The person/goup doing the material setup, should know how we should procure (internally or externally, drop-ship or back-to-back, MTO vs. MTS, etc.) to enter the correct value during material master creation/extension in the cases of Restricted materials
All Standard SAP configuration .... no need for enhancement at all ....!!!!!!!!   🙂

Hope that Helps,
Ed. Shortt

Former Member
0 Kudos

There may not be any standard SAP configuration or procedure which would allow you to restrict sale of material to one particular customer. You may be able to extend this material only to the relevant sales are in which customer belongs then control order entry via a user exit if any other customer orders that products in that same sales area. Also you can think of using one of the attributes in the customer master and material master which can be verified in the user exit.

Former Member
0 Kudos

Hi Denise,

your requirement seems to be an ideal example for using material listing functionality... And you just wnat to maintain one material / customer - what you need is just to maintain one record in listing. I dont think thats complicated.

Either you use standard SAP or develop a custom functionality. It makes more sense to me to use standard. Otherwise there can be different custom functionalities you can design and meet your reuqirement. You can add code to MV45AFZZ(appropriate user exit) include to trigger and see that the material picked in the sales order matches to the one you need for that customer speicified.

It can be like - define a specific customer group / material group to uniquely identify your required customer and material(s) which can be sold. maintain this code probably in userexit_save_document to see if this combination is allowed.

Just an other way to meet your requirement. However I'd prefer standard SAP unless my requirement can't be met.

Regards

sadhu kishore

Former Member
0 Kudos

Hi,

For this requirment ,you have to mentain the customer specific stock as special stock.when some body will try to delivered that

material ,it will give an error messege.I hopeit will solve your problem,if not please revort.

Thanks

Utpal Mishra

andrea_brusarestelletti
Active Contributor
0 Kudos

Hello,

I fear that if there's a standard way to manage this kind of requirement, such as "Material listing and exclusion", any other possible way would be much more time-consuming.

For instance you could create (and maintain) a custom table to link each customer to its own material, and then check that the user puts the correct material code in the sales order trough a user exit like USEREXIT_SAVE_DOCUMENT_PREPARE or something like that. You could also use Customer material inforecord with (transaction VD51 ) to store this information, instead of a custom table.

In my opinion if the problem is the maintenance of the records, you should use anyway "Material listing and exclusion" and then focus your attention on a program to update massively the master records for material listing and exclusion.

Hope to be useful.

Best regards,

Andrea