Product availability & order fulfillment requests
Last updated
Last updated
/api/promises/checkoutoptions/delivery/earliest
Provides the earliest possible delivery date for an item or a list of items. This information can be used on a search result or product overview page to inform the shop user about when the delivery of a specific item can be expected.
Please note:
The maximum amount of days that are checked is limited to 45 days
Since delivery days are considered, it is mandatory to have transit times per carrier defined.
Request:
earliestDeliveryDate:
This is set to "now" by default, meaning the customer is interested in an ASAP delivery. If a different future date is specified, available delivery dates will be checked starting from that point in time (i.e., the user does not want to receive their order before a given date).
tenantArticleIds:
The earliest delivery date can be calculated for a single item or a list of items. If a list of items is requested, the calculation is done for each item individually (not as a basket).
consumerAddress:
The request must include at least the consumer's country. This is important because non-delivery days are taken into account when calculating the earliest delivery date, and these vary by country and region. It is also possible to provide a postal code in the request (e.g., for logged-in shop users). Doing so allows the calculation to consider region-specific non-delivery days.
Response:
You will receive a list of the requested items with
earliestPredictedDeliveryDate:
This is the earliest point in time when the user can expect this particular item to be delivered in case the order would be placed at this moment.
availableCarrier:
name:
Name of the carrier (key) like "DHL"
nonDeliveryDays:
regions where this particular date is a non delivery date of the corresponding carrier (i.e. DE-NW: DHL does not deliver on the March 3rd 2025 in North Rhine Westphalia due to carnival)
/api/promises/checkoutoptions/delivery/timeperiod
Provides all available delivery dates based on a basket of items within a defined timeframe. This information might be used in order to provide a calendar view within the checkout to the user which indicates the available delivery dates.
The length of the time period is restricted to 60 days. The longer the time period, the more time is needed to calculate the results (depending on the size of the fulfillment network).
startDate:
This is the start date of the requested time range. If no info is given we use the default "now" (timestamp of the request).
endDate:
This is the start date of the requested time range. If no info is given we use the default "now" (timestamp of the request).
basket:
Contains all tenantArticleIds and the respective quantities that the customer is interested in buying
consumerAddress:
The request needs to contain at least the consumer country. This is important, as the nondeliverydays are taken into account when calculating the earliest delivery day and these differ from country to county and also from to region. It also possible to provide a postal code in the request (i.e. for logged in shop users). By doing so, the calculation can also consider region specific non delivery days.
deliveryPreferences:
By setting deliveryPreferences like preferredCarrier(s) or preferredCarrierProductCategories only matching carrier options are considered when evaluating which dates are possible delivery dates.
date:
Defines the date on which the calculation took place and on which the following information applies
overallStatus:
The result can be be ALL, NONE or PARTIAL. ALL: all items within the requested basket can be delivered at the corresponding date NONE: none of the items within the requested basket can be delivered at the corresponding date. PARTIAL: part of the items within the requested basket can be delivered at the corresponding date.
availableCarriers:
name:
Name of the carrier (key) like "DHL"
nonDeliveryDays:
Regions where this particular date is a non delivery date of the corresponding carrier (i.e. DE-NW: DHL does not deliver on the March 3rd 2025 in North Rhine Westphalia due to carnival)
Please note that the usage of the overallStatus
is an aggregate of the basket and used in order to improve the performance of the call. If there is need for more specific information on item level you can request this call multiple times but with only one item in the basket or use our checkout options and promising endpoints.
/api/promises/checkoutoptions/delivery/timepoint
Provides available stock quantities over facilities for items on a specific delivery date. This information can be used to determine the availability of certain products for a delivery day selected by the customer. The response lists the available quantity for all requested items and facilities. Facility / item combinations with zero availability are included.
desiredDeliveryDate:
This is the date when the item should arrive at the customer.
tenantArticleIds
: Contains all tenantArticleIds that the customer is interested in buying.
facilityRef
: Contains all facilities that should be considered for the delivery.
latestPickingStart
: This is the point in time at which the picking for the delivery must be started to arrive in time at the customer. If the latest possible picking start for a certain delivery date in a facility is not known, it can be requested via the /api/promises/checkoutoptions
endpoint. Our systems then calculate the latestPickingStart
based on cut-off time of carriers and fulfillment process buffer.
The response lists the available quantity for all requested items and facilities. Facility / item combinations with zero availability are included.
Expected stocks that were announced via purchase order are also considered in the response. Only purchase orders with requestedDate.type
"ASAP" are not considered as we expect these deliveries to arrive as soon as possible and there is no exact date that our systems can use to check the potential availability of these stocks for incoming orders.
/api/promises/checkoutoptions
Identify potential facilities for fulfillment considering stock & fences and provides information on fulfillment options that these facilities offer. This allows the shop to offer more detailed information about the upcoming fulfillment and provide additional services during the checkout process, such as specific carriers and delivery options.
The response includes all information from facilities that have stock of at least one of the ordered items and have not been filtered out by active fences. The response contains the following information:
Facility Data
General Information from facility
picking times and their capacities (important for C&C cases and only given for a CnC request)
Stock information
stock available within this facility (just for ordered items)
Carrier information
Active carriers
Available carrier products
Carrier costs
Carrier delivery times
/api/promises/deliverypromise
Can be requested in the final step of the checkout journey when all order elevant information is already known (such as method of delivery, items in the cart, delivery preferences, and consumer address).
A routing decision with the set DOMS configurations is made uncovering from where the order fulfillment will be performed and when the customer can expect the fulfillment to be completed and the delivery to be carried out.
If the consumer decides to confirm the purchase, the promised order is patched and becomes a "normal" order for fulfillment. Meanwhile, the stock is reserved for the potential customer. If the consumer decides against the purchase, the reservation is dissolved after a configurable timeframe.