Inventory
Methods
Entity Properties
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.
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
- 0 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.
- 1 int|null
- Warehouse. If not specified, returned values represent sums of all warehouses.
- 2 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:
{
"jsonrpc" : 2.0,
"id" : 1234,
"method" : "call",
"params" : [
"be1c13ed4e03f0ed7f1e4053dfff9658",
"inventory.list",
[
["BlueWidget-1","BlueWidget-5"]
]
]
}
Get all inventory:
{
"jsonrpc" : 2.0,
"id" : 1234,
"method" : "call",
"params" : [
"be1c13ed4e03f0ed7f1e4053dfff9658",
"inventory.list"
]
}
Get all inventory for warehouse “2”:
{
"jsonrpc" : 2.0,
"id" : 1234,
"method" : "call",
"params" : [
"be1c13ed4e03f0ed7f1e4053dfff9658",
"inventory.list",
[
null,
2
]
]
}
Example Response
{
"jsonrpc" : 2.0,
"id" : 1234,
"result" : [
{
"sku" : "BlueWidget-1",
"qty_expected" : 0,
"qty_processed" : 0,
"qty_putaway" : 50,
"qty_available" : 22,
"qty_allocated" : 5,
"qty_reserved" : 16,
"qty_picked" : 1,
"qty_backordered" : 0,
"qty_advertised" : 22
},
{
"sku" : "BlueWidget-5",
"qty_expected" : 40,
"qty_processed" : 0,
"qty_putaway" : 0,
"qty_available" : 0,
"qty_allocated" : 0,
"qty_reserved" : 2,
"qty_picked" : 0,
"qty_backordered" : 5,
"qty_advertised" : 0
}
]
}
inventory.lots
inventory.lots (null|object $filters, array $options = [])
Retrieve list of lots by filters.
Parameters
- 0 null|object
- Filters to apply for the search.
- null - Retrieve list of all orders.
- object - Retrieve list of orders using specified “Search Filters”.
- 1 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
code | message |
---|---|
102 | Unexpected 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
- 0 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.
- 1 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",
"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"
},
{
"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"
},
{
"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"
}
]
},
{
"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",
"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"
},
{
"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"
},
{
"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"
}
]
}
]
}
Error Codes
code | message |
---|---|
102 | Unexpected error applying filters. |
Entity Properties
Inventory Item
sku |
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 |
The "Expected" quantity.
|
qty_processed |
The "Processed" quantity.
|
qty_putaway |
The "Put-Away" quantity.
|
qty_available |
The "Available" quantity.
|
qty_allocated |
The "Allocated" quantity.
|
qty_reserved |
The "Reserved" quantity.
|
qty_picked |
The "Picked" quantity.
|
qty_backordered |
The "Backordered" quantity. This quantity will not be present
for single-warehouse requests since backordered amounts are not
apportioned to specific warehouses.
|
qty_advertised |
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.
|
Lot Properties
lot_id |
The internal lot ID.
|
---|---|
is_active |
Flag whether lot is active.
|
sku |
The "SKU" property.
|
name |
The "Name" property.
|
lot_number |
The "Lot Number" property.
|
expiration_date |
The "Expiration Date" property.
|
origination_date |
The "Origination Date" property.
|
group_value |
The "Group Value" property.
|
created_at |
The "Created At" property in ISO 8601 format.
|
locations |
A list of locations.
|
qty_putaway |
The "Put-Away" quantity.
|
qty_available |
The "Available" quantity.
|
qty_reserved |
The "Reserved" quantity.
|