Skip to Content
Author's profile photo Maciej Jarecki

IS-Retail Assortment

If your SAP system is configured as IS-Retail and you see such a message in purchase order that is one of the reasons you must configure assortments.


An assortment determines if a store, a distribution center or a customer can receive certain articles at a certain period of time. The assortment can therefore be used to check purchase orders and sales orders (in standard ECC there is listing procedure that can be used for this purpose).

By assigning articles to assortments, you determine which assortments and, therefore, which articles a store can buy and sell which means a site cannot buy or sell articles that are not included in any of its assortments. Assortment is managed on user level, which could be site (distribution center, store) or Customer.

A good example of usage of assortment would be a company that has a store chain but with different sizes of shops. That means not same assortment is offered to Customers in supermarket compared to small shop in city center. Similarly shop with sport equipment will offer different range of assortment if store is located at seacoast compared to mountain area.

Assortment consists of assortment module or multiple modules. Articles are assigned to assortment module either automatically or manually depending on type of assortment module used. The outcome of this assignment is creation of time dependent listing conditions (if assortment is valid to create listing conditions).

There are two type of assortments: local and general.

Local Assortments:

For local assortment two types are defined. Type A for stores and type B for distribution centers. When user creates a site (in other words, a store or distribution center), the system automatically creates a local assortment and then assigns it to the site. This local assortment is site-specific and cannot be assigned to another site. Each site has one local assortment created directly and can only be maintained in limited way in Assortment Processing transaction.

General Assortments:

General assortments are type C assortments. They can be assigned to any number of Customers, and every Customer can be assigned several general assortments. If multiple assignments parameter has been set in Customizing, user can also use assortments of this type to assign stores and distribution centers.

Mentioned multiple assignment parameter is one of the most important configuration of assortment in SAP.

  • Parameter not set. This is a case of 1:1 assignment and every site has exactly one local assortment (automatically generated during creation of site) and no other assortment can be assigned to this site.
  • Parameter set. In the case of n:m assignment is activated and every site still has a local assortment, but there is no limit to the number of general assortments that can be assigned to this site.

Quite interesting situation could be when we have almost the same assortment offered in most of the shops. Without activation of multiple assignment parameter, article needs to be assigned to every local assignment of each site. This would rather cause lot of extra work. To avoid it there are two option but each of them require set of multiple assignment parameter to on. First option is to create general assortment as then assign it to respective sites (in case if particular article is not offered in the store exclusion assortment module may be assigned). Second option is to user reference site and it’s discussed later on.

Following assortment modules are delivered by SAP.

Automatic assignment of articles:

  • Profile module is created automatically during the article maintenance for each assortment and merchandise category.
  • Shelf modules is generated during the maintenance of layout modules that are assigned to the assortments.
  • Promotion module contains the articles that are to be dealt with together in a promotion or a theme.

Manual assignment of articles:

  • Standard module contains any articles from any merchandise categories. It contains the regular long-term rule assortment and is created manually.
  • Local module is only valid for one site and is therefore the „local assortment”
  • Exclusion module to exclude articles from the existing assortment for a certain period of time.
  • Rack jobber modules are modules for which vendors deliver and present articles in stores themselves. This is related to PRICAT and VMI processing.
  • Value contracts – you can also use these modules for assortment functions in Sales and Distribution in contracts processing.


Example of configuration:

For purpose of this article following merchandise categories have been created for single articles:

  • ZFC_000 – Merchandise category 1
    • Articles: 1131, 1132, 1133, 1134
  • ZFC_001 – Merchandise category 2
    • Articles: 1105, 1106, 1129, 1130
  • ZFC_002 – Merchandise category 3
    • Articles: 1135, 1136, 1137, 1138

To simplify the example following enterprise structure was introduced

  • Distribution Center ZFD1 (Distribution chain: ZSH1/P9, Customer: 400068) listing procedure K1
  • Shop ZFS1 ( Distribution chain: ZSH1/P8, Customer: 400067) listing procedure 02,
  • Shop ZFS2 (Distribution chain: ZSH1/P8, Customer: 400068) listing procedure K1,
  • Shop ZFS3 (Distribution chain: ZSH1/P8, Customer: 400069) listing procedure Z4.

Site master data configuration

In site master data besides listing procedure we find two more parameters:

Subsequent listing ind. only works with goods movements. This means that if article is not listed in particular shop and master data of it doesn’t exist system will create one day entries in tables like Marc, Mard etc, for this particular site. This is valid only for goods movements not Purchase order creation. Second parameter Listing Basic Rule override SD listing procedure in Sales Orders and deliveries processing. Both of parameters have user exits where default behaviour is programmed and is assigned in SPRO in default settings fro IS-Retail


Listing procedure

