Skip to main content
ShipStream tracks each merchant’s inventory at all times using the following statuses:
  • Expected - Listed on open ASNs, RMAs and Other Deliveries that have not yet been received.
  • Processed - Counted on an ASN, RMA or Other Delivery but not yet put-away.
  • Put-Away - Has been received on an ASN, RMA or Other Delivery that has not yet been committed to the inventory. If you have auto-commit enabled this should always be 0.
  • Available - Available for new orders. Backordered amounts are not reflected as a negative Available amount but are tracked separately as “Backordered”.
  • Allocated - Allocated to existing orders but not yet Reserved.
  • Reserved - Reserved to a specific shelf location and waiting to be picked.
  • Picked - Picked from the shelves but not yet shipped.
  • Backordered - Reserved by existing orders but not in stock. Will be automatically converted to Reserved when stock is added. Backordered quantities are not reflected in the Available amount as a negative number.
  • Advertised - The “Available” quantity plus the virtual BOM quantity. The virtual BOM quantity is controlled by a product’s “Virtual Inventory” attribute.
Additionally, products have two flags that can be set which will affect whether or not they are retrieved in an inventory request.
  • Status - Enabled/Disabled - If “Disabled”, the product is effectively deleted and will not appear in responses to inventory requests.
  • Visibility - Visible/Not Visible - If “Not Visible”, the product will not appear in the inventory list but may still be ordered via the Merchant Panel.

Methods


Entity Properties


inventory.list

inventory.list (string|array|null $skus, int|null $warehouseId, string|null $updatedSince) Get inventory levels for one or more products by SKU. If a warehouse is not specified the sum of all warehouse inventories will be returned, otherwise the inventory levels for the specified warehouse will be returned.

Parameters

skus
string | array | null
SKUs. If not specified then inventory for all SKUs will be returned.
  • string - Get inventory for a single product by SKU.
  • array - Get inventory for the specified products by SKU.
  • null - Get inventory for all products.
warehouseId
integer | null
Warehouse. If not specified, returned values represent sums of all warehouses.
updatedSince
string | null
Return only SKUs updated since the time specified in the format 2008-07-01T22:38:07+00:00.

Return Value

An array of Inventory Items or an empty array if there were no matching SKUs.

Example Request

Get inventory for two SKUs:
Request
{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "method" : "call",
    "params" : [
        "be1c13ed4e03f0ed7f1e4053dfff9658",
        "inventory.list",
        [
            ["BlueWidget-1","BlueWidget-5"]
        ]
    ]
}
Get all inventory:
Request
{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "method" : "call",
    "params" : [
        "be1c13ed4e03f0ed7f1e4053dfff9658",
        "inventory.list"
    ]
}
Get all inventory for warehouse “2”:
Request
{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "method" : "call",
    "params" : [
        "be1c13ed4e03f0ed7f1e4053dfff9658",
        "inventory.list",
        [
            null,
            2
        ]
    ]
}

Example Response

Response
{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "result" : [
        {
            "sku" : "BlueWidget-1",
            "qty_expected"    : "0.0000",
            "qty_processed"   : "0.0000",
            "qty_putaway"     : "50.0000",
            "qty_available"   : "22.0000",
            "qty_allocated"   : "5.0000",
            "qty_reserved"    : "16.0000",
            "qty_picked"      : "1.0000",
            "qty_backordered" : "0.0000",
            "qty_advertised"  : "22.0000",
            "qty_on_hand"     : "94.0000"
        },
        {
            "sku" : "BlueWidget-5",
            "qty_expected"    : "40.0000",
            "qty_processed"   : "0.0000",
            "qty_putaway"     : "0.0000",
            "qty_available"   : "0.0000",
            "qty_allocated"   : "0.0000",
            "qty_reserved"    : "2.0000",
            "qty_picked"      : "0.0000",
            "qty_backordered" : "5.0000",
            "qty_advertised"  : "0.0000",
            "qty_on_hand"     : "2.0000"
        }
    ]
}

inventory.lots

inventory.lots (null|object $filters, array $options = []) Retrieve list of lots by filters.

Parameters

filters
null | object
Filters to apply for the search.
  • null - Retrieve list of all orders.
  • object - Retrieve list of orders using specified “Search Filters”.
options
null | object
Options to apply for the search.
  • null - No options will be applied.
  • object - Apply specified “Search Options”.

Return Value

An array of objects. Each object will contain Lot Properties.

Example Request

{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "method" : "call",
    "params" : [
        "be1c13ed4e03f0ed7f1e4053dfff9658",
        "inventory.lots",
        [
            {
                "lot_id" : {
                    "in" : [1, 2]
                }
            },
            []
        ]
    ]
}

