# Multi-order picking

Multi-order picking is a picking method where a picker simultaneously collects items for multiple tasks in a single run through, for example, the warehouse. This method increases efficiency by reducing the distance covered, as opposed to picking items for one task at a time.

## Use case example

A company has established the following requirements for its operational picking process:

1. Multi order picking is to be implemented exclusively for one designated facility, in this case a warehouse, while single order picking is to be utilized for all other facilities.
2. No more than five tasks may be picked simultaneously to ensure efficiency and manageability.
3. Picking operations are conducted using [load units](https://docs.fulfillmenttools.com/documentation/by-pillar/store-operations/packing/operative-container-types), with a total of five distinct load unit types available.
4. Upon completion of picking, the load units are transferred to a designated [packing](https://docs.fulfillmenttools.com/documentation/by-pillar/store-operations/packing) station. The packing process begins from this location.

## Configure multi order picking

### 1. Configure the picking method for a warehouse facility

Picking method `MULTI_ORDER` must be set in the designated facility with the [facility REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#patch-/api/facilities/-facilityId-), in this case the warehouse. The default `SINGLE_ORDER` applies in all other facilities, which is set in the [picking configuration](https://docs.fulfillmenttools.com/documentation/by-pillar/store-operations/picking/broken-reference).

### 2. Configure the maximum number of tasks for multi order pick

The [picking configurations REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#patch-/api/configurations/picking) must be set to the following:

```json
    "multiOrderPickingConfiguration": {
        "maxAmountOfPickJobsForMultiOrderPick": 5
    },
```

### 3. Create load unit types

`OperativeContainerTypes` must be created and defined in which fulfillment process step, so called `allowedOperativeTypes` are required. This happens with the [operative container type REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/operativecontainertypes).

### 4. Create storage locations

This is the [storage location](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/storage-locations-and-zones), where you store your load units at the end of the picking process. It can be created with the [storage location REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/facilities/-facilityId-/storagelocations).

***

## How to fulfill a task in multi order pick

When everything is configured, you are ready to fulfill your tasks with multi order picking.

1. Create a multi order pick run
2. Start the pick run
3. Add items to load units
4. Store load units on the configured storage location
5. Finish the pick run

### 1. Create a [multi order pick run with the REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/pickruns)

### 2. Start the [pick run with the REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/pickruns/-pickRunId-/actions)

### 3. Patch [load unit line items to load units with the REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#patch-/api/loadunits/-loadUnitId-)

### 4. Create and [store load units on the configured storage location with the REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/loadunits)

### 5. Finish the pick run

The pick run result can be finished by using the `PickrunFinishActionParameter` with the [actions REST API of the pick run](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/pickruns/-pickRunId-/actions). After all that, you have successfully picked multiple tasks with the multi order pick method.
