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:
- Barcodes — one or more barcode values (EAN, UPC, etc.) for scanning during warehouse operations
- Lots — batch/lot tracking for traceability (e.g., pharmaceutical, food)
- Serial numbers — individual unit tracking for high-value or regulated items
- Expiration dates — lot-level expiration for FEFO (First Expired, First Out) management
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.
{
"externalCode": "PHARMA-001",
"description": "Ibuprofen 400mg x 30",
"barcode": "8412345678901",
"withLots": true
}
{
"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.
{
"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 |
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.
{
"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:
- Idempotency key. Creating a product or document with the same
externalCodetwice returns a409 Conflict, preventing duplicates. - Cross-system reference. Use your ERP's order number, SKU code, or internal ID as the
externalCodeto maintain a direct mapping between systems. -
Simplified lookups. Retrieve any resource directly by its
externalCodeviaGET /api/external/v1/{resource}/{externalCode}, without needing to know the WMS internal ID.
externalCode that does not exist, the API returns a
404 error with the key nonExistingProduct.
- Try the Quickstart: Query Stock tutorial
- Learn about the Document Lifecycle
- See the Enum Reference for stock movement types