OmnichannelInventoryService Class

Route orders to inventory locations in Order Management.

Namespace

ConnectApi

OmnichannelInventoryService Methods

These methods are for OmnichannelInventoryService. All methods are static.

createReservation(createReservationInputRepresentation)

Create an inventory reservation in Omnichannel Inventory.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCICreateReservationOutputRepresentation createReservation(ConnectApi.OCICreateReservationInputRepresentation createReservationInputRepresentation)

Parameters

createReservationInputRepresentation
Type: ConnectApi.OCICreateReservationInputRepresentation
Data to reserve inventory at one or more Omnichannel Inventory locations or location groups.

fulfillReservation(fulfillReservationInputRepresentation)

Fulfill one or more inventory reservations.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCIFulfillReservationOutputRepresentation fulfillReservation(ConnectApi.OCIFulfillReservationInputRepresentation fulfillReservationInputRepresentation)

Parameters

fulfillReservationInputRepresentation
Type: ConnectApi.OCIFulfillReservationInputRepresentation
Wraps a list of inventory reservations to fulfill.

getInventoryAvailability(inventoryAvailabilityInputRepresentation)

Retrieve inventory availability data for one or more products at one or more inventory locations or location groups.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCIGetInventoryAvailabilityOutputRepresentation getInventoryAvailability(ConnectApi.OCIGetInventoryAvailabilityInputRepresentation inventoryAvailabilityInputRepresentation)

Parameters

inventoryAvailabilityInputRepresentation
Type: ConnectApi.OCIGetInventoryAvailabilityInputRepresentation
Details of a request to retrieve inventory availability.

getInventoryAvailabilityUploadStatus(uploadId)

Retrieve the status of an inventory availability upload job.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCIUploadInventoryAvailabilityStatusOutputRepresentation getInventoryAvailabilityUploadStatus(String uploadId)

Parameters

uploadId
Type: String
The upload ID of the upload job.

getPublishLocationStructureStatus(uploadId)

Retrieve the status of a publish location structure job.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCIPublishLocationStructureStatusOutputRepresentation getPublishLocationStructureStatus(String uploadId)

Parameters

uploadId
Type: String
The upload ID of the publish job.

publishLocationStructure()

Asynchronously publish information about your inventory locations and location groups to Omnichannel Inventory. The publish includes records whose IsEnabled and ShouldSyncWithOci fields are both true. This method returns an ID that you can use to retrieve the status of the publish job.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCIPublishLocationStructureOutputRepresentation publishLocationStructure()

releaseReservation(releaseReservationInputRepresentation)

Release one or more existing inventory reservations to free up that inventory.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCIReleaseReservationOutputRepresentation releaseReservation(ConnectApi.OCIReleaseReservationInputRepresentation releaseReservationInputRepresentation)

Parameters

releaseReservationInputRepresentation
Type: ConnectApi.OCIReleaseReservationInputRepresentation
Details of one or more inventory reservations to release.

submitInventoryAvailabilityUpload(fileUpload)

Upload an inventory availability data file to Omnichannel Inventory.

API Version

51.0 (NDJSON), 63.0 (CSV)

Requires Chatter

No

Signature

public static ConnectApi.OCIUploadInventoryAvailabilityOutputRepresentation submitInventoryAvailabilityUpload(ConnectApi.BinaryInput fileUpload)

Parameters

fileUpload
Type: ConnectApi.BinaryInput
NDJSON or CSV file containing inventory availability data.

Usage

To create an inventory data file, format the data as a series of NDJSON or CSV entries that represent locations and individual inventory records.

Inventory Import Data Considerations:

  • Separate the top-level entries with line feeds, not commas. Each entry must be on a single line.
  • When the system reads a location entry, it assigns the subsequent inventory entries to that location until it reads another location entry.
  • Legacy NDJSON requires that you specify a header record for each location entry ({"location":"wickenburg","mode":"UPDATE"}). The header isn’t required for a high-performance NDJSON layout or CSV file.
  • Each inventory record entry requires a unique recordId. Best practice is to use a UUID. The recordId protects against importing duplicate data. The recordId is provided in NDJSON and automatically generated for CSV.
  • Each inventory record entry requires an effectiveDate.
  • If provided, each futures entry requires a nonzero quantity and a future expectedDate.

The file must be in NDJSON or CSV format. For larger collections, use the Commerce API or split the data into multiple files. The Commerce API accepts GZIP, NDJSON, or CSV files up to 100 MB.

Note

This example illustrates the data format:

For readability, this example shows the first few entries on multiple lines. In the import file, each location and inventory record entry must be on a single line.

Note

{
  "location":"Warehouse-A",  // location identifier
  "mode":"UPDATE"  // must be UPDATE (other operations might be available in future releases)
}
{
  "recordId":"0a87539d-f3dd-47bc-91c7-9c752e39dbe0",  // unique identifier for the inventory record
  "onHand":10,
  "sku":"12389156",
  "effectiveDate":"2020-12-08T14:05:22.790896-07:00",
  "futures":[  // list of future restocks
    {
    "quantity":1,
    "expectedDate":"2021-04-18T14:05:22.781-07:00"
    },
    {
    "quantity":5,
    "expectedDate":"2021-05-18T14:05:22.781-07:00"
    }
  ],
  "safetyStockCount":0
}
{
  "recordId":"0a87539d-f3dd-47bc-91c7-9c752e312345",
  "onHand":10,
  "sku":"9485728",
  "effectiveDate":"2020-12-08T14:05:22.790896-07:00",
  "futures":[
    {
    "quantity":10,
    "expectedDate":"2021-04-18T14:05:22.781-07:00"
    }
  ],
  "safetyStockCount":0
}
{"location":"Warehouse-B","mode":"UPDATE"}
{"recordId":"0a87539d-f3dd-47bc-91c7-9c75abc123de","onHand":10,"sku":"12389156","effectiveDate":"2020-12-08T14:05:22.790896-07:00","futures":[{"quantity":1,"expectedDate":"2021-04-18T14:05:22.781-07:00"}],"safetyStockCount":0}
{"recordId":"0a87539d-f3dd-47bc-91c7-9c75abc98765","onHand":10,"sku":"93867201","effectiveDate":"2020-12-08T14:05:22.790896-07:00","futures":[{"quantity":5,"expectedDate":"2021-04-18T14:05:22.781-07:00"}],"safetyStockCount":0}

transferReservation(transferReservationInputRepresentation)

Transfer one or more inventory reservations between locations or location groups. This API doesn’t change physical quantities, but reduces the reserved quantity at the source and increases it at the destination.

API Version

51.0

Requires Chatter

No

Signature

public static ConnectApi.OCITransferReservationOutputRepresentation transferReservation(ConnectApi.OCITransferReservationInputRepresentation transferReservationInputRepresentation)

Parameters

transferReservationInputRepresentation
Type: ConnectApi.OCITransferReservationInputRepresentation
Wraps a list of inventory reservation transfers and specifies whether a single failure cancels the entire list.

updateReservation(updateReservationInputRepresentation)

Updates an existing reservation in Omnichannel Inventory. Add, remove, and update quantities for existing SKUs in the reservation.

API Version

61.0

Requires Chatter

No

Signature

public static ConnectApi.OCIUpdateReservationOutputRepresentation updateReservation(ConnectApi.OCIUpdateReservationInputRepresentation updateReservationInputRepresentation)

Parameters

updateReservationInputRepresentation
Type: ConnectApi.OCIUpdateReservationInputRepresentation
Data to update one or more Omnichannel Inventory item reservations.