Fulfillability Check

This page is outdated. Please go to our new documentation under https://docs.fulfillmenttools.com/documentation.

The fulfillability endpoint of the fulfillmenttools platform API can be used to inform a client application about possible fulfillment options that could be shown during checkout.

This endpoint can be queried with specific data which is available (for example) during the checkout in an eCommerce shop, such as the basket, the desired service type (Ship From Store, Click and Collect), etc..

The Service will respond with the possible fulfillment options based on the supplied data in the request.

The fulfillability endpoint can check for the following service levels / service type combinations:

  • Ship-from-Store/Best Effort

  • Ship-from-Store/Same Day

  • Click & Collect/Best Effort

The following input parameters can be provided:

  • Which service level should be checked

  • Address of the customer

  • Optional: requested articles of the customer (e.g. the basket)

  • Click & Collect-only: the radius (in KM) around the address of the customer to determine the area in which for matching facilities is checked

At least one of shipping or collect has to be specified, using both in one request is also possible

For the item availability check to work, listings with stock information have to be defined on facility level

Examples

Best Effort Ship-From-Store Delivery

Check if a delivery to the specified address is possible by the given date

Request:

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/fulfillability' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "estimatedOrderDate": "2020-02-11T12:45:00Z", 
  "shipping": {  
    "serviceLevels": [ 
      "DELIVERY" 
    ], 
    "targetAddress": { 
      "postalCode": "40764", 
      "country": "DE" 
    } 
  } 
}'

Response:

200 OK
{ 
  "shipping": { 
    "DELIVERY": { 
      "available": true 
    } 
  } 
}

Click & Collect Best Effort

This Service Type / Service Level Combination should be used when a Click and Collect service should be provided to the consumer. Currently there is no possibility to query for a specific time slot - hence this is Service-Level "Best Effort": Is there a facility within the specified area that can fulfill the Click and Collect service as fast as possible.

Check for facilities within 10km from the given coordinates that have the specified items available

  • Are there facilities within 10km from the given coordinates that offer Click & Collect as a service type?

  • Does at least one of those facilities have the specified items available?

Request:

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/fulfillability' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "constraints": [
    {
      "type": "ITEMS",
      "value": {
        "mode": "ITEMS_COMPLETE",
        "items": [
          {
            "tenantArticleId": "1",
            "amount": 80
          }
        ]
      }
    }
  ],
  "estimatedOrderDate": "2020-02-11T12:45:00Z",
  "collect": {
    "geoFence": {
      "lat": 50.941357,
      "lon": 6.958307,
      "radius": 10
    }
  }
}'

Response(positive):

200 OK
{
  "collect": {
    "facilities": [
      {
        "city": "Köln",
        "country": "DE",
        "created": "2022-03-11T12:01:40.283Z",
        "houseNumber": "42",
        "id": "14b3f6ea-42db-48e0-b9cc-0c3826adcc0f",
        "lastModified": "2022-03-11T12:01:40.503Z",
        "name": "Store-01",
        "status": "ONLINE",
        "version": 1
      },
      {
        "city": "Köln",
        "country": "DE",
        "created": "2022-03-11T12:01:40.756Z",
        "houseNumber": "31",
        "id": "61815cb1-6349-4acb-b1d1-42665457c96e",
        "lastModified": "2022-03-11T12:01:41.000Z",
        "name": "Store-02",
        "status": "ONLINE",
        "version": 1
      }
    ]
  }
}

Response(negative):

200 OK
{
  "collect": {
    "facilities": []
  }
}

Same-Day Ship-From-Store Delivery

Check if same-day delivery is possible for the given address

  • Is there a facility with the type Ship from Store which has at least one same day carrier?

  • Is the consumer within the delivery area of the same day carrier originating from a facility in the network?

  • Is there enough time for the same day fulfillment? (estimated order date + buffer time < cutoff time of the same day carrier)

  • Are all items available?

A little expectation management: Same Day delivery means "by the end of the day", which is in theory 23:59:59 of the day of the request. However, many Sameday carriers expect a package to be advised long before that!

In addition to the pickup time there is time needed for the fulfillment (picking, packing, etc.) itself. This has to be kept in mind to not be disappointed - for example if every request past 13:30 gets the answer "Sorry, no Same Day Delivery possible" - just because of the reason, that the carrier arrives at 13:45 every day.

Request:

curl -sSL -X POST 'https://your.api.fulfillmenttools.com/api/fulfillability' \
  --header 'Authorization: Bearer <TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "constraints": [
    {
      "type": "ITEMS",
      "value": {
        "mode": "ITEMS_COMPLETE",
        "items": [
          {
            "tenantArticleId": "1",
            "amount": 80
          }
        ]
      }
    }
  ],
  "estimatedOrderDate": "2020-03-12T10:00:00Z",
  "shipping": {
    "serviceLevels": [
      "SAMEDAY"
    ],
    "targetAddress": {
      "postalCode": "48157",
      "country": "DE"
    }
  }
}'

Response(positive):

200 OK
{
  "shipping": {
    "SAMEDAY": {
      "available": true,
      "validUntil": "2020-03-12T11:00:00.525Z"
    }
  }
}

Response(negative):

200 OK
{
  "shipping": {
    "SAMEDAY": {
      "available": false
    }
  }
}

Last updated