fulfillmenttools
  • Welcome to the fulfillmenttools Platform Documentation
  • Getting Started
    • Setup your access to fulfillmenttools
    • Make your first API Calls
      • Add your first facility
      • Add your first listing
      • Place your first order
    • Core concepts & terminology
      • Order Flow
    • Postman Collection
    • Client SDKs
    • FAQ
  • Clients
    • Backoffice
      • First steps - Registration
      • Network view
        • Home
        • Orders
          • Unroutable orders
          • Pre-orders & Backorders
          • Order History
        • Inventory Management
          • Stock Overview
          • Channel Inventory
        • Facilities
        • Users
        • Returns
        • DOMS configuration
        • Settings
        • Analytics
          • DOMS Pages
          • Fulfillment Operations Pages
          • Inventory Pages
          • Downloads Page
      • Facility view
        • Home
        • Inbound
        • Tasks
        • Listings
        • Storage Locations
        • Facility
        • Users
    • Inventory app
      • Registration Inventory App
      • App sections
        • Inbound
        • Storage and relocation
    • Operations app
      • Android
        • Manual Registration
        • Android Enterprise Registration
        • Sections
          • Picking
            • Load Units (legacy)
            • Substitute items
            • Weighed or measured products
            • Scanning configuration
            • Picking Methods
              • Batch Picking
              • Multi Order Picking
          • Packing
          • Handover
          • Returns (legacy)
        • Printing
        • Notifications
      • Webapp
        • Packing
      • Overview features Android & Webapp
    • Technical requirements
      • Zebra Hardware Scanner Configuration
      • Honeywell Hardware Scanner Configuration
      • Supported barcodes for camera scanning
      • Requirements for fft applications
      • Zebra printer
    • Returns app
      • Handle unannounced returns
      • Handle announced returns
  • Products
    • Core Functionality
      • Process
        • External actions
      • Add and manage facilities
      • Notification Center
      • Checking on features
      • Tags and Stickers Concept
      • GDPR
      • Remote Configuration
      • Expiry
      • Target time
      • Time calculation for queries of future availabilities (LPS-calculation)
      • Interfacility Transfer
    • Carrier Management
      • Overview
        • Available Carriers
      • Concepts
        • Carrier Country Service Mapping (CCSM)
        • Non-delivery-days
        • Custom Carrier & Headless operation of Carriers
      • Providing needed data
    • Fulfillment Options
      • Fulfillability Check
      • Checkout Options
        • Available fulfillment options based on basket
        • Earliest possible delivery date
        • Available delivery dates within time-period
        • Availability for delivery date
      • Delivery Promise
    • Inventory Management
      • Configurations
      • Entities
        • Listing
        • Stock
          • Stock Properties
        • Storage Location
        • Zone
      • Global Inventory
        • Stock availability
        • Channel Inventory
        • Expected stock
        • Inbound Process
        • Reservations
        • Safety Stock
      • Inventory Control
        • Inventory Traits
        • Measurement Units
        • Outbound Inventory Tracking
        • Storage Location Recommendations
    • Order Fulfillment
      • Headless Order Fulfillment
      • Pick Jobs
      • Zone picking
      • Load Units
      • Custom Service
      • Handover Jobs
      • Add External Documents
      • Configurations
        • Picking Configuration
          • Picking methods
          • Short Pick Reasons
        • Packing Configuration
          • Packing Container Types
        • Print / Document Configuration
        • Tag Configurations
          • Parcel Tag Configuration
        • Handover Configuration
        • Operative Container Types
    • Order Routing
      • Entities
        • Ship-from-Store Orders
        • Click-and-Collect Orders
        • Locked Orders
        • Custom Services Orders
          • Simple Custom Service Order
          • Complex Custom Service Order
      • Fences
      • Ratings
      • Order Split
        • Order split - initial routing
        • Order split after shortpick
        • Item bundles
      • Reroute
      • Shape the routing with the DOMS Toolkit
      • Decision logs
    • Returns Management
      • Returns legacy
        • Available status
      • Returns 2.0
        • Return Reasons
        • Item Conditions
        • Integrating Returns with Events
    • Use Cases
      • Demand-Driven Replenishment
      • Expected stock in availability
      • Multi Order Picking
      • Interfacility transfer
      • Assigned Users
  • Connecting to fulfillmenttools
    • General Topics
      • Use external identity providers to authenticate to fulfillmenttools
        • Microsoft Entra ID / Azure Active Directory (AD)
      • Public Event Export
      • Available Regions
      • Backup Policies
    • GraphQL API
    • RESTful API
      • General Topics
        • API Release Life Cycle
        • Versioning
        • Authorization
        • Customization via Attributes
        • Update Guarantees
        • Rate Limits
        • Resource Timestamps
        • Pagination Interface
        • Localization
        • Custom Attributes
      • OpenAPI Specification
        • Swagger UI
        • OpenAPI 3.0 Spec
    • Eventing
      • Structure of an Event
      • Available Events
      • Tutorial
    • commercetools Connect
    • Integration Tutorial
      • Adding facilities
      • Adding listings to facilities
      • Configuring stocks
      • Carrier configuration
      • Placing orders
      • Checkout Options
      • Distributed Order Management System (Routing)
      • Local fulfillment configuration
  • Incident Reporting
    • How to report incidents in fulfillmenttools
    • How to define incident priorities
  • Release Notes
    • Release Summary – May 2024
    • Release Summary – June 2024
    • Release Summary – July 2024
    • Release Summary – August 2024
    • Release Summary – September 2024
    • Release Summary – October 2024
