Picking Configuration

Picking can be configured to your needs

Setting the Picking Configuration

Configuration of the picking methods can be accomplished by the following call:

curl -sSL -X PATCH 'https://your.api.fulfillmenttools.com/api/configurations/picking' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "version": 42,
    "scanCodeValidationConfiguration": {
        "pickingScanCodeValidationType": "CODE_MUST_BE_KNOWN"
    "takeOverPickJobConfiguration": {
        "active": false
    "loadUnitAssignmentConfiguration": {
        "pickJob": "AT_END",
        "pickRun": "AT_START"
    "pickingMethodsConfiguration": {
        "defaultPickingMethod": "BATCH_PICKING"
    "pickingShortPickConfiguration": {
        "confirmationOnShortPick": true
    "scanningConfiguration": {
        "scanningType": "SCAN_NOT_REQUIRED",
        "scanningRule": {
            "values": [
                    "scanningRuleType": "ARTICLE",
                    "priority": 0
        "rolesWithOverwritingScanningPermission": [
    "restartPickJobConfiguration": {
        "active": true
    "backofficePickingConfiguration": {
        "active": false

This configuration effects the whole system regardless of the user role or the facility.

Some of the values above are worth explanation. Please see the following paragraphs for more information.

Scan Code Validation (scanCodeValidationConfiguration)

The picking scan code validation configuration determines whether the pick of an item is possible only by scanning a barcode (valid barcodes must be supplied in the field scannableCodes in the pickLineItem of a pickjob) or whether it should be allowed to also scan other barcodes that are not known. The latter might speed up the process, but also theoretically allows for process errors.

Available options includeCODE_MUST_BE_KNOWN or NO_VALIDATION. All the possible options are documented here.

  • CODE_MUST_BE_KNOWN: Only the scan of a code that exists inside the scannableCodes array of the pick line item increases the pick count

  • NO_VALIDATION: The scan of any barcode will increase the count of the currently in the app selected pick line item

Setting this config to CODE_MUST_BE_KNOWN and having a pick line item without any code inside its scannableCodes array will result in not being able to increase the count of the item via barcode.

Scanning Configuration (scanningConfiguration)

The scanning configuration defines scanningRule, scanningType and rolesWithOverWritingScanningPermission.

Scanning Rule (scanningRule)

The values array inside this field determines whether the pick line item, its storage location or both must be scanned. Also it states the order of the scans: Storage location first or item first in order to increase the pick count of the item. Each object inside the values array has two fields: scanningRuleType and priority. The scanningRuleType can be set to ARTICLE (pick line item) or LOCATION (storage location of the pick line item). priority (32-bit signed integer) determines which item (pick line item or storage location) has to be scanned first where 0 is the highest priority. \

Example: Setting the Scanning Rule to the following values will result in having to scan the storage location of the corresponding item and then the item in order to increase its pick count.

"scanningRule": {
  "values": [
      "priority": 400,
      "scanningRuleType": "ARTICLE"
      "priority": 200,
      "scanningRuleType": "LOCATION"

Please note that if both item and storage location have to be scanned, the location has to be scanned only once per item independently from the priority.

Scanning Type (scanningType)

This field can be set to one of the following values: MUST_SCAN_EACH, MUST_SCAN_FIRST, SCAN_NOT_REQUIRED.

  • MUST_SCAN_EACH: To increase the pick count of an item, the scan order determined in scanningRule must be followed (except for the case, when ARTICLE as well as LOCATION are inside the values array of scanningRule, in this the storage location of the item has to be scanned only once) in order to increase the pick count.

  • MUST_SCAN_FIRST: To increase the pick count of an item, the scan order determined in scanningRule must be followed only once. This "unlocks" the pick line and further items can be added without undergoing a scanning procedure - the count can be increased manually.

  • SCAN_NOT_REQUIRED: Increasing the pick count of an item can either be done by following the scan order determined in scanningRule or manually.

  • rolesWithOverwritingScanningPermission: This array contains the roles of users to whom the scanningRule and scanningType does not apply or in other words, they will be able to increase pick counts without adhering to the set rules. It can be filled with the following values: ADMINISTRATOR, SUPERVISOR or FULFILLER.

Overwriting the default behavior by, let's say, granting a SUPERVISOR the right to not adhere to scanning rules will increase process insecurity. Hence this feature should be used only for good reason.

Take Over Pick Job Configuration (takeOverPickJobConfiguration)

This boolean enables or disables the possibility of taking over tasks of other users.

When active can is set to true it is possible for a user to take over tasks of another user. When set to false this is not possible.

Each task has a user field which is set by the last user that has "touched" the task. By "touched" is meant the increase of the object version (this happens, for example, when entering, leaving or finishing a task). The user is determined by the login credentials.

Load Unit Assignment (loadUnitAssignmentConfiguration)

The selection of load units in the picking process can be set to before or after the actual picking or set to be disabled separately for each picking method like single pick (pickJob) or multi/batch pick (pickRun).

  • AT_START: The load unit assignment screen will be shown before the actual picking.

  • AT_END: The load unit assignment screen will be shown after the actual picking.

  • INACTIVE: The load unit assignment screen will not be shown at all.

  • DURING_PICKING: Currently not supported in our clients. This status will be handled the same as INACTIVE

Picking Methods Configuration (pickingMethodsConfiguration)

This sets the default picking method tenant-wide. The field defaultPickingMethod of this object can be: SINGLE_ORDER, MULTI_ORDER or BATCH.

The default picking method determines the preferredPickingMethod of a single task, when there are no other settings (tags or facility-wide preferredPickingMethod).

Short Pick Configuration (pickingShortPickConfiguration)

The boolean confirmationOnShortPick inside this object determines whether the stock level of an item should be set to 0 at the shown storage location in case of a short pick.


Example Consider a pickjob with a pickLineItem for 10 apples. Apples can be found at 3 potential storage locations (Location A has 7 Apples, location B has 5 apples and location C has 6 apples). The picker arrives at Location A and finds - unexpectedly - no apples at all. In the app the next storage location will be requested (Location B) and the picker completes the task by picking the 5 apples from B and 5 apples from C.

Once the pickjob is being finished the flag confirmationOnShortPickdecides whether the assumed stock of A (which was 10, but in fact there were no apples there at all) is being corrected to 0 due to the result of said pickjob.

Restart Pick Job Configuration (restartPickJobConfiguration)

The boolean active determines whether restarting a task in the backoffice should be possible or forbidden.

Backoffice PickingConfiguration (backofficePickingConfiguration)

Setting the field active inside this object to true allows picking in the backoffice in addition to our clients.

Last updated