Example Response

{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "result" : {
       "results": [
           {
               "lot_id": "1",
               "lot_number": "2018-07-09",
               "origination_date": "2018-07-09",
               "expiration_date": "2019-04-07",
               "is_active": "1",
               "group_value": "2018-07-09",
               "created_at": "2018-07-09T19:58:23+00:00",
               "sku": "product1",
               "name": "product 1",
               "locations": [
                   "location 1"
               ],
               "qty_putaway": "0.0000",
               "qty_available": "76.0000",
               "qty_reserved": "0.0000"
           },
           {
               "lot_id": "2",
               "lot_number": "2018-07-09",
               "origination_date": "2018-07-09",
               "expiration_date": "2019-04-11",
               "is_active": "1",
               "group_value": "2018-07-09",
               "created_at": "2018-07-09T19:59:03+00:00",
               "sku": "product2",
               "name": "product 2",
               "locations": [],
               "qty_putaway": "0.0000",
               "qty_available": "0.0000",
               "qty_reserved": "0.0000"
           }
       ],
       "totalCount": 2,
       "numPages": 1
   }
}

Error Codes

codemessage
102Unexpected error applying filters.

inventory.detailed

inventory.detailed (string|array|null $skus, string|null $updatedSince) Get global and per-warehouse inventory levels for one or more products by SKU.

Parameters

skus
string | array | null
SKUs. If not specified then inventory for all SKUs will be returned.
  • string - Get inventory for a single product by SKU.
  • array - Get inventory for the specified products by SKU.
  • null - Get inventory for all products.
updatedSince
string | null
Return only SKUs updated since the time specified in the format 2008-07-01T22:38:07+00:00.

Return Value

An array of detailed items inventory, or an empty array if there were no matching SKUs.

Example Request

{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "method" : "call",
    "params" : [
        "be1c13ed4e03f0ed7f1e4053dfff9658",
        "inventory.detailed",
        [
            ["BlueWidget-1","BlueWidget-5"],
            "2014-07-24T18:51:18+00:00"
        ]
    ]
}

Example Response

{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "result" : [
        {
            "sku": "BlueWidget-1",
            "qty_expected": "0.0000",
            "qty_processed": "0.0000",
            "qty_putaway": "0.0000",
            "qty_available": "8.0000",
            "qty_allocated": "0.0000",
            "qty_reserved": "0.0000",
            "qty_picked": "2.0000",
            "qty_backordered": "0.0000",
            "qty_advertised": "8.0000",
        "qty_on_hand": "10.0000",
            "detailed": [
                {
                    "warehouse_id": "1",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "8.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "2.0000",
                    "qty_advertised": "8.0000",
                    "qty_on_hand": "10.0000"
                },
                {
                    "warehouse_id": "2",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "0.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "0.0000",
                    "qty_advertised": "0.0000",
                    "qty_on_hand": "0.0000"
                },
                {
                    "warehouse_id": "3",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "0.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "0.0000",
                    "qty_advertised": "0.0000",
                    "qty_on_hand": "0.0000"
                }
            ]
        },
        {
            "sku": "BlueWidget-5",
            "qty_expected": "0.0000",
            "qty_processed": "0.0000",
            "qty_putaway": "0.0000",
            "qty_available": "98.0000",
            "qty_allocated": "0.0000",
            "qty_reserved": "0.0000",
            "qty_picked": "1.0000",
            "qty_backordered": "0.0000",
            "qty_advertised": "98.0000",
            "qty_on_hand": "99.0000",
            "detailed": [
                {
                    "warehouse_id": "1",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "98.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "1.0000",
                    "qty_advertised": "98.0000",
                    "qty_on_hand": "99.0000"
                },
                {
                    "warehouse_id": "2",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "0.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "0.0000",
                    "qty_advertised": "0.0000",
                    "qty_on_hand": "0.0000"
                },
                {
                    "warehouse_id": "3",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "0.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "0.0000",
                    "qty_advertised": "0.0000",
                    "qty_on_hand": "0.0000"
                }
            ]
        }
    ]
}

Error Codes

codemessage
102Unexpected error applying filters.

inventory.detailed_packaging

inventory.detailed_packaging (string|array|null $skus, string|null $updatedSince) Get global and per-warehouse inventory levels for Packaging Features by SKU. This method is similar to inventory.detailed but returns only Packaging Feature types (Container, Supplies, and Infill) that can have inventory. Regular products and other Packaging Feature types are excluded from the results.

Parameters