Powered by GitBook
On this page

Was this helpful?

  1. Products
  2. Inventory Management
  3. Entities

Listing

PreviousEntitiesNextStock

Last updated 5 months ago

Was this helpful?

This page is outdated. Please go to our new documentation under .

Summary

A listing is an item or a commodity that is sold in a given facility. It holds information on the product such as price, barcodes or attributes. A listing does not represent the actual stock, i.e. the (available) quantity of a product in a facility. All information specific to individual pieces of a product is kept in .

Listings & Stocks

While a listing holds master data for a product within a facility such as title, barcode, or price, a stock refers to one or more items in a facility with the same attributes. Stocks can exist without listings and the other way around. However, we advise to always create listings for stocks so that the various stocks are assigned to the corresponding product and product information can be displayed in the clients. Go for more information on stocks.

Mandatory Fields

  • tenantArticleId: identifier for the product in the respective facility

  • title: name of the product that is also displayed in clients (e.g. in our app)

Optional Fields

Attributes

Attributes can be used to store listing specific information such as product category or description. Moreover, they can be used to customize processes related to listings such as the picking sequence. For more information please refer to .

Price

The price at which the item is sold in this facility.

Currency

Weight

Weight of the product that is used to calculate the shipping weight for an order.

Scanning Rule

Scannable Codes

A list of barcodes that allows identifying items via barcode scan.

Out of Stock Behaviour

Availability Timeframe

If a listing is already flagged with outOfStockBehaviour = "BACKORDER" and has anavailabilityTimeFrameconfigured, then orders containing that listing are accepted but only assigned a specific facility when the date defined in the availabilityTimeFrame is reached.

Tags

Measurement Unit Key

Stock Properties

curl -sSL -X PUT 'https://your.api.fulfillmenttools.com/api/facilities/{facilitiyId}/listings' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <TOKEN>' \
--data-raw '{
    "tenantArticleId": "<your product ID>",
    "title": "<the listing title>",
    "stockProperties": {
        "<your property key>": {
            "inputType": "DATE",
            "required": true
            }
        }
    }

Stock Available Until

The availableUntil field defines until when a stock is included in the stock availability which is, e.g., used to communicate available stock to shop systems. For customer orders, the availability check ensures that stock has not exceeded its availableUntil value until is is delivered to the customer.

  • modifier:Time span which is applied to the calculation base to calculate time point when stock should become unavailable. Use negative values to move the date backwards. Example: "-P30D" places the "availableUntil" value 30 days before the calculated date.

curl -sSL -X PUT 'https://your.api.fulfillmenttools.com/api/facilities/{facilitiyId}/listings' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <TOKEN>' \
--data-raw '{
    "tenantArticleId": "<your product ID>",
    "title": "<the listing title>",
    "stockAvailableUntil": {
        "calculationBase": "EXPIRY",
        "modifier": "-P30D"
      }
  }
  • StockAvailableUntil defaults to the expiry date, i.e., if there is no stockAvailableUntil configured on the listing, the stockAvailableUntil of a stock will be its expiry date.

  • An undefined stockAvailableUntil on stocks (e.g. no stockAvailableUntil and no expiry is configured) means, the stock will be available for an unlimited period of time.

Legal

Under legal, users can specify a hsCode. "HS" stands for "Harmonized system" and is a description and coding system used by authorities to classify a product. In our platform, it is used, e.g., when requesting a carrier label for sending a package.

Custom Attributes

Status

Listings can be active or inactive. Deactivated listings are not considered for incoming orders.

API documentation

For multiple listings

For a specific listing

A listing can only have a specified price in a single currency. There can only exist one listing for the same tenantArticleId in the same facility and thus, only one currency per facility per tenantArticleId. Any currency that is part of the standard can be configured.

Configuration to show the client how the items should be scanned during picking. For more information please refer to .

Defines behaviour if customer places an order for a product that is currently out of stock or unavailable for immediate shipment. For more information please refer to .

