Skip to Content
Author's profile photo Maciej Jarecki

IS-Retail: Merchandise Distribution – Cross-Docking

In this article I would like to focus on the topic of merchandise distribution in IS-Retail. Due to the topic is so huge that at least few books could be written about it, so let me focus on real life example with emphasis on Cross- Docking approach.

Definition: Merchandise distribution is a flow of goods from Vendor to final recipients (Customer or store) if they are known at the moment of ordering goods. This topic is only valid if goods flow via distribution center and aren’t ordered directly to Customer or send from available stock of distribution center.


As the definition says flow of goods need to be from Vendor to already known recipients during ordering. In Retail there are two models available to handle this situation: Push model – Allocation table is created, Pull model – sales order or stock transfer orders (from DC to stores) already exist. Planning for merchandise distribution is done centrally, either using an allocation table or a collective purchase order.

For push model allocation table supports it. The procurement documents purchase orders and then issue documents – stock transfer orders or sales orders, are then generated as follow-on documents for the allocation table. Additionally distribution data is updated in the system when follow-on documents are generated. This data is then used to control the merchandise flow in the distribution center after goods receipt.

For pull model issue documents stock transfer orders or sales orders for the recipients exist already. Collective purchase orders are created as procurement documents (with delivery to DC) in which the issue document quantities for each article and DC are added together. Distribution data is also updated in the system when collective purchase orders are generated.


Processing of merchandise distribution takes place in the DC. As mentioned before, during generation of follow-on documents distribution data is created in the system (configuration in the item category of allocation). This data forms the link between procurement documents and issue documents. The processing of merchandise distribution takes place in the distribution center. The distribution data is adjusted to match the quantities actually available at goods receipt. The merchandise is then distributed to recipients or put away using different processing methods.

Next step is to distribute received goods at DC to final recipients. In SAP few predefined processing methods are available.

  • Cross-Docking: Goods are ordered and delivered from Vendor in a logistics units that are not repacked between goods receipt and goods issue.
  • Flow Through: After goods receipt, the goods are transported to a repacking zone where they are repacked. They are then transported to goods issue. There are two flow-through variants:
    • Recipient-driven flow-through and
    • Merchandise-driven flow-through
  • Putaway: The goods are posted to a putaway storage location and stay in warehouse for future deliveries.

Supplementary to Cross-Docking processing method some variants exist to optimize procurement. In this case larger quantity is ordered like pallet but recipient will receive only smaller quantity that is packed into larger logistic unit.

  • Cross-docking-flow-through: large logistic unit is received and if a recipient is to receive a smaller quantity of goods than is contained in one logistic unit, the large unit is split into smaller units.
  • Cross-docking-putaway: same as above with only difference that smaller logistic units (created after split) are put away and removed from stock again for delivery to the recipient.


As stated at the beginning of this article, here I focus only on the Cross-Docking processing method.

As a pre-requirement to use Cross-Docking processing method in DC, special type of Additionals is required to be assigned to material and following customization which differ from push and pull method.

  • Push model: Customization under MM. Activate Single store Purchase Order. In seasonal procurement, this process permits you to create single-store purchase orders when cross-docking procedures with pre-packaging are used for the purchase order and the vendor in question supports collective numbering.

  • Push model: In Vendor master data (Control tab) allowance for collective numbering. This part is used mainly for seasonal procurement.

  • Push and Pull models: Additional data including SLS for prepacking method in Article. Configuration is done in Logistics – General: Additionals. Standard procedure 0005 – SLS: Pre-packing can be used.

  • Push and Pull models: Create an article for Additional (in standard article type VKHM) (in my case it’s 936 article number) and assign it to article for which you want to do a Cross-Docking procedure (in my case articles 969 and 970) with created before additional procedure (in standard 0005).

Merchandise Distribution customization (SPRO -> Logistics – General -> Merchandise Distribution)

  • Site profile for Merchandise Distribution. This configuration is very important from the processing point of view. Here we indicate when distribution data is adjusted (received quantity from Vendor) and when outbound deliveries are generated for follow up documents (Stock transfer order or Sales order). Profile is assigned to site and settings can differ for each business process (push, pull, return).

In my case I do quantity adjustment at the GR and also immediately generate outbound deliveries.

  • Distribution profile for Article. Assigned to article, indicates what kind of processing method is used for it and which adjustment profile is used. Indicates collective PO is optional as system will take article for collective PO even if checkbox is unmarked. In push model even if processing method could come from Allocation item category, assigned profile to material need to have one of the Cross-docking processing method assigned to it.

  • Adjustment Profiles per Processing Method. In my opinion one of the most important parameter that says how over and under delivered quantities are distributed. Configuration is done per Adj profile (assigned to the distribution profile of article), business method (push, pull etc) and processing method (in our case 2 – Cross-docking and 5 – Cross-docking/putaway)

Most of configuration consists of function modules that are executed in particular cases like over and under deliveries. Within them there is an option to influence planned quantities and further distribution.  Additionally system can check if special situation has occurred and then react accordingly. This involve situation when f.ex under delivery of expensive goods to not distribute to small store or in small places. Similarly handling of over/under delivery of prepack. After taking into account changes of distribution data coming from processing of function modules, system finally distribute quantity according to Remainder det. field.

  • Storage location determination.This function is part of Logistics execution but rather not so often used, while picking area is determined based on storage condition and not by situation. In IS-Retail new situation were delivered and storage location determination besides picking activity but also for putaway (during GR) is determined based on predefined situations.

PUSH Process.

To use push process as described before Allocation table needs to be used. Not going into more detail about this topic the only two things to remember are to activate creation of distribution data at item category:

And to check which processing method is used in DC, either explicitly based on item category or coming from article profile assigned to the article.