skus
string | array | null
SKUs. If not specified then inventory for all Packaging Feature SKUs will be returned.
  • string - Get inventory for a single Packaging Feature by SKU.
  • array - Get inventory for the specified Packaging Features by SKU.
  • null - Get inventory for all Packaging Features (Container, Supplies, and Infill).
updatedSince
string | null
Return only SKUs updated since the time specified in the format 2008-07-01T22:38:07+00:00.

Return Value

An array of detailed Packaging Feature inventory, or an empty array if there were no matching SKUs. Only Packaging Feature types (Container, Supplies, and Infill) are included in the response.

Example Request

{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "method" : "call",
    "params" : [
        "be1c13ed4e03f0ed7f1e4053dfff9658",
        "inventory.detailed_packaging",
        [
            ["PB1688","PB16816"],
            "2014-07-24T18:51:18+00:00"
        ]
    ]
}

Example Response

{
    "jsonrpc" : 2.0,
    "id" : 1234,
    "result" : [
        {
            "sku": "PB1688",
            "qty_expected": "50.0000",
            "qty_processed": "0.0000",
            "qty_putaway": "0.0000",
            "qty_available": "150.0000",
            "qty_allocated": "0.0000",
            "qty_reserved": "0.0000",
            "qty_picked": "0.0000",
            "qty_backordered": "0.0000",
            "qty_advertised": "150.0000",
            "qty_on_hand": "150.0000",
            "detailed": [
                {
                    "warehouse_id": "1",
                    "qty_expected": "50.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "100.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "0.0000",
                    "qty_advertised": "100.0000",
                    "qty_on_hand": "100.0000"
                },
                {
                    "warehouse_id": "2",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "50.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "0.0000",
                    "qty_advertised": "50.0000",
                    "qty_on_hand": "50.0000"
                }
            ]
        },
        {
            "sku": "PB16816",
            "qty_expected": "0.0000",
            "qty_processed": "0.0000",
            "qty_putaway": "0.0000",
            "qty_available": "200.0000",
            "qty_allocated": "0.0000",
            "qty_reserved": "0.0000",
            "qty_picked": "0.0000",
            "qty_backordered": "0.0000",
            "qty_advertised": "200.0000",
            "qty_on_hand": "200.0000",
            "detailed": [
                {
                    "warehouse_id": "1",
                    "qty_expected": "0.0000",
                    "qty_processed": "0.0000",
                    "qty_putaway": "0.0000",
                    "qty_available": "200.0000",
                    "qty_allocated": "0.0000",
                    "qty_reserved": "0.0000",
                    "qty_picked": "0.0000",
                    "qty_advertised": "200.0000",
                    "qty_on_hand": "200.0000"
                }
            ]
        }
    ]
}

Error Codes

codemessage
102Unexpected error applying filters.

Entity Properties

Inventory Item

sku
string
A unique identifier for a product. The SKU does appear on the packing slip. It is recommended that this be human-readable and end with a per-pack quantity to facilitate proper receiving. For example, a single blue widget may be “BlueWidget-1” and a pack of 5 blue widgets may be “BlueWidget-5”. Maximum character length is 64.
qty_expected
integer
The “Expected” quantity.
qty_processed
integer
The “Processed” quantity.
qty_putaway
integer
The “Put-Away” quantity.
qty_available
integer
The “Available” quantity.
qty_allocated
integer
The “Allocated” quantity.
qty_reserved
integer
The “Reserved” quantity.
qty_picked
integer
The “Picked” quantity.
qty_backordered
integer
The “Backordered” quantity. This quantity will not be present for single-warehouse requests since backordered amounts are not apportioned to specific warehouses.
qty_advertised
integer
The “Advertised” quantity. This is the “Available” quantity plus the virtual BOM quantity. The virtual BOM quantity is controlled by a product’s “Virtual Inventory” attribute.
qty_on_hand
integer
The Quantity On Hand is qty_processed + qty_putaway + qty_available + qty_allocated + qty_reserved + qty_picked

Lot Properties

lot_id
integer
The internal lot ID.
is_active
integer
Flag whether lot is active.
sku
string
The “SKU” property.
name
string
The “Name” property.
lot_number
string
The “Lot Number” property.
expiration_date
string
The “Expiration Date” property.
origination_date
string
The “Origination Date” property.
group_value
string
The “Group Value” property.
created_at
string
The “Created At” property in ISO 8601 format.
locations
array
A list of locations.
qty_putaway
string
The “Put-Away” quantity.
qty_available
string
The “Available” quantity.
qty_reserved
string
The “Reserved” quantity.