Batching optimisation

Input

The goal of the batching optimisation is to divide the picks in groups that can be processed efficiently by the warehouse workers while ensuring that a subsequent picking optimisation can further minimise travel distances.

Batching request

A batching request is structured as a JSON object with two mandatory properties: the list of the picks and the maximum batch size.

Property

Type

Description

picks

array of Picks

The list of picks that should be divided in batches

batchSize

integer

The maximum size a batch can have

timeStampTolerance

float

Optional value that controls the size of the time interval of a batch. The bigger timeStampTolerance the bigger the interval.

maxOrders

integer

Optional value that sets the maximum number of orders that should be in a batch

minPicksPerArea

integer

Optional value that sets the minimum number of picks that should be in a batch that belong to the same area

A pick has the following properties

Property

Type

Description

name

string

Unique name identifying the item

area

string

Name of the area or the position of the pick.

time

integer (Unix time format)

This timestamp is used to minimise order waiting times. If omitted the request time will be used.

customer

string

If specified indicates the unique identifier of the customer order linked to this item.

Batching response

The response to a batching request returns the batches as a list of batches where, for each batch, it reports the timestamp around which the batch (so that a batch with a lower timestamp should be processed before one with an higher timestamp) was created and the list of pick names in the batch.

{ 
  "solution" : [
    {
      "timestamp" : 0,
      "picks" : [ "Pick 1", "pick 3", "Pick 4" ]
    },
    {
      "timestamp" : 0,
      "picks" : [ "Pick 2", "pick 5", "Pick 6" ]
    }
  ]
}

Example

curl --request POST --url https://onpick.solvice.io/batch/solve \
         -H "Authorization: <<apiKey>>" \
     --data '
{
     "picks": [
    {
      "name": "Pick 1",
            "area": "node-0",
      "customer": "order 1"
    },
    {
      "name": "Pick 2",
            "area": "node-0",
      "customer": "order 1"
    },
    {
      "name": "Pick 3",
      "area": "node-0",
      "customer": "order 2"
    },
    {
      "name": "Pick 4",
      "area": "node-1",
      "customer": "order 3"
    },
    {
      "name": "Pick 5",
      "area": "node-1",
      "customer": "order 0"
    },
    {
      "name": "Pick 6",
      "area": "node-1",
      "customer": "order 3"
    },
    {
      "name": "Pick 7",
      "area": "node-2",
      "customer": "order 3"
    },
    {
      "name": "Pick 8",
      "area": "node-2",
      "customer": "order 1"
    },
    {
      "name": "Pick 9",
      "area": "node-2",
      "customer": "order 1"
    },
    {
      "name": "Pick 10",
      "area": "node-3",
      "customer": "order 2"
    },
    {
      "name": "Pick 11",
      "area": "node-3",
      "customer": "order 3"
    },
    {
      "name": "Pick 12",
      "area": "node-3",
      "customer": "order 0"
    }
  ],
    "batchSize" : "6"
}
'
{
    "solution": [
        {
            "timestamp": 0,
            "picks": [
                "Pick 1",
                "Pick 2",
                "Pick 3",
                "Pick 8",
                "Pick 9",
                "Pick 10"
            ]
        },
        {
            "timestamp": 0,
            "picks": [
                "Pick 4",
                "Pick 5",
                "Pick 6",
                "Pick 7",
                "Pick 11",
                "Pick 12"
            ]
        }
    ]
}