# Configurations

Configurations in inventory management define storage principles and handling for special cases in stock and reservation management.

<table><thead><tr><th width="166.71614583333331">Configuration</th><th width="217.3046875">Path</th><th width="264.8984375">Description</th><th width="100.015625">Default</th></tr></thead><tbody><tr><td><a href="#unmixed-storage-configuration">Unmixed storage</a></td><td><a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/inventory">/api/configurations/inventory</a><br><br><a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/facilities/-facilityId-/configurations/inventory">/api/facilities/{facilityId}/configurations/inventory</a></td><td>Defines whether stock with different <a href="stock/stock-properties">properties</a> (for example, expiry dates) can be stored at the same location.</td><td><code>inactive</code></td></tr><tr><td><a href="#outbound-stock-configuration">Outbound stock</a></td><td><a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/facilities/-facilityId-/configurations/inventory">/api/facilities/{facilityId}/configurations/inventory</a></td><td>Defines if stock is booked to an outbound location after picking.</td><td><code>inactive</code></td></tr><tr><td><a href="#short-pick-configuration">Short-pick</a></td><td><a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/stock">/api/facilities/{facilityId}/configurations/stock</a></td><td>Sets stock to zero for storage locations where a <a href="../../store-operations/picking#short-pick">short-pick</a> occurred.</td><td><code>inactive</code></td></tr><tr><td><a href="#reserved-stock-configuration">Reserved stock</a></td><td><a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/stock">/api/configurations/stock</a></td><td>Defines the event after which reservations and stock should be removed.</td><td><code>inactive</code></td></tr><tr><td><a href="#expected-stock-configuration">Expected stock</a></td><td><a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/stock">/api/configurations/stock</a></td><td>Automatically creates expected stock from expected line items in routing plan.</td><td><code>inactive</code></td></tr><tr><td><a href="#inbound-process-configuration">Inbound process</a></td><td><a href="https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/stock">/api/configurations/stock</a></td><td>Automatically creates internal purchase orders in the receiving facility when goods are handed over during an interfacility transfer</td><td><code>active</code></td></tr></tbody></table>

## Unmixed storage configuration

Storage principles for stock properties (such as expiration date) can be defined for each facility. The principle of "unmixed storage" means that the same item with different properties (for example, expiry date) must not be stored at the same location.

Enabling unmixed storage has the following effects:

* If a user tries to stow the same items with different properties at the same storage location, a user prompt appears in the [Inventory app](https://docs.fulfillmenttools.com/documentation/apps/inventory-app).
* For [storage location recommendations](https://docs.fulfillmenttools.com/documentation/by-pillar/storage-locations-and-zones#storage-location-recommendations), only locations that meet the unmixed storage principle are shown.

The unmixed storage configuration should be disabled if stock properties aren't relevant while stowing or relocating items.

{% hint style="warning" %}
The configuration `isMixed` must be set to `false` to enable unmixed storage in the facility.
{% endhint %}

{% hint style="info" %}
The configuration can be activated on the network level with the [inventory configuration REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#patch-/api/configurations/inventory). The configuration can be activated at the facility level with the [inventory configuration facility REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#patch-/api/facilities/-facilityId-/configurations/inventory).
{% endhint %}

## Outbound stock configuration

Inventory levels can be tracked until items physically leave the facility and are handed over to another legal entity (for example, customer or shipping provider).

Outbound inventory refers to stock that has already been picked for an order and physically separated from other stock. It is placed at an outbound location until handed over to another party and finally leaves the warehouse. The outbound location, along with its items, is displayed in the [storage location overview](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/storage-locations-and-zones). Outbound storage locations can also be virtual locations that represent multiple outbound locations within the facility. &#x20;

Enabling the outbound stock configuration has the following effects:

* After a pick job is completed, the following actions take place:
  * Stocks are reduced at the original location&#x20;
  * New stock is created on the defined outbound location
  * The reservation is lifted from the original stock and placed on the newly created stock
* Stock at the outbound location is still included in the stock levels communicated via `FACILITY_STOCK_CHANGED` [events](https://docs.fulfillmenttools.com/documentation/getting-started/eventing/available-events) (although, not as [available](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/stock/stock-availability)). So, external systems still receive accurate stock levels for items physically present in the facility.
* After the stock leaves the facility, all related stocks and reservations are deleted.

{% hint style="info" %}
The configuration can be activated at the facility level using the [inventory configuration facility REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#patch-/api/facilities/-facilityId-/configurations/inventory).
{% endhint %}

## Short-pick configuration

A short-pick occurs when an order can't be completely picked. This can happen when some ordered items are too low in stock or out of stock. By enabling the config, stock for an item in a facility is set to the picked amount. If nothing could be picked, the stock is set to 0.&#x20;

**Example for the platform behavior:**

<table><thead><tr><th width="161">Short-pick setting</th><th width="138">Current stock</th><th>Ordered quantity</th><th>Picked quantity</th><th>New stock</th></tr></thead><tbody><tr><td>Active</td><td>10</td><td>5</td><td>3</td><td>0</td></tr><tr><td>Inactive</td><td>10</td><td>5</td><td>3</td><td>7</td></tr></tbody></table>

{% hint style="warning" %}
It's strongly advised to activate the `confirmationOnShortPick` in the [picking configuration](https://docs.fulfillmenttools.com/documentation/by-pillar/global-inventory-hub/broken-reference) at the same time. Otherwise, systems can't differentiate between cases where the user tried to pick an item but failed because there was no available stock, and cases where the pick job was rerouted before the user even tried to pick all ordered items.
{% endhint %}

{% hint style="info" %}
The configuration can be activated on the facility level with the [facility configuration stock REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#patch-/api/facilities/-facilityId-/configurations/stock).&#x20;
{% endhint %}

## **Reserved stock configuration**

The reserved stock configuration allows users to decide after which event reservations and their respective stock should be removed. This can be helpful, for example, if only handover jobs are used within fulfillmenttools. In the default behavior (if `clearStocksAndReservationsTrigger` is undefined), reservations and stocks are removed after the `PICK_JOB_CLOSED` event.&#x20;

It's recommended to define a configuration during the initial platform setup and to avoid changes afterward. Changing the configuration, such as switching the reservation removal event from `HANDOVERJOB` to `PICKJOB`, while orders are still in progress, may result in unresolved reservations. In such cases, the affected reservations must be removed using the [reservations REST APIs](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#post-/api/reservations/actions).

{% hint style="info" %}
The configuration can be activated on the network level with the [stock configuration REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/stock).
{% endhint %}

## Expected stock configuration

Expected stock can be generated automatically as part of advanced order routing. When a routing plan is created for a receiving facility, it includes expected line items for incoming goods. If the configuration parameter `expectedStock.generateFromRoutingPlan` is set to `true`, the system creates expected stock entries of type `ASAP` for these line items and reserves them immediately.&#x20;

When stock for the corresponding `tenantArticleId` increases at the facility, the system transfers the associated reservations from expected stock to available stock. Expected stock is adjusted if reservations are partially reallocated, and it's removed entirely when no reservations remain, provided that the configuration is active.

The configuration is managed at the network level via the [stock configuration REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/stock). It's `inactive` by default.

{% hint style="warning" %}
If no inbound processes are used, this configuration must be enabled in advanced order routing to avoid creating duplicate reservations.
{% endhint %}

## Inbound process configuration

By default, an internal purchase order is automatically created in the receiving facility when goods are handed over during an interfacility transfer. To disable this behavior, set `inboundProcess.generateFromInterfacilityTransfer` to `false`.

{% hint style="warning" %}
If `expectedStock.generateFromRoutingPlan` is set to `true`, you **must** set `inboundProcess.generateFromInterfacilityTransfer` to `false` to avoid duplicate expected stocks being created.
{% endhint %}

Deactivate this setting if your workflow doesn't use purchase orders.

The configuration is managed at the network level via the [stock configuration REST API](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/configurations/stock). It's `active` by default.

{% hint style="info" %}
For more information see [Interfacility Transfer](https://docs.fulfillmenttools.com/documentation/by-pillar/store-operations/interfacility-transfer).
{% endhint %}