In created Allocation table following articles have been ordered:

  • 969 5 EA – Distribution to stores 400055 (2 EA) 400062 (3 EA)
  • 970 7 EA – Distribution to stores 400055 (2 EA) 400062 (5 EA)

For both articles “Single-Recip. Orders” was checked.

Generation of purchase order, follow-up elements and distribution data between them. The Allocation table function only supports prepacked cross-docking with Supplementary Logistics Services in seasonal procurement; here, single-recipient vendor orders can be generated, in other words, one vendor order is created for each recipient. The allocation table does not generate a vendor order with several subitems.

Two sessional purchase orders were created. Each for same Vendor but the split is done on article (each logistic unit market as subitem) level per target recipient. PO can be displayed from standard tcode for PO ME23N or seasonal PO processing WPOHF4D.

Next step is to do the GR in DC. According to customization if there is overdelivery, system should adjust quantity automatically during GR and also immediately generate outbound deliveries for STOs created as follow-on from allocation tables (DC to recipients)

MIGO looks quite like GR for subcontracting process where components are listed. Quantity for first line according to PO should be 2 EA but was manually changed to 3 EA to simulate overdelivery.

After GR all quantities and the distribution data are visible in Merchandise Distribution. As per configuration of site profile quantity was distributed and outbound deliveries were created during GR posting.

PO 4500000917:

PULL Process

The second type of merchandise distribution starts with already created what we call in push process follow-on documents (Sales orders, STO from DC to recipients).

Three STOs from DC already exists:

  • For store ZSK4: articles 969 3 EA, 970 5 EA – STO 4500000919
  • For store ZSK5: articles 969 4 EA, 970 2 EA – STO 4500000920
  • For store ZSK3: articles 969 6 EA, 970 6 EA – STO 4500000921

With TCode WF10 you create Collective Purchase Order.

The processing method (2 – Cross-Docking comes from article profile assigned to article)

System generates one Purchase order to the Vendor with multiple subitems that indicate how goods should be packed to move them later in DC processing directly to request STOs.

In MIGO, we can adjust delivered quantities but in this case the assignment of delivery quantity is to exactly particular receiver.

Generic Articles

Processing of generic articles is no different than single articles. With push model, in case of Cross-Docking processing starts from allocation table, single PO is created per receiver that indicate how goods should be packed. During goods receipt quantities are adjusted and outbound deliveries are created for previously generated follow-on STOs. Pull model generate one single PO for all already existing Sales order or STOs. In those documents generic articles based on entered characteristics are replaced by variant article number.

Last but not the least.

At the end it’s worth to show combined function of remainder split and storage location determination. Let’s change:

  • Adjustment profile used in above example to 5 – Put away remainder.
  • Processing method for material to 5 –Cross-Docking/Putaway.

After creation of Allocation table for material 969 with total quantity 3 EA (ZSK4 – 1 EA, ZSK5 – 2 EA) at DC system determined storage location CD1 (for Cross-docking). Now during MIGO processing, new line has been created for putaway overdelivery quantity, where storage location PA1 – Putaway was determined.

Tables: FRET distribution data assignment.


Assigned Tags

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

      Hello, Maciej Jarecki.

      I have a cuestion, when i use Tx WF10 the Purchase Order has one line for material and several sub-lines for distribution (SLS). But in Tx WA08 one line for material and one for store, the same material in other line and his sub-line whit other store. how to do than Tx wa08 generet PO whith the same rule than WF10. Attache the imagen. (In customizing i check  "Process Control Table for Grouping" but i can´t made it)

      Thank fou tou atention.



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

      Hi Francisco ,

      In case of using WA08 system creates one PO per recipient. In allocation table, go to Distribution center -> Details -> Dates  then scroll to far right and you will see collective PO number. If you view it transaction for seasonal PO is opened where you can see all created POs.

      It's not possible to create same PO as with use of WF10.

      Best regards,


      Author's profile photo Cesar Moreno
      Cesar Moreno

      Hi Francisco Morales


      I´m using txt WA08 to the following documents but I create one  PO  by store. I´m reviewing your PO 4500749020 and you created one PO for several documents. How did you do? What is the necessary configuration to avoid this split?



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

      Hi Cesar

      I use pull model, which means that STOs, Sales Orders for replenishments to the stores already exist in the system and in this case collective PO is created. To achieve this you need to set configuration of SLS prepacking plus in the Vendor master data you must set Cross-Docking: Relevant for collective numbering checkbox.

      Hope it helps



      Author's profile photo Star IT
      Star IT

      Hello Everyone,

      I am trying to use the Colletive Purchase Order, but a found the follow gap in my proccess.


      When I execute WF10 to create Colletive PO, the system create the Purchase Order with price from InfoRecord.

      Is it possible to create the Colletive PO with referente an Contract (WK Type)???


      Thanks a lot,


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

      Hi Peter,

      Processing logic is a bit diffrent so making call off order can we tricky. If you want only a price this shouldn't be a problem.



      Author's profile photo Star IT
      Star IT

      Hi Maciej,


      Thanks for your repley


      Here we created an Z logic in BAPI PO Create to inform the correspondent contract.


      Best Regards,



      Author's profile photo Hans Wagner
      Hans Wagner

      Hi Maciej,

      Thanks for the great article.

      We are currently trying to use Merchandise Distribution in Pull scenario with ERP and EWM. These steps are already working:

      1, Stores creates STO to DC

      2. DC creates collective purchase order via WF10

      Now we want to create the outbound delivery automatically when the inbound delivery is created.

      I have adjusted in plant profile "point of delivery generation" from "1 GR" to "3 Manual (using separate transaction) via customizing. But unfortunately the outbound deleivery is not created when I create the inbound delievery via VL31N.


      Do you have any hints?

      Thanks in advance & best regards