Scenario: Ship from store or distribution center (DC)

The Inventory service gives you a synchronized real-time availability view of virtually all supply and demand when you ship from store or DC.

Process to get accurate inventory availability picture from the Inventory service for ship from store or DC shipping methods:

As a Systems Integrator (SI) or customer developer, you need to perform the following tasks:
  1. Determine whether you want to have a single group or network of stores or you want to have multiple groups or networks of shipping locations. Additionally, you need to determine whether you want grouping based on country, SKU, or on any other parameter. These decisions need to be based on how you want to inquire inventory availability from inventory service.
  2. Define low, medium, and high thresholds for inventory at node level.
  3. Identify the source systems that affect supply. For example, Point of Sales (POS), inventory management system, and third-party stores. Additionally, you also need to identify the source systems of supply changes, demand changes, and inventory inquiry.
  4. Do the initial inventory sync from the source system that is identified in step 3 into inventory service using Supply and Demand sync REST APIs.
  5. Set up the source systems identified in step 3 to send delta (or trickle) feeds on supply changes into the inventory service. For example, when a POS store is performing a check-out for a customer the supply change is happening which needs to be updated into the inventory service. You can use the Update REST APIs to help stores have an accurate real-time inventory availability picture.
  6. Set up your systems to place demands. Place your order through an Order Management System. The order fulfillment system sends demand or supply updates to the inventory service. For example, when a shipping order is shipped, the order fulfillment system updates the demand by reducing the number of items that are ordered. It also reduces the supply by reducing the number of items shipped. Schedule the order and determine the store from where you want the order to be shipped from.
  7. Get the current inventory availability picture from the inventory service APIs.
    Note: First, the system integrator needs to identify the group of stores for which you want to get the inventory availability. After that, you need to ask for the inventory availability for those stores from inventory service.
  8. OptionalIf a business customer or system integrator want to work with reservations, they can create a reservation for an item in the system without the store information. For more information, see Reservations.
  9. Set up weekly sync to make sure that inventory availability picture is accurate.

An example of online reservation order

  1. Create a reservation for an online order that is checked out to ensure that the item is still available.
    POST https://api.watsoncommerce.ibm.com/inventory/business/reservations
    {
      "lines": [{
        "deliveryMethod": "SHP",
        "itemId": "SKU1024",
        "lineId": "1",
        "productClass": "NEW",
        "quantity": 3.0,
        "shipNode": "Matrix-Store-001",
        "unitOfMeasure": "EACH"
      }],
      "reference": "cart123",
      "timeToExpire": 15
    }
  2. After the check-out is complete, the order is captured in Sterling Order Management System Software. Adjust the demand and consume the reservation to prevent overselling.
    POST https://api.watsoncommerce.ibm.com/inventory/business/demands
    {
      "demands": [{
        "cancelDate": 2500-01-01T00:00:00Z,
        "changedQuantity": 1.0,
        "itemId": "SKU1024",
        "minShipByDate": 1900-01-01T00:00:00Z,
        "productClass": "NEW",
        "reservations": [{
          "quantity": 1.0,
          "reference": "cart123"
        }],
        "shipDate": 2019-01-01T00:00:00Z,
        "shipNode": "Matrix-Store-001",
        "type": "OPEN_ORDER",
        "unitOfMeasure": "EACH"
      }]
    }
  3. The order is scheduled in Sterling Order Management System Software. Adjust the demand to represent the current state: type and shipDate.
    POST https://api.watsoncommerce.ibm.com/inventory/business/demands
    {
      "demands": [{
        "cancelDate": 2500-01-01T00:00:00Z,
        "changedQuantity": -1.0,
        "itemId": "SKU1024",
        "minShipByDate": 1900-01-01T00:00:00Z,
        "productClass": "NEW",
        "shipDate": 2019-01-01T00:00:00Z,
        "shipNode": "Matrix-Store-001",
        "type": "OPEN_ORDER",
        "unitOfMeasure": "EACH"
      },{
        "cancelDate": 2500-01-01T00:00:00Z,
        "changedQuantity": 1.0,
        "itemId": "SKU1024",
        "minShipByDate": 1900-01-01T00:00:00Z,
        "productClass": "NEW",
        "shipDate": 2019-01-02T00:00:00Z,
        "shipNode": "Matrix-Store-001",
        "type": "SCHEDULED",
        "unitOfMeasure": "EACH"
      }]
    }
  4. After the order is released where it can be picked, packed, and shipped, adjust the demand to represent the current state type.
    POST https://api.watsoncommerce.ibm.com/inventory/business/demands
    {
      "demands": [{
        "cancelDate": 2500-01-01T00:00:00Z,
        "changedQuantity": -1.0,
        "itemId": "SKU1024",
        "minShipByDate": 1900-01-01T00:00:00Z,
        "productClass": "NEW",
        "shipDate": 2019-01-02T00:00:00Z,
        "shipNode": "Matrix-Store-001",
        "type": "SCHEDULED",
        "unitOfMeasure": "EACH"
      },{
        "cancelDate": 2500-01-01T00:00:00Z,
        "changedQuantity": 1.0,
        "itemId": "SKU1024",
        "minShipByDate": 1900-01-01T00:00:00Z,
        "productClass": "NEW",
        "shipDate": 2019-01-02T00:00:00Z,
        "shipNode": "Matrix-Store-001",
        "type": "ALLOCATED",
        "unitOfMeasure": "EACH"
      }]
    }
  5. Finally, after the order is shipped, adjust the demand and supply to represent the current state of inventory.
    POST https://api.watsoncommerce.ibm.com/inventory/business/demands
    {
      "demands": [{
        "cancelDate": 2500-01-01T00:00:00Z,
        "changedQuantity": -1.0,
        "itemId": "SKU1024",
        "minShipByDate": 1900-01-01T00:00:00Z,
        "productClass": "NEW",
        "shipDate": 2019-01-02T00:00:00Z,
        "shipNode": "Matrix-Store-001",
        "type": "ALLOCATED",
        "unitOfMeasure": "EACH"
      }]
    }
    
    POST https://api.watsoncommerce.ibm.com/inventory/business/supplies
    {
      "supplies": [{
        "changedQuantity": -1.0,
        "eta": "1900-01-01T00:00:00Z",
        "itemId": "SKU1024",
        "productClass": "NEW",
        "shipByDate": "2500-01-01T00:00:00Z",
        "shipNode": "Matrix-Store-001",
        "type": "ONHAND",
        "unitOfMeasure": "EACH"
      }]
    }