Distribution groups

A distribution group is a network of fulfillment centers (or nodes), which can contain one or more distribution centers and stores. A distribution group is created primarily based on geographical location.

As a seller, you can create and manage distribution groups, each of which can contain more than one node for order fulfillment. For the Promising service, you can use these distribution groups to restrict the list of nodes that are considered by the Calculate item delivery date and Calculate shipment assignments Scenario: Troubleshooting promising calculations APIs, version 2, during promising calculations.

For aggregate considerations across nodes, you must create a distribution group for each of the following purposes:
Inventory
This is required if you are using features such as availability and safety stock rules in the Inventory service.
Sourcing
If the distribution group is required for promising rules, estimated delivery date (EDD), and checkout assignment, you must assign the sourcing purpose to it.
Procurement
If you are considering node transfers to fulfill orders, you must create this distribution group to access transfer rules.
Note: A distribution group is identified uniquely by name and purpose. If you configure a DG1 (node1, node2) with purpose SOURCING but you also need to track inventory for the same nodes, then you must create a new DG2 (node1, node2) with an INVENTORY purpose. Also, you can't modify the purpose of a distribution group. As a result, you must delete the distribution group and re-create it with the correct purpose.

For more information, see Creating distribution groups and the Manage DG API.

You do not always need to create distribution groups due to the proximity of shipping locations. You can create distribution groups to differentiate between your own nodes and external suppliers.

For example, the following figure depicts multiple distribution node groups such as East Coast and Central.

The image displays an example of distribution groups.

Configuring node priority in distribution group definition

The Distribution Group API (PUT configuration/distributionGroups/{distributionGroupId}) takes in the priority for the nodes. Set the priority for the nodes of the distribution group by using the Distribution Group PUT API.
In this example, distribution group DG1 node priority is set with Node2 as priority 1, Node1 as priority 2, Node3 as priority 3, and Node4 as priority 4.
{ "shipNodes":[
  { "shipNode" : "node2", "priority" : 1},
  { "shipNode" : "node1", "priority" : 2},
  { "shipNode" : "node3", "priority" : 3},
  { "shipNode" : "node4", "priority" : 4}
  ]
}

Examples for node priority

Example 1: Network reservation considering node priority
The node priority with the quantity in the respective nodes are assigned as follows:
Node Quantity Priority
Node1 5 qty Priority 1
Node2 10 qty Priority 2
Node3 2 qty Priority 3
The total availability at DG1 is 5+10+2= 17.
Suppose that a reservation is made against DG1 for 5 qty. The system books the inventory against Node3 of 2 qty and Node2 of 3 qty according to the distribution group priority definition.
For more information on the v2 Reservation POST API, see Reservation by date.
Example 2: Effect of node priority reservation on other distribution groups sharing the same node
When a network reservation has successfully created against a network, the requested quantity is withheld at one of the priority nodes. If there are distribution groups that are sharing the same node, then their availability is also impacted. For
example, DG1 has the following nodes with Distribution Group configuration and respective node availability.
Table 1. Node Availability for Item1
Node Quantity Priority
Node1 200 2
Node2 0 1
Node3 10 3
Node4 50 4
If Item1 has reservation of two quantities against DG1 Item on 28 January 2021, then the reservation is booked against Node1 for two quantities since Node2 does not have any availability even though it has node priority of 1.
{
  "availabilityType": "SELL",
  "lines": [
    {
      "deliveryMethod": "SHP",
      "distributionGroup": "dg1",
      "lineId": "1",
      "quantity": 2,
      "totalReservedQuantity": 2,
      "reservations": [
        {
          "expirationTs": "2021-01-28T00:15:00Z ",
          "id": "5040f3e2-2af0-4f50-bcc4-d515b410b25b",
          "shipNode": "node1",
          "quantity": 2
        }
      ]
    }
  ]
}
Important: If multiple nodes have the same priority, the tiebreaker is based on the node with the most inventory.
Example 3: Node priority reservation above single node available quantity
Using the same setup of DG1, suppose that there is 202 quantity request for the reservation on DG1. Then, more than one node is picked for reservation since Node1 only has 200 qty available. The system then books the remaining two quantities against Node3.
The resulting reservation payload is given as follows. The 200 qty is reserved at Node1 and 2 qty is reserved at Node3.
{
  "availabilityType": "SELL",
  "lines": [{
     "deliveryMethod": "SHP",
     "distributionGroup": "dg1",
     "lineId": "1",
     "quantity": 202,
     "totalReservedQuantity": 202,
     "reservations": [{
         "expirationTs": "2021-01-28T00:20:00Z ",
         "id": "ad8af5d4-0d14-4eaa-a5d4-210cb8677176",
         "shipNode": "node1",
         "quantity": 200
     },
     {
         "expirationTs": "2021-01-28T00:20:00Z ",
         "id": "0cb34fe8-f313-41eb-9117-c77b61745c59",
         "shipNode": "node3",
         "quantity": 2
     }
    ]
   }
 ]
}