Tags consist of a Tag-Reference plus allowed values for each Tag. They can be used to map very individual processes and to customize entities according to special needs. For more information please refer to .

The unit in which the product is counted or measured. By default, the counting unit is pieces. However, other units like gram or custom units can be defined. For more information please refer to .

Stock Properties allow tracking of specific values on a set of items, a . A common example for properties are expiry date or batch number. The listing defines which properties should be tracked for stocks that belong to this specific listing. Moreover, its is configurable in the listing, whether it is mandatory to track stock properties, e.g., during goods receipt and if the value is expected to be a text or date. For more information please refer to .

In the listing it can be specified until when the corresponding stock should be available. The availableUntil value is set upon stock creation if configured in listing. For more information please refer to .

calculation base:Set field to EXPIRY, if stock should become unavailable before it expires. EXPIRY needs to be configured in the before it can be used here. Set field to CREATION if stock should become unavailable some time after it was created.

Custom Attributes can be used to carry information that might be of interest to connectors or services outside of fulfillmenttools. However, they do not have any influence on the behaviour of the fulfillmenttools platform. For more information please refer to .

https://docs.fulfillmenttools.com/documentation
stocks
here
customization via attributes
ISO-4217
scanning configuration
Tags and Stickers Concept
Measurement Units
Stock
Stock Properties
Availability
Custom Attributes
stockProperties
How to make a listing Pre-/Backorderable

Get a facility with the given ID

get
Authorizations
Path parameters
facilityIdstringRequired

ID of facility you want to get listing

Query parameters
startAfterIdstringOptional

all entities after given Id

sizeintegerOptional

number of facilities to show

Default: 25
tenantArticleIdsstring[] · max: 500Optional

Array of tenantArticleIds

scannableCodestringOptional

limit results to this scannableCode

Responses
200
Facility was found & you were allowed to access it. The result is in the body.
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
Facility not found
application/json
get
GET / HTTP/1.1
Host: %%HOST%%
Accept: */*
{
  "listings": [
    {
      "created": "2020-02-03T08:45:51.525Z",
      "lastModified": "2020-02-03T09:45:51.525Z",
      "version": 42,
      "id": "fsfdsf87fsd",
      "status": "ACTIVE",
      "tenantArticleId": "4711"
    }
  ],
  "total": 42
}

deletes all listings of a facility with the given ID

delete
Authorizations
Path parameters
facilityIdstringRequired

ID of facility you want to delete all listings of

Responses
200
Facility listings were found and successfully deleted
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
Facility listing not found
application/json
delete
DELETE / HTTP/1.1
Host: %%HOST%%
Accept: */*

No content

Get a Listings with the given ID

get
Authorizations
Path parameters
facilityIdstringRequired

ID of facility you want to get listing

tenantArticleIdstringRequired

tenantArticleId of listing you want to get

Responses
200
Listing is found & you were allowed to access it. The result is in the body.
application/json
Responseall of
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
Listings not found
application/json
get
GET / HTTP/1.1
Host: %%HOST%%
Accept: */*
{
  "attributes": [
    {
      "category": "descriptive",
      "key": "%%subtitle%%",
      "priority": 100,
      "value": "585er Gold"
    }
  ],
  "imageUrl": "text",
  "price": 1200,
  "tenantArticleId": "4711",
  "title": "Adidas Superstar",
  "weight": 1,
  "scanningRule": {
    "values": []
  },
  "scannableCodes": [
    "text"
  ],
  "outOfStockBehaviour": "BACKORDER",
  "availabilityTimeframe": {
    "start": "2020-02-03T08:45:50.525Z"
  },
  "tags": [],
  "measurementUnitKey": "liter",
  "stockProperties": {
    "ANY_ADDITIONAL_PROPERTY": {
      "inputType": "DATE",
      "required": true,
      "defaultValue": "text"
    }
  },
  "legal": {
    "hsCode": "text"
  },
  "created": "2020-02-03T08:45:51.525Z",
  "lastModified": "2020-02-03T09:45:51.525Z",
  "version": 42,
  "facilityId": "4711",
  "id": "fsfdsf87fsd",
  "status": "ACTIVE"
}

deletes a listing with the given ID of a facility with the given ID

delete
Authorizations
Path parameters
facilityIdstringRequired

ID of facility you want to delete a listing of

tenantArticleIdstringRequired

tenant ID of the articles listing you want to delete

Responses
200
Facility listing was found and successfully deleted
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
Facility listing not found
application/json
delete
DELETE / HTTP/1.1
Host: %%HOST%%
Accept: */*

