fulfillmenttools
API documentationIncident ManagementFeedback
Developer Docs
Developer Docs
  • Developer docs
  • Getting Started
    • Quickstart
    • Integration tutorial
      • Adding facilities
      • Adding listings to facilities
      • Configuring stocks
      • Carrier configuration
      • Placing orders
      • Checkout options
      • Distributed Order Management System (Routing)
      • Local fulfillment configuration
    • Free trial
  • Technical Basics
    • Access to fulfillmenttools
    • Feature status
    • Available regions
    • Backup policies
  • Connecting to fulfillmenttools
    • Client SDKs
    • commercetools connect
    • OpenID connect
      • Configure Microsoft Entra ID / Azure Active Directory
      • Configure Keycloak
  • API
    • Core concepts
      • Authentication & authorization
      • API Versioning & lifecycle
      • Assign user to jobs
      • Localization
      • Resource timestamps
      • Custom attributes
      • Article attributes
      • Recordable attributes
      • Data update guarantees
      • Rate limits & scaling
      • Retries
      • Performance on test vs. production systems
      • Load testing
    • API calls
      • Postman
      • cURL
      • GraphQL Explorer
    • GraphQL API
    • RESTful API
      • Pagination interface
      • RapiDoc
      • OpenAPI 3.0 Spec
    • Eventing
      • Structure of an event
      • Available events
        • Event flows
      • Eventing example
      • Event export
  • Integration Guides
    • Basics
      • Article categories
      • Audits
      • Facilities
      • Facility groups
      • GDPR configuration
      • Listings
      • Remote configuration
      • Receipts
      • Search
      • Subscribe to events
      • Sticker
      • Stocks
      • Storage locations
      • Tags
      • Users
    • Channel inventory
    • Inbound process
    • Outbound stocks
    • Purchase order
    • Receipt
    • Routing strategy (context-based multi-config DOMS)
    • Show sticker to clients
    • Stow jobs
  • More Integration Guides
    • Carrier management
      • Introduction to carrier configuration
      • Required data when operating carriers
      • Adding & connecting carriers to facilities
      • Custom carrier
    • Configurations for order fulfillment
      • Picking configuration
      • Packing configuration
      • Handover configuration
      • Printing and document configuration
      • Packing container types
      • Parcel tag configuration
      • Headless order fulfillment
      • Short-pick reasons
      • External documents in order fulfillment
      • Service jobs
      • Load units
      • Running sequence
    • DOMS - distributed order management system (routing)
    • External actions
    • Interfacility transfer
    • Notifications
    • Orders
      • Place your first order
      • Ship-from-store orders
      • Click-and-collect orders
      • Locked orders
      • Order with custom services
      • Bundled items in an order
      • Order process status
    • Availability & promising
    • Returns
Powered by GitBook
On this page
  • Setting the Picking Configuration
  • Picking methods
  • Scan Code Validation (scanCodeValidationConfiguration)
  • Scanning Configuration (scanningConfiguration)
  • Take Over Pick Job Configuration (takeOverPickJobConfiguration)
  • Load Unit Assignment (loadUnitAssignmentConfiguration)
  • Picking Methods Configuration (pickingMethodsConfiguration)
  • Short Pick Configuration (pickingShortPickConfiguration)
  • Restart Pick Job Configuration (restartPickJobConfiguration)
  • Backoffice PickingConfiguration (backofficePickingConfiguration)
Edit on GitHub
  1. More Integration Guides
  2. Configurations for order fulfillment

Picking configuration

Setting the Picking Configuration

Configuration of the picking methods
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": [
            "ADMINISTRATOR",
            "SUPERVISOR"
        ]
    },
    "restartPickJobConfiguration": {
        "active": true
    },
    "backofficePickingConfiguration": {
        "active": false
    }
}'

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

Picking methods

Our platform currently allows the following picking methods:

  • Single Order Picking

  • (Multi Order) Batch Picking

  • Multi Order Picking (WIP, currently API only)

There are three different options to set the used picking methods:

  • On tenant:

    • pickingMethodsConfiguration in /api/configurations/picking

    • Options are: SINGLE_ORDER or MULTI_ORDER or BATCH

  • At Facility:

    • pickingMethods in /api/facilities

    • Options are: SINGLE_ORDER or MULTI_ORDER or BATCH

  • At individual picking task:

    • preferredPickingMethods in picking task

    • Options are: SINGLE_ORDER or MULTI_ORDER or BATCH

  • Default is tenant config (only one possible), facility overwrites tenant, pickjob overwrites tenant and facility

  • When none of this is defined, the client will default to SINGLE_ORDER

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 pick job) or whether it should be allowed to also scan other barcodes that are not known.

  • 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.

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 5 months ago