Promise delivery date

The promise delivery date functionality allows your Order Management System (OMS) to set a specific date as the PROMISE_DELIVERY_DATE, which is communicated to the customer as the date they can expect to receive their purchased item.

For example, a store assistant can generate a pick list based on a promised delivery date. This is determined by the new First-in First-out (FIFO) rule, which ensures that stock is assigned to orders with the earliest promised delivery date.

This functionality only works for merchants using the sourcing engine in BATCH mode. The sourcing engine ensures that all new orders are sourced by the PROMISE_DELIVERY_DATE. An order with this functionality requires the attribute to have a specified source_location as well.


You can quickly configure your OMS to use this functionality via a config option in the System Integrator (SI) Portal.

To enable this functionality:

  1. Navigate to Config > Stock Aggregates > Sourcing in your SI Portal.
  2. Enable the Filter options using already promised inventory option.

    Filter Promise Delivery Date

    These definitions are enabled and configured in your System Integrator (SI) Portal, which is not yet accessible externally. Contact Magento Support for assistance.

When this option is enabled for a stock aggregate, the sourcing generator sources requests with that stock aggregate and records the promised inventory for the lines that could not be sourced in the run. This helps prevent inventory allocation for the lines of other sourcing requests with later promised dates when there is no available inventory for the SKU other than the previously recorded promised inventory.


The magento.sales.order_management.create message already supports the PROMISE_DELIVERY_DATE attribute.

This functionality applies at the order and the order_line level. For more information about the sourcing engine and OMS waves, see the Sourcing engine topic.

Example of an order with the promise_delivery_date functionality

  "sourcing_request": {
    "uuid": "string",
    "mode": "string",
    "order_uuid": "string",
    "order_id": "string",
    "order_creation_date": "datetime",
    "client": "string",
    "store_id": "string",
    "aggregate_id": "string",
    "shipping_method": "string",
    "shipping_address": {
    "lines": [
        "id": "string",
        "line_number": "integer",
        "sku": "string",
        "product_type": "string",
        "parent_line_id": "string",
        "allocation_attempts": "integer",
        "source_id": "string",
        "promise_delivery_date": "datetime",
        "declined_sources": [
        "custom_attributes": [
            "name": "string",
            "value": "string"
        "source_location": "string",
        "pickup_location": "string",

The promise delivery date behaves differently depending on the type of order:

  • A promised delivery date on multiple lines (where none are already sourced) causes the sourcing request to take the earliest date from the lines of this order.
  • A promised delivery date specified at the request level will never be overwritten, no matter what is specified at the order_line level.
  • A promised delivery date on a single line (where none are already sourced) will apply the delivery date to the entire sourcing_request.

All backorders that are re-submitted to the SRCRR are added to the batch so that they are sourced together with newly created orders. For more information see the Backorders topic.