No content

  • Summary
  • Listings & Stocks
  • Mandatory Fields
  • Optional Fields
  • Attributes
  • Price
  • Currency
  • Weight
  • Scanning Rule
  • Scannable Codes
  • Out of Stock Behaviour
  • Availability Timeframe
  • Tags
  • Measurement Unit Key
  • Stock Properties
  • Stock Available Until
  • Legal
  • Custom Attributes
  • Status
  • API documentation
  • For multiple listings
  • GETGet a facility with the given ID
  • PUTCreate or Update listings of a facility with the given ID
  • DELETEdeletes all listings of a facility with the given ID
  • For a specific listing
  • GETGet a Listings with the given ID
  • DELETEdeletes a listing with the given ID of a facility with the given ID
  • PATCHUpdate a listing with the given ID of a facility with the given ID

Create or Update listings of a facility with the given ID

put
Authorizations
Path parameters
facilityIdstringRequired

ID of facility you want to get its listing

Body
Responses
200
Facility listing was found & you were allowed to access it.
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
Facility listing not found
application/json
put
PUT / HTTP/1.1
Host: %%HOST%%
Content-Type: application/json
Accept: */*
Content-Length: 529

{
  "listings": [
    {
      "attributes": [
        {
          "category": "descriptive",
          "key": "%%subtitle%%",
          "priority": 100,
          "value": "585er Gold"
        }
      ],
      "imageUrl": "text",
      "price": 1200,
      "tenantArticleId": "4711",
      "title": "Adidas Superstar",
      "weight": 1,
      "scanningRule": {
        "values": []
      },
      "scannableCodes": [
        "text"
      ],
      "outOfStockBehaviour": "BACKORDER",
      "availabilityTimeframe": {
        "start": "2020-02-03T08:45:50.525Z"
      },
      "tags": [],
      "measurementUnitKey": "liter",
      "stockProperties": {
        "ANY_ADDITIONAL_PROPERTY": {
          "inputType": "DATE",
          "required": true,
          "defaultValue": "text"
        }
      },
      "legal": {
        "hsCode": "text"
      }
    }
  ]
}

No content

Update a listing with the given ID of a facility with the given ID

patch
Authorizations
Path parameters
facilityIdstringRequired

ID of facility you want to patch a listing of

tenantArticleIdstringRequired

tenant ID of the articles listing you want to patch

Body
versioninteger · int64Required

The version of the document to be used in optimistic locking mechanisms.

Example: 42
Responses
200
Facility listing was found and successfully patched
application/json
400
Invalid input. See response for details
application/json
401
Your user is not allowed to operate against this API instance
application/json
403
Your user, although recognized, is not authorized to use this endpoint
application/json
404
Facility listing not found
application/json
409
Listing version conflict
application/json
patch
PATCH / HTTP/1.1
Host: %%HOST%%
Content-Type: application/json
Accept: */*
Content-Length: 576

{
  "actions": [
    {
      "action": "ModifyListing",
      "attributes": [
        {
          "category": "descriptive",
          "key": "%%subtitle%%",
          "priority": 100,
          "value": "585er Gold"
        }
      ],
      "imageUrl": "text",
      "price": 1200,
      "status": "ACTIVE",
      "subtitle": "44 2/3",
      "title": "Adidas Superstar",
      "tags": [],
      "scanningRule": {
        "values": []
      },
      "scannableCodes": [
        "text"
      ],
      "weight": 1,
      "outOfStockBehaviour": "BACKORDER",
      "availabilityTimeframe": {
        "start": "2020-02-03T08:45:50.525Z"
      },
      "measurementUnitKey": "kg",
      "stockProperties": {
        "ANY_ADDITIONAL_PROPERTY": {
          "inputType": "DATE",
          "required": true,
          "defaultValue": "text"
        }
      },
      "legal": {
        "hsCode": "text"
      }
    }
  ],
  "version": 42
}
[
  {
    "attributes": [
      {
        "category": "descriptive",
        "key": "%%subtitle%%",
        "priority": 100,
        "value": "585er Gold"
      }
    ],
    "imageUrl": "text",
    "price": 1200,
    "tenantArticleId": "4711",
    "title": "Adidas Superstar",
    "weight": 1,
    "scanningRule": {
      "values": []
    },
    "scannableCodes": [
      "text"
    ],
    "outOfStockBehaviour": "BACKORDER",
    "availabilityTimeframe": {
      "start": "2020-02-03T08:45:50.525Z"
    },
    "tags": [],
    "measurementUnitKey": "liter",
    "stockProperties": {
      "ANY_ADDITIONAL_PROPERTY": {
        "inputType": "DATE",
        "required": true,
        "defaultValue": "text"
      }
    },
    "legal": {
      "hsCode": "text"
    },
    "created": "2020-02-03T08:45:51.525Z",
    "lastModified": "2020-02-03T09:45:51.525Z",
    "version": 42,
    "facilityId": "4711",
    "id": "fsfdsf87fsd",
    "status": "ACTIVE"
  }
]