All sellable items in the facility are represented as stock, and stocks most importantly contain information on how many items are present. Stock is typically is linked to a listing (which describes the attributes of the items). Most of the attributes will be described via the listing, however, there might be stock-specific information, which differs from item to item, like best-before-dates.


Stock represents one or more items with the exact same attributes, e.g. items with the same best-before-date, lying on the same storage location, etc. Two stocks can be merged, if all the information on the respective stocks are identical, adding up their amounts. However, this is not a necessity, you may also split a stock into two. In other words: fulfillmentools will allow having two separate stocks with otherwise identical attributes.

Stock Properties

Attributes which are relevant for operational processes are handled via Stock Properties.

Stock Receipt Date

Stocks have the attribute receiptDate: This represents the moment, where a given stock enters its current facility. The information can be used for various purposes, e.g. to ensure that picking follows a first-in-first-out strategy.

When using our platform as WMS, it will ensure that the timestamp is set to the value when the stock is handled in the Inbound process and not changed afterwards.

When the stock is set via API, it is the responsibility of the integration layer to provide the correct data. If no receiptDate is provided, the platform defaults to the moment when the stock is created.

Stocks with amount 0

The fact that there is no stock left can be represented in two ways:

  1. Having no stock entitites

  2. Having a stock entity with amount 0

The latter indicates the intent to replenish the stock at this location/facility. So if a shelf is emptied, and you want to replenish the item at this location, set the stock amount to 0. If not, remove the stock entity altogether. If stock is emptied, fulfillmenttools will remove the stock entity by default. However, you can change the behaviour for a given storage location by adding the storage location trait KEEP_ON_ZERO.

Last updated