Product & Stock Management

Managing products, lots, barcodes, and stock levels.

Product Structure

A product in LogisticsWMS represents a physical item stored in the warehouse. Each product is identified by an externalCode (your system's SKU or product ID) and can include:

Lot Tracking

If your product requires lot-level traceability, set withLots: true when creating the product. Once enabled, you can specify a lotCode on document lines to associate received or shipped quantities with specific lots.

Creating a lot-tracked product
{
  "externalCode": "PHARMA-001",
  "description": "Ibuprofen 400mg x 30",
  "barcode": "8412345678901",
  "withLots": true
}
Document line with lot
{
  "externalCode": "PHARMA-001",
  "quantity": 1000,
  "lineNumber": 1,
  "lotCode": "LOT-2026-A",
  "expirationDate": "2028-06-30"
}

Serial Number Tracking

For products that require individual unit tracking, set withSerialNumbers: true. Serial numbers are captured during warehouse reception and included in webhook payloads when the reception closes.

Creating a serial-tracked product
{
  "externalCode": "ELECTRONICS-001",
  "description": "Smartphone Model X",
  "barcode": "1234567890123",
  "withSerialNumbers": true
}

Stock Concepts

LogisticsWMS tracks stock across several dimensions. Understanding these fields is essential for accurate inventory synchronization.

Field Definition Formula
bulk Units stored loose in picking locations, ready for immediate picking -
containers Units stored in containers (pallets, boxes) in reserve or buffer locations -
existence Total physical stock in the warehouse bulk + containers
reservedShipping Units allocated to pending shipping orders (not yet dispatched) -
available Stock available for new orders existence - reservedShipping
E-commerce integration tip Use the available field to synchronize your storefront's available-to-sell quantity. This value already accounts for pending shipments.

Querying Stock

Use the stock endpoint to query current inventory levels for one or more products.

POST /api/external/v1/product/stock
{
  "externalCodes": ["ERP-SKU-001", "ERP-SKU-002"]
}

Request Filters

Filter Required Description
externalCodes Yes Array of product external codes to query stock for

The response includes stock totals at the product level, broken down by lot (if lot-tracked), and a list of recent stock movements.

The externalCode Pattern

The externalCode is the cornerstone of the External API. It serves three purposes:

Important Products must be created before they can be referenced in document lines. If you attempt to create a document with a product externalCode that does not exist, the API returns a 404 error with the key nonExistingProduct.
Next steps