fulfillmenttools
API documentationIncident ManagementFeedback
Products
Products
  • Products
  • Core
    • Fulfillmenttools and it's surrounding system
    • Facilities
      • Managed facilities
      • Supplier facilities
      • Facility groups
    • User management
    • GDPR
    • External actions
    • Notification center
    • Incident management
    • Tags
    • Stickers
    • Articles
  • Inventory Management
    • Overview inventory modules
    • Listing
    • Article categories
    • Stock
      • Stock availability
      • Stock properties
      • Stock updates
    • Reservations
    • Inbound process
    • Storage location
    • Zone
    • Inventory traits
    • Channel inventory
    • Measurement units
    • Stow jobs
    • External stock change reasons
    • Configurations
  • Availability & Promising
    • Availability & promising in customer journey
      • Earliest possible delivery date
      • Availability in delivery time period
      • Availability for specific delivery date
      • Checkout options
      • Delivery promise
    • Latest picking start
  • Distributed Order Management
    • Order management
    • Order routing
      • Fences
      • Ratings
      • Order split
      • Routing strategy
      • Item bundles
      • Re-route
      • Decision logs
      • Unroutable orders
      • Pre- and backorders
      • DOMS toolkit
  • Order fulfillment
    • Picking
    • Packing
    • Handover
    • Custom services
    • External documents
    • Load units
    • Interfacility transfer
    • Pick job target time
    • Configurations
      • Picking configuration
      • Packing configuration
      • Handover configuration
      • Printing & document configuration
      • Parcel tag configuration
  • Carrier management
    • Carriers and connection to facilities
    • Carrier country service mapping
    • Same day delivery
    • Custom carrier
    • Available carriers
  • Returns Management
    • Introduction to returns
    • Return reasons
  • Use Cases
    • Creating & executing stow jobs
    • Creating orders with interfacility transfers
    • Demand-driven replenishment
    • Expected stock in availability
    • Incoming goods & storage
    • Multi order picking
Powered by GitBook
On this page
  • Summary
  • Use case examples
  • Short replenishment cycles
  • Internal production facility
  • Implementation in fulfillmenttools
  • 1. Create listings for products that should be available in large quantities
  • 2. Create a purchase order
  • 3. Enable shop systems to communicate expected stock in sales availability
  • 4. Create a new purchaseOrder
  • 5. Patch purchase order with actual quantity
  • 6. Create stock after delivery has arrived or products are produced
Edit on GitHub
  1. Use Cases

Demand-driven replenishment

Last updated 4 months ago

Summary

This page describes use cases where replenishments for items are made in specific time intervals based on demand or where products can be produced on demand. In that case, systems should often allow customer orders to be accepted without being limited by current stock levels until the point in time when the purchase order is placed or production schedules are defined.

Use case examples

Short replenishment cycles

A company offers lots of seasonal products which, naturally, are subject to high fluctuations in demand. In addition, these products can be replenished in a short time and the user knows already when orders will arrive. Thus, purchasing agents monitor already accepted customer orders and place purchase orders based on demand to avoid over-stock. As a result, there is no stock limit on the number of customer orders that can be accepted until the purchase order is placed.

Internal production facility

A company produces some goods internally. To prevent overproduction, the production schedule is made based on current demand levels. As a result, there is no stock limit on the number of customer orders that can be accepted until the production schedule is defined.

Implementation in fulfillmenttools

The described use case is mapped by creating purchase orders with a very high amount of products and allowing shop systems to access the thereby created expected stock.

1. Create listings for products that should be available in large quantities

In most set-ups, listings should already be created for all products that are managed via fulfillmenttools' systems. Still, make sure that a listing exists for each relevant product. If goods are perishable and/or should only be available for a certain time frame, and/or must be configured.

Example call for
{
  "listings": [
    {
      "tenantArticleId": "4711",
      "title": "Chocolate Santa",
      "titleLocalized": {
        "de_DE": "Schoko Weihnachtsmann",
        "en_US": "Chocolate Santa"
      },
      "stockProperties": {
        "expiry": {
          "inputType": "DATE",
          "required": true
        }
      },
      "stockAvailableUntil": {
        "calculationBase": "EXPIRY",
        "modifier": "-P30D"
      }
      "version": 1
    }
  ]
}

2. Create a purchase order

  • Choose a high number for the quantity.value of requestedItems

  • Define the date when the delivery is expected to arrive in requestedDate.value and set requestedDate.type to "TIMEPOINT"

  • Include as many items as possible in one purchase order rather than creating one purchase order for each item for that a very high stock should be assumed. However, please consider the limit of 200 tenantArticleIds per purchase order.

3. Enable shop systems to communicate expected stock in sales availability

Use one of the below endpoints to query stock availability in your shop's detail pages and in the checkout journey. By that, it is ensured that expected stock is considered in the shop availability.

4. Create a new purchaseOrder

5. Patch purchase order with actual quantity

Once the purchase order was placed or the production schedule was defined, patch requested items in the purchase order with quantities that were actually ordered or planned to be produced. Adjust stock properties such as expiry date if necessary.

If there are more reservations than (expected) stock for reasons such as problems during production or defective items in a delivery, our systems try to distribute these abandoned reservations to other stock. If no alternative stock is available, the reservation is still tracked and will be shifted to a stock as soon as some stock becomes available.

6. Create stock after delivery has arrived or products are produced

Create a including all items that have not been ordered yet but should be already available for sale and not be limited by current stock levels.

Example query for
{
  "orderDate": "2024-08-12T12:59:37.192Z",
  "requestedDate": {
    "type": "TIME_POINT",
    "value": "2024-08-19T12:59:37.192Z"
  },
  "requestedItems": [
    {
      "tenantArticleId": "4711",
      "quantity": {
        "value": 10000
      },
      "stockProperties": {
        "expiry": "2025-02-19T12:59:37.192Z"
      }
    }
  ],
  "facilityRef": "warehouse-cgn"
}

Go to get more information on the checkout options endpoints.

Before using the and endpoints, the transit time in the for the requested carrier(s) must be configured.

Before patching the existing purchaseOrder (created in with the actually ordered quantity, a new purchase order with large quantities needs to be created. This ensures that the systems can already accept customer orders that should be fulfilled within next production or replenishment cycle. See for this.

Example query for
{
  "version": 2,
  "requestedItems": [
    {
      "tenantArticleId": "4711",
      "quantity": {
        "value": 150
      },
      "stockProperties": {
        "expiry": "2025-02-19T12:59:37.192Z"
      }
    }
  ],
  "facilityRef": "warehouse-cgn"
}

If the delivery of the ordered products has arrived or the production was finished, a receipt needs to be added to the inbound process of the purchase order to create stock. Use the endpoint to query the inboundProcessRef if not sure about the inbound process that the purchase order belongs to.

Example query for
{
  "receivedDate": "2024-08-18T13:40:05.864Z",
  "receivedItems": [
    {
      "tenantArticleId": "4711",
      "acceptedQuantity": {
        "value": 149
      },
      "rejectedQuantity": {
        "value": 1
      },
      "stockProperties": {
        "expiry": "2025-02-19T12:59:37.192Z"
      },
      "comments": [
        {
          "content": "One item was broken.",
        }
      ],
    }
  ],
  "status": "FINISHED"
}
creating purchaseOrder with REST API
here
delivery/earliest REST API
delivery/timeperiod REST API
carrier country service mapping
patching purchaseOrder with REST API
purchase order REST API
adding a receipt to an inboundProcess with REST API
step 2
step 2
stock properties
creating listing with REST API
stockAvailableUntil
purchase order