For the purpose of this article new listing procedure has been created as a copy of K1. The only change compared to K1 procedure is Assotm.ListPro checked. Beside of that standard procedures like 02 -List all, K1 – No listing, B1 – material grade/assormtn and B2 – classification are used.


In Listing procedure very important parameter is Assortm.ListPro. Using it we can steer the system which listing procedure to choose during processing of automatic listing. If for example listing procedure for assortment is 02 – All and in the article master data there is entered procedure K1 – Never.

  • Case 1: in K1 Assortm.Prio is X -> Material is assigned, because it will use listing procedure from assortment and there is assigned procedure 02 – All.
  • Case 2: in K1 Assortm.Prio is blank -> Material is not assigned because article listing procedure takes precedence over listing procedure from assortment.

Beside of it you can also select which listing procedure to be defaulted (can be changed in each of respective objects) in case of allocation, promotion or layout operations. In processing control you can select which checks are executed and how they are connected in logical operation AND or OR. Rules section clearly indicates which function module is executed. Following logic has been implemented:

  • Selecting parameter “Listing all” – function module in field Ext Listg.ALL is triggered. In standard assortment_version_list_all for list. proc 02 -All or assortment_version_list_never for list. proc K1 – Never
  • Sequence M – function module from Exit listg. man. (standard: assortment_version_M)
  • Sequence P – function module from Exit listg. man. (standard: assortment_version_P)
  • Sequence K – function module from Exit listg. man. (standard: assortment_version_K)
  • Sequence L – function module from Exit listg. man. (standard: assortment_version _L)

SAP delivers a number of listing procedures intended to simplify Customizing, which is otherwise rather complicated. The basic listing procedures are:

  • Merchandise category/assortment grade check – this listing procedure check if for assortment has merchandise category assigned with corresponds to article merch. categ. This is the simples check but as well the most commonly used. You can always split your merch category by grades. With combination to listing algorithm you can select which grades are included. Listing grade is assigned in assortment with merchandise category and in article master data on listing tab. Additionally in listing procedure definition you assign listing algorithm and if grade should be checked. Small hint is that even if in assortment you assigned category but in listing tab of article it remains blank standard module ASSORTMENT_VERSION_P will accept it.
  • Layout check – This procedure checks whether the article is assigned to a specific layout module and the layout module is assigned to a layout and subsequently to an assortment
  • Classification listing procedure require that class type 047 is assigned to assortment and characteristics values are entered. Additionally same class needs to be assigned to merchandise category either directly or via characteristic profile. Value of characteristics are maintained in article master data and listing can be executed. In standard function module: ASSORTMENT_VERSION_C, program will allow listing even if values are blank and if maintained value comparison with values assigned to assortment is executed.

Hint: If in assortment creation transaction or in site maintenance you will uncheck listing condition, assortment creation then during automatic listing processing assortment is found, assortment module is created but no articles are assigned. I would say that this option can be used more for simulation purpose.

New Assortment type for general assortment

At the moment for this assortment type no layout management is foreseen so all checkboxes are not market.

As said before local assortments are always created automatically when new site is launched. In above case there is a new type of assortment for general purpose and needs to be created manually with transaction WSOA1.


For general assortment selection of listing procedure is important and in case of procedure material.grp/ assortment (as in above example) valid merchandise category must be assigned to mdse cat. Tab.

Don’t forget that local assortments are always assigned only to the site for which they were generated. Additionally sales org and distribution channel of assortment is equal to one defined in corresponding site. For general assortment even if article is assigned to assortment and listing conditions were generated user always needs to be linked to assortment to be able to fully use it.


Manual listing

As described before, there are listing procedure which creates assortment modules and assigns to it articles out of different listing procedures automatically. You can create some modules manually like standard module, assign articles and them use them in assortments.

Module creation (Tcode: WSO1) and article assignment

And assignment module to assortment

Article master data

In article master data you set listing procedures per distribution chain (Sales Org and distribution channel). It is important to remember that it’s not site dependent. Whenever we run listing execution system will find all assortments with same distribution chain (required fields in assortment) and execute listing procedure (either set in article master data or in assortment, all depends on Assortm.Prio parameter set in listing procedure in article master data). In above example system will look for all general assortments where Sales org is ZSH1 and Dchl is P1. Due to listing procedure is set to Z4 where Assortm.ListPr is set to X, system will execute check with listing procedure of each found assortment.

Quite useful functionality in listing tab is to select checkbox local assortments also (these assortments with type A – DC or B – Store). Each site is assigned to distribution chain. Article listing view needs to be created for this distribution chain and listing procedures assigned. To determine listing procedure for local assignment system for article, system will find all assortments type A and B. Based on distribution chain from assortments system will read article listing view with mentioned dist. Chain and in case if dist chain is used for store listing procedure is read from store section and in case when distr. Chain is associated with assortment type DC then listing procedure from DC section is read. In this case my local assortments that need to be found is with S.Org ZSH1 and D.Chan P9 for DC and P8 for stores. Then system takes listing procedure for store:

And for DC (data for S.Org ZSH1 and D.Chan P9)

If you mark the checkbox by the ListSupplySite field, you can also list the supplying sites for all articles which can be procured via a warehouse/distribution center. Unfortunately to make this option working we need to have binding between merchandise group and site via assortment.

Reference site

In case if you have multiple sites with the same assortment there is always an option to create assortment for one of them – kind of template. Later on you only create a reference to it as presented below

In this case site ZFS1 can you all assortments of ZFS3. If ZFS3 offers to broad assortment despite of reference there is option to use exclusion module for ZFS1.


As you can see whole listing of articles is rather not easy topic that has a multiple of options and require number of configuration activities. For purpose I didn’t discussed layout management as this will be part of other article.

Assigned Tags

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

      Thanks for the details Very helpful


      Author's profile photo Project Team Project Team
      Project Team Project Team

      Hi Maciej,

      really clear, But I have 2 question:

      1. The listing per distribution chain what is used for ?
      2. The assortment grade is governed by the assortment grade in article master data and  the assortment grade in the TAB "MAT.GROUP" of the assortment in transaction WSOA2. If they match the article master is created ?



      Author's profile photo Maciej Jarecki
      Maciej Jarecki
      Blog Post Author

      Hi Josy,

      Assortments are created with Distribution channel. Sometimes if you want to use article only in limited channel it could be good practice to execute listing of article only per this distribution channel.

      For second question, if you use listing procedure with grades (in standard B1) when listing is executed system can compare grade from assortment with grade set in article. This check is set per listing procedure customizing.


      Best regards,


      Author's profile photo Project Team Project Team
      Project Team Project Team


      Hi Maciej,

      Thank you very much. Last question. You said:

      In Listing procedure very important parameter is Assortm.ListPro. Using it we can steer the system which listing procedure to choose during processing of automatic listing

      But which listing procedure is taken to check the parameter: Listing procedure in the store, Listing procedure in material master or in one specific assortment.

      Thanks in advance.


      Author's profile photo Maciej Jarecki
      Maciej Jarecki
      Blog Post Author

      Hi Josy,

      For store separate local assortment is created. I assume in your company you use general one. For listing procedure in article and assortment, if Assortm.ListPro is set for listing procedure used in assortment then listing procedure from assortment is used not the listing procedure entered in article in listing tab.

      Looking forward for more question 🙂



      Author's profile photo Project Team Project Team
      Project Team Project Team


      Hi Maciej,

      Thanks a lot. You are the best. Some other question:

      1. You said: Profile module is created automatically during the article maintenance for each assortment and merchandise category. But is this visible somewhere ?
      2. The assortment is filled manually with merchandise category and inserting the site. There is nothing automatically who fill the assortment, and the material in the store are created when the job is submitted and every time a change is made on the assortment.
      3. There a transaction to execute the listing on request ?
      4. The process control "P" in listing procedure means that the system uses only the listing procedure for listing process ?

      Thank you very much.


      Author's profile photo Deepak Tiwary
      Deepak Tiwary

      Thank you for these details. Really helpful. I have a query regarding extension of articles to sales org/distr channel.

      When we list articles using WSM3 with a listing procedure "02" for a local assortment, how does this process select sales org/distr channel for extension ( MVKE) :-

      Does it select the sales org/distr channel combination for extension from assortment config in WSOA3 or site config in WB03 ?

      Thank you very much.

      Author's profile photo Maciej Jarecki
      Maciej Jarecki
      Blog Post Author

      Hi Deepak,


      Sorry for my late answer. If you do a listing from article there is always selection of sales org and distribution channel. in this case system is able to select assortments where same combination exists.

      Best regards,


      Author's profile photo Mohanavel Mahalingam ISR
      Mohanavel Mahalingam ISR

      Hi Maciej,


      We are trying to do Assortment/Listing through BAPI WRF_MAPINB_ASSORT_LISTING_RFC, We providing Assortment as 207010 ( 2070) and article. But article getting extended to 2070 & 2060, We dont have any idea why it is getting extended to other 2060.

      Can you throw some light to solve this issue.



      Author's profile photo Chaabene jellali
      Chaabene jellali

      hello ,

      thanks for articles ,  could you please tell if all goods mvt  needs assortement ( wlk1 entry ) or some mvt require only MARD entry ?


      Author's profile photo Maciej Jarecki
      Maciej Jarecki
      Blog Post Author


      assortment is optional for goods mvt. In configuration you can set if assortment is checked during good receipt process and then system can generate temporary entry to marc/mard table.