OMS DOCUMENTATIONRESOURCE CENTER

These guides provide examples for many tasks that a developer will need to be familiar with during implementation.

KIBO OMS DEVELOPMENT

Documentation

Inventory Refresh

This API sets the inventory count for a product at a particular location. These requests are placed into a queue of jobs that OMS processes one at a time. Due to this, the best practice is to submit fewer requests with more items per call, rather than numerous requests with a small number of items each.

The maximum number of items that can be sent in one refresh request is 12000, and the total amount should be provided in intervals of 3000 when possible. Due to how OMS processes these jobs, a request with 6001 items is much less efficient than a request with 6000 items. For example, instead of sending 21000 individual requests with one item each, it would be best to send two calls with 12000 and 9000 items each. Submitting inventory this way reduces the possibility of a bottleneck caused by an overabundance of small jobs being submitted.

Note that unlike other OMS APIs, there are two endpoints that may be used. Each endpoint is associated with a different API key related to a package – either an “Inventory V5” or “Inventory Specific” package. The Inventory Specific package is the preferred endpoint to use, but some implementations may use Inventory V5 depending on their configuration.

Version5.0
Call – Inventory V5https://integration.shopatron.com/api/v5/inventory/refresh
Call – Inventory Specifichttps://integration.shopatron.com/inv/api/v5/inventory/refresh
Supported FormatsJSON
HTTP MethodPOST

An example use of the Inventory API follows below, or view the sample Postman Collection.

Example

The example case will refresh an inventory with the following properties:

  • Location named “Location 1”
  • Item 101010 refreshed with a quantity of 101

Required Parameters

Refreshing an order requires:

ParameterTypeDescription
locationNamestringName of the location to refresh items at. The minimum length is 1.
itemsarray List of items to refresh. The maximum length is 1000.

The items array is built as an object (/[object]) with the following parameters. The quantity and either partNumber, UPC, or SKU are required.

ParameterTypeDescription
partNumberstringThe product part number. The minimum length is 1.
upcstringThe product’s Universal Product Code. The minimum length is 1.
skustringThe product’s Stock Keeping Unit code. The minimum length is 1.
binIDintegerBin Location Identifier. The minimum value is “1”.
quantityintegerThe quantity of the product. The minimum value is “0”.
ltdnumberCustom field used for store prioritization.
floorintegerAbsolute minimum quantity of this item that should be in stock at any time.
safetyStockintegerQuantity of this item the location wants to keep in stock to ensure stock isn’t completely depleted.
currencyIDintegerThe currency identifier for the retailPrice.
retailPricenumberThe price of the item.
inventoryLocatorNamestringAn identifier to indicate where a particular SKU exists within a location. For example, “Aisle 5” would indicate that the bin this item belongs to is located in Aisle 5. The maximum length is 50.

Inventory Attributes

Some OMS configurations make use of inventory attributes, such as those that use inventory replenishment relationships. In this case, the Refresh Inventory API has been extended to take in attributes at the item level.  If the attributes indicated in the request do not exist in the current inventory map for the item, then they are added. If they do exist, then they are updated.

An item can have a maximum of 63 attributes. They must be provided in an array of strings, as per the example below.

"attributes": ["TEST1", "TEST2", "TEST3", "TEST6", "TEST7"]

The Full Request

This is the entire request that will refresh an inventory (without attributes).

{
 "locationName": "Location 1",
 "items": [
 {
  "partNumber": "101010",
  "sku": "101010",
  "quantity": "101"
 }]
}

The Full Response

The response will only return a jobID in the form of an integer.

{
 "jobID": 01234567
}