4Supported Entity Operations
Inventory
Link Serial Numbers
POST …/wms/lgfapi/v10/entity/inventory/{id}/link_serial_nbrs/
This operation is used to link one or more serial numbers to a single inventory record. The “id” value of the target inventory record is required in the URI.
Category | Parameter | Type | Required | Default | Description |
---|---|---|---|---|---|
options | serial_nbr_list | Array of Strings | X | A list of serial number strings to be linked to the target inventory record. |
Bulk Update Inventory Attributes
POST …/wms/lgfapi/v10/entity/inventory/bulk_update_inventory_attributes/
This operation is used to update the inventory attributes of one or more inventory objects. Inventory in a Received or Located IBLPN and inventory in an active location may be modified. Inventory history adjustment records will be written for each inventory record successfully modified.
The attributes individually are not necessarily required, but in total at least one attribute must be provided to indicate a change. Additionally, an attribute value may or may not be required as dictated by other configuration such as the corresponding item’s attribute requirements or the location allowing mixing of attributes. Furthermore, the inventory cannot be or have been allocated.
An empty string is a valid value to indicate removing the value from the corresponding attribute. Any attribute that is omitted from the request data will retain its current value.
The “parameters” section of the request body is required in addition to the “options” section outlined below. Only the “id” parameter filter is valid. It may be used as “id__in” with an array of values.
Category | Parameter | Type | Required | Default | Description |
---|---|---|---|---|---|
options | invn_attr_a | String | C | Target attribute value. | |
options | invn_attr_b | String | C | Target attribute value. | |
options | invn_attr_c | String | C | Target attribute value. | |
options | invn_attr_d | String | C | Target attribute value. | |
options | invn_attr_e | String | C | Target attribute value. | |
options | invn_attr_f | String | C | Target attribute value. | |
options | invn_attr_g | String | C | Target attribute value. | |
options | invn_attr_h | String | C | Target attribute value. | |
options | invn_attr_i | String | C | Target attribute value. | |
options | invn_attr_j | String | C | Target attribute value. | |
options | invn_attr_k | String | C | Target attribute value. | |
options | invn_attr_l | String | C | Target attribute value. | |
options | invn_attr_m | String | C | Target attribute value. | |
options | invn_attr_n | String | C | Target attribute value. | |
options | invn_attr_o | String | C | Target attribute value. | |
options | commit_frequency | Integer | 1 | 0 = Roll back on first error. 1 = Commit per object. |
Delink Serial Numbers
The Delink Serial Numbers API allows users to delink a list of serial numbers from an existing inventory in order for the system to write appropriate serial number records.
You can delink a serial number using the following POST request:
POST .../{version}/entity/inventory/{id}/delink_serial_nbrs/
Additional details for this API include:
- The delinking is successful for IBLPN and OBLPNs when the 'SERIAL_NUMBER_TRACKING_LEVEL' company parameter is set to 2.
- The delinking is successful for only OBLPNs when the 'SERIAL_NUMBER_TRACKING_LEVEL' company parameter is set to 1.
- The delink process is successful if the targeted inventory is non-decimal tracked.
- The system returns an error message if the targeted inventory is not linked with any serial number.
- The delink process is unsuccessful if the inventory associated with any LPN is either in Consumed, Shipped, Delivered, Cancelled, or Lost status.
- The corresponding serial number history for delinking is recorded in the SerialNbrHistoryView UI screen for serial numbers that are delinked from IBLPNs/OBLPNs/Active inventories.
Sample Data formatJSON
{ "options" : { "serial_nbr_list": [ "SN1", "SN2", "SN3" ] } }XML
<request> <options> <serial_nbr_list> <list-item>SN1</list-item> <list-item>SN2</list-item> <list-item>SN3</list-item> </serial_nbr_list> </options> </request>
Get Inventory History
The Inventory History API allows you to query inventory histories for default Companies and Facilities configured for the user. Previously, inventory history was not supported or exposed as an entity in lgfapi. Now, users can fetch the inventory history as an entity since it has been exposed to the lgfapi.
You can get inventory history details with paginated results using the following GET request:
GET....../entity/inventory_history
To fetch non-paginated result by specific 'ID':
GET....../entity/inventory_history/{id}
To fetch paginated result by query string parameters:
GET....../entity/inventory_history?key1=value1&key2=value2
To check for object existence or modification:
-
HEAD .../entity/inventory_history?key1=value1&key2=value2
-
HEAD .../entity/inventory_history/{id}
Query String Parameters
Since inventory history is a large table, to avoid performance issues, certain combinations of query string fields are required when querying using query parameters. One of the following combinations must be used (in addition to any other field):
- company_code, facility_code, group_nbr
- company_code, facility_code, history_activity_id, status_id
- company_code, facility_code, history_activity_id, item_code
- company_code, facility_code, history_activity_id, item_alternate_code
- company_code, facility_code, history_activity_id, container_nbr
Describe Entity
GET …/wms/lgfapi/v10/entity/{entity_name}/describe/
The describe operation is unique in that it is common and can be used on any entity. It returns a formatted representation of the entity’s metadata including any filterable “parameters” and all field definitions. This is the primary tool for obtaining details about a specific entity.
Response components:
- parameters – A list of fields that can be used for filtering of the entity.
- fields – Field definitions and metadata for the entity.
- type – The field data type
- allow_blank – String fields only. Is an empty string value permitted?
- max_length – String fields only. Max string length permitted.
- required – Does the field require data.
- default – If the fields is not required, the default value when no value is provided.
Location
These topics give descriptions for APIs that complete actions related to location in the Warehouse.
update_active_inventory
Regardless of the method used to identify the location, the following input is valid:
Category | Name | Type | Required | Description |
---|---|---|---|---|
options | item_barcode | String | C | Item identifier. |
options | item_code | String | C | Item identifier. |
options | item_alternate_code | String | C | Item identifier. |
options | adjustment_qty | Numeric | C | Non-zero adjustment quantity. |
options | actual_qty | Numeric | C | Non-negative final quantity. |
options | batch_nbr | String | N | Batch tied to target inventory. |
options | expiry_date | Date | N | Expiration date tied to target inventory. |
options | invn_attr_X | String | N | Attributes A-O tied to the inventory. |
options | reason_code | String | Y | Recorded on inventory history. |
options | transaction_ref_nbr | String | N | Recorded on inventory history. |
options | locn_capacity_check_flg | Boolean | N | Validate locations max units and volume? |
options | company_id | Integer | N | Item’s company. |
options | company_code | String | N | Item’s company’s code. |
- Only one of `item_barcode`, `item_code`, or `item_alternate_code` is allowed.
- Only one of `actual_qty` or `adjustment_qty` is allowed.
- If positive change in quantity:
- The provided `batch_nbr` will be created if it does not exist.
- Only one of `company_id` or `company_code` is allowed.
- Although not required by the API, the company context may be necessary if there is ambiguity when identifying the item to adjust. This is common in 3PL scenarios where the same identifying information may be present for different items across companies for which the user is eligible.
Location Lookup by ID
POST .../entity/location/{id}/update_active_inventory/
The caller knows the unique `id` value of the active location, which is added to the request URL. No additional `parameters` data is required from the request body.
Location Lookup by Filters
POST .../entity/location/update_active_inventory/
Category | Name | Type | Required | Description |
---|---|---|---|---|
parameters | barcode | String | Y | Location’s barcode. |
parameters | facility_id | Integer | N | Location’s facility. |
- Only a single location may be updated per request.
- The `__in` lookup is not supported for `barcode`.
- `facility_id` supports string lookup by `code` using the double-underscore notation:
- facility_id__code
{
"parameters": {
"facility_id__code": "FAC-1",
"barcode": "LOCN1"
},
"options": {
"item_barcode": "ITEM1234",
"adjustment_qty": -10,
"batch_nbr": "BATCH1234",
"expiry_date": "2020-01-02",
"invn_attr_a": "A",
"invn_attr_b": "B",
"reason_code": "RC",
"transaction_ref_nbr": "TX123457890",
"company_code": "COM-1"
}
}
Item
These topics give descriptions for APIs that complete actions related to items in the Warehouse.
Image Upload
The image_upload API allows you to update an image either by Item ID or Item by Filter.
Assumptions- Only one item may be updated per request.
- An error will be returned if no items are found.
- An error will be returned if more than one item is found.
Item by ID
POST .../entity/item/{id}/image_upload/
Item by Filters
POST .../entity/item/image_upload/
Supported Item Filter Attributes
The "parameters" section of the request body supports item filters when using this URL style.
- company_id (Required)
- This additionally allows filtering on company code: "company_id__code"
- barcode
- part_a
- part_b
- part_c
- part_d
- part_e
- part_f
- item_alternate_code
Example Request Body Parameters
{
"parameters": {
"company_id__code": "COM1",
"barcode": "ABC123"
}
}
Request Image Data
Regardless of which URL is used, the image data is passed in the request body's "options" section in the "image_data" key. Data is required to be base64 encoded.
Example Request body options:
{
"options": {
"image_data": "ABC123"
}
}
Trailer
These topics give descriptions for APIs that complete actions related to trailers and the Warehouse.
First Available
The first_available API allows you to identify yard locations with available capacity. After fetching this API, you will get the first yard location with capacity based on the yard location putaway sequence. If the putaway sequence is not configured, the fetch will display according to the yard location pick sequence. After you get the location, you can use the locate to yard API to update the trailer location to the yard.
Identify yard location by capacity:
GET .../entity/location/yard/first_available
Request
The following are the Query String Filters for this API:
Name | Required | Type | Default | Description |
facility_id | String | Facility context by id. | ||
facility_id__code | String | Facility context by code. | ||
- Only one of "facility_id" or "facility_id__code" is allowed per request.
- If no additional context is provided, the user's default facility/company will be used.
Example Requests
GET .../entity/location/yard/first_available?facility_id=1
The following is an example GET request for facility ID:
GET .../entity/location/yard/first_available?facility_id=1
The following is an example GET request for facility ID code:
GET .../entity/location/yard/first_available?facility_id_code=STRAJB01
locate_to_yard
The locate_to_yard API allows the caller to update a trailer’s location to or within the yard.
Regardless of the method used to identify the trailer, the following input is valid:
Category | Name | Type | Required | Description |
options | location_barcode | String | Y | Barcode of yard location. |
Trailer Lookup by ID
POST .../entity/trailer/{id}/locate_to_yard/
The caller knows the unique `id` value of the trailer, which is added to the request URL. No additional `parameters` data is required from the request body.
Example Request Body:
{
"options": {
"location_barcode": "LOCN-1"
}
}
Trailer Lookup by Filters
POST .../entity/trailer/locate_to_yard/
Category | Name | Type | Required | Description |
parameters | trailer_nbr | String | Y | Trailer number to be moved. |
parameters | company_id | Integer | N | Trailer’s company. |
- Only a single trailer may be moved per request.
- The `__in` lookup is not supported for `trailer_nbr`.
- `company_id` additionally supports string lookup by `code` using the double-underscore notation:
- company_id__code
{
"options": {
"location_barcode": "LOCN-1"
},
"parameters": {
"facility_id": 1,
"company_id__code": "COM-1",
"trailer_nbr": "TRLR-1"
}
}
remove_from_yard
The remove_from_yard API allows the caller to release a trailer from its current yard location.
Trailer Lookup by ID
POST .../entity/trailer/{id}/remove_from_yard/
The caller knows the unique `id` value of the trailer, which is added to the request URL. No additional `parameters` data is required from the request body.
Trailer Lookup by Filters
POST .../entity/trailer/remove_from_yard/
Category | Name | Type | Required | Description |
parameters | trailer_nbr | String | Y | Trailer number to be removed. |
parameters | facility_id | Integer | N | Trailer’s facility. |
parameters | company_id | Integer | N | Trailer’s company. |
- Only a single trailer may be moved per request.
- The `__in` lookup is not supported for `trailer_nbr`.
- `facility_id` and `company_id` both additionally support string lookup by `code` using the double-underscore notation:
- facility_id__code
- company_id__code
{
"parameters": {
"facility_id": 1,
"company_id__code": "COM-1",
"trailer_nbr": "TRLR-1"
}
}
check_in
The check_in API allows the caller to check-in an inbound or outbound load to a dock door.
Regardless of the method used to identify the load, the following input is valid:
Category | Name | Type | Required | Description |
options | dock_nbr | String | Y | Dock door for check-in. |
Load Lookup by ID
POST .../entity/load/{id}/check_in/
The caller knows the unique `id` value of the trailer, which is added to the request URL. No additional `parameters` data is required from the request body.
Example Request Body:
{
"options": {
"dock_nbr": "DOCK-1"
}
}
Load Lookup by Filters
POST .../entity/load/check_in/
Category | Name | Type | Required | Description |
parameters | load_nbr | String | Y | Load for check-in. |
parameters | facility_id | Integer | N | Load’s facility. |
parameters | company_id | Integer | N | Load’s company. |
- Only a single load may be moved per request.
- The `__in` lookup is not supported for `load_nbr`.
- `facility_id` and `company_id` both additionally support string lookup by `code` using the double-underscore notation:
- facility_id__code
- company_id__code
{
"parameters": {
"facility_id__code": "FAC-1",
"company_id__code": "COM-1",
"load_nbr": "LOAD-1"
},
"options": {
"dock_nbr": "DOCK-1"
}
}
check_out
The check_out API allows the caller to check-out an inbound or outbound load from a dock door.
Load Lookup by ID
POST .../entity/load/{id}/check_out/
The caller knows the unique `id` value of the trailer, which is added to the request URL. No additional `parameters` data is required from the request body.
Load Lookup by Filters
POST .../entity/load/check_out/
Category | Name | Type | Required | Description |
parameters | load_nbr | String | Y | Load for check-in. |
parameters | facility_id | Integer | N | Load’s facility. |
parameters | company_id | Integer | N | Load’s company. |
- Only a single load may be moved per request.
- The `__in` lookup is not supported for `load_nbr`.
- `facility_id` and `company_id` both additionally support string lookup by `code` using the double-underscore notation:
- facility_id__code
- company_id__code
Example Request Body:
{
"parameters": {
"facility_id__code": "FAC-1",
"company_id__code": "COM-1",
"load_nbr": "LOAD-1"
}
}
Ship Load
The Ship Load API allows you to ship a load by uploading the load via ID or filter.
Category | Name | Required | Type | Description |
parameters | load_nbr | X | string | Load for shipping |
parameters | facility_id | Integer | Facility context by id | |
parameters | facility_id__code | string | Facility context by code | |
parameters | company_id | Integer | Company context by id | |
parameters | company_id__code | string | Company context by code | |
Load Lookup by ID
POST .../entity/load/{id}/ship/
- No additional `parameters` data in the request body is required.
Load Lookup by Filters
POST .../entity/load/ship/
Example Request Body:
{
"parameters": {
"facility_id__code": "FAC-1",
"company_id__code": "COM-1",
"load_nbr": "LOAD-1"
}
}
This API includes the following features:
- Supports the ship load transaction for a load that is in the Loaded/ Loading Started /Checked Out status.
- An error is displayed if the load is in a "Cancelled", "Ship Load In Progress", or "Shipped" status.
- The shipload transaction can be performed either by providing the id or code for the company/facility along with the load number.
- A Ship Load confirmation file is generated after the load is shipped.
Once a load is shipped via the Ship Load API, the following applies to Inventory History Transaction (IHT) records:
- Inventory history IHT -3 '3 - Container Shipped' is written with respect to each container present on the load.
- For shipped loads with OBLPNs associated with asset inventory history, IHT- 58 '58 - Asset Shipped' is written with respect to each OBLPN associated with an asset.
- Inventory history IHT- 60 '60 - Load Shipped File' is written for the outbound Load shipped.
The Ship Load API supports the following validations:
Ship Load API supports Order type with ''Single Order on multiple Loads':
- If "Single Order on multiple Loads" is set to "Do not Allow" in the order type, the system displays the error message: "Load has Order/s marked to Prevent one order on different loads with Error."
- When an order is in Packed status but only some of the packed OBLPNs are loaded.
- When an order is in Packed status but some OBLPNs are loaded to different loads.
- For OBLPNs with pending audit if the Company parameter "ALLOW_LOAD_SHIP_WITH_AUDIT_PENDING" is set to no.
Company Parameter REQD_FIELDS_FOR_SHIPPING is defined:
- When the required fields configured for the parameter 'REQD_FIELDS_FOR_SHIPPING ' are not defined for the targeted load.
- When one of the container item on the load is serial number tracked and the number of serial numbers allocated do not match with the count of serial numbers present in the container.
Serial Number Validations
- If company parameter ALLOW_LOAD_SHIP_WITH_AUDIT_PENDING = False and company parameter SERIAL_NUMBER_TRACKING_LEVEL is 1 or 2
- If company parameter SERIAL_NUMBER_TRACKING_LEVEL is 0 or Non serial tracked items exist and company parameter ALLOW_LOAD_SHIP_WITH_AUDIT_PENDING = False
- This API will not show you any warning message like the UI or RF, and it will proceed with the Ship Load transaction.
- The Ship Load API does not generate multiple outbound files.
Container
These topics give descriptions for APIs that complete actions related to containers in the Warehouse.
The “iblpn” and “oblpn” entities are derived from the “container” entity and have access to all of the following entity operations, in addition to their own.
Get Sales Orders
GET …/wms/lgfapi/v10/entity/container/{id}/orders/
Returns a paginated representation of “order_hdr” entities for all sales order(s) allocated against the inbound or outbound container.
Lock Container
POST …/wms/lgfapi/v10/entity/container/{id}/lock/
Apply one or more inventory locks to the target inbound or outbound container.
Category | Parameter | Type | Required | Default | Description |
options | lock_code_list | Array of Strings | X | Inventory lock code(s) to be applied. |
Bulk Lock Container
POST …/wms/lgfapi/v10/entity/container/bulk_lock/
Apply one or more inventory locks to one or more inbound or outbound container(s).
The “parameters” section of the request body is required in addition to the “options” section outlined below. Only the “id” parameter filter is valid. It may be used as “id__in” with an array of values.
Category | Parameter | Type | Required | Default | Description |
options | lock_code_list | Array of Strings | X | Inventory lock(s) to be applied. | |
options | commit_frequency | Integer | 1 | 0 = Roll back on first error. 1 = Commit per object. |
Unlock Container
POST …/wms/lgfapi/v10/entity/container/{id}/unlock/
Remove one or more inventory locks to the target inbound or outbound container.
Category | Parameter | Type | Required | Description |
options | lock_code_list | Array of Strings | X | Inventory lock code(s) to be removed. |
Bulk Unlock Container
POST …/wms/lgfapi/v10/entity/container/bulk_unlock/
Remove one or more inventory locks from one or more inbound or outbound container(s).
The “parameters” section of the request body is required in addition to the “options” section outlined below. Only the “id” parameter filter is valid. It may be used as “id__in” with an array of values.
Category | Parameter | Type | Required | Default | Description |
options | lock_code_list | Array of Strings | X | Inventory lock(s) to be removed. | |
options | commit_frequency | Integer | 1 | 0 = Roll back on first error. 1 = Commit per object. |
Palletize Container
POST .../entity/container/{id}/palletize/
Allows you to palletize an Inbound or Outbound LPN.
The “parameters” section of the request body is required in addition to the “options” section outlined below. Only the “id” parameter filter is valid. It may be used as “id__in” with an array of values.
Category | Name | Required | Type | Description |
parameters | Container_nbr | X | String | IB or OB LPN to be linked. “_in” lookup is not supported. |
parameters | Facility_id | Integer | Container’s facility | |
Parameters | Company_id | Integer | Container’s company |
Example
{
"parameters": {
"facility_id": 1,
"company_id": 1,
"container_nbr": "LPN-1"
}
}
- Both `facility_id` and `company_id` also support filtering on `code` as well.
Category | Name | Required | Type | Description |
parameters | Facility_id | string | Container’s facility | |
Parameters | Company_id | string | Container’s company |
{
"parameters": {
"facility_id__code": "FAC-1",
"company_id__code": "COM-1",
"container_nbr": "OBLPN-1"
}
}
Functional Request Data
Category | Name | Required | Type | Default | Description |
options | pallet_nbr | X | string | Pallet number to be used for palletizing IB or OBLPN's. | |
options | pallet_position | string | Position of Inbound or OBLPN during palletization. | ||
options | allow_mix_pa_types_flg | boolean | False | whether to allow mixing of LPN's with different PA types on a single pallet. | |
options | allow_mix_dest_shipto | string | valid values to be passed are
|
{
"options": {
"pallet_nbr": "PLT001",
"pallet_position": "01",
"allow_mix_pa_types_flg": false
"allow_mix_dest_shipto": Ignore Ship To and Destination
}
}
Depalletize Inbound / Outbound LPN
Pick-Pack
These topics give descriptions for APIs that complete actions related to picking and packing in the Warehouse.
Pick Confirm
The Pick Confirm API allows you to perform cubed or non cubed picking.
This API supports features of the legacy API including the following new parameters:
- mhe_mode_flg - true/false; default true
- async_flg - true/false; default true
- short_flg - true/false; default false
- Replaces using the legacy "action_code" = "SHORT".
Pick Confirm API can be called using the following POST request:
POST ..lgfapi/v10/pick_pack/pick_confirm/Request Parameters
Pick List
These represent the parameters required for a single pick/short:
Name | Required | Type | Default | Description |
facility_id | Integer | Facility context by id. | ||
facility_id__code | String | Facility context by code. | ||
company_id | Integer | Company context by id. | ||
company_id___code | String | Company context by code. | ||
wave_nbr | X | String | Associated wave. | |
order_nbr | X | String | Associated sales order. | |
item_alternate_code | C | String | Item identifier. | |
item_barcode | C | String | Item identifier. | |
qty | X | Number | 0 | Quantity to be acted upon. |
batch_nbr | String | Inventory batch/lot. | ||
uom_qty | Number | Filter on Case or Pack quantity when searching for allocations. | ||
allocation_uom | String | "UNITS", "PACKS", or "CASES". | ||
reason_code | String | Reason for short. | ||
pick_location | C | String | From location. | |
from_container_nbr | C | String | From container. | |
to_container_nbr | C | String | LPN inventory is packed into. Not required for short. | |
update_inventory_on_short_flg | Boolean | False | Also short source inventory on pick short? | |
close_container_status | String | "packed" | Final OBLPN status: "picked" or "packed". | |
short_on_close_flg | Boolean | False | Should any remaining unpacked quantity shorted? | |
mhe_system_code | C | String | MHE system. | |
short_flg | Boolean | False | Is this a short? |
Validations
- Facility must be in user's eligible facilities and not be ambiguous.
- Possible if there is a Store and a DC with the same code.
- Company must be in user's eligible companies.
- If facility or company context is not included in the input parameters, user defaults are used.
- User cannot pass both "facility_id" and "facility_id__code" in the same request.
- User cannot pass both "company_id" and "company_id__code" in the same request.
- "mhe_system_code" is required if "mhe_mode_flg" is True.
- Only one of "item_alternate_code" or "item_barcode" is allowed.
- Only one of "pick_location" or "from_container_nbr" is allowed.
- "to_container_nbr" is required for "pick" operation, but is not required for "short".
Request-Level Flags
Name | Required | Type | Default | Description |
mhe_mode_flg | Boolean | True | When true, enforce that "mhe_system_code" is provided. | |
async_flg | Boolean | True | Run API asynchronously? |
The following is an example JSON request:
{
"mhe_mode_flg": false,
"async_flg": false,
"pick_list": [{
"facility_id__code": "FAC",
"company_id": 1,
"wave_nbr": "WAVE001",
"order_nbr": "ORDER001",
"item_barcode": "ITEM1234",
"qty": 10,
"from_container_nbr": "IBLPN0001",
"to_container_nbr": "OBLPN0001",
"short_flg": false
}]
}
The following is an example XML request:
<request>
<mhe_mode_flg>false</mhe_mode_flg>
<async_flg>false</async_flg>
<pick_list>
<list-item>
<facility_id__code>FAC</facility_id__code>
<company_id>1</company_id>
<wave_nbr>WAVE001</wave_nbr>
<order_nbr>ORDER001</order_nbr>
<item_barcode>ITEM1234</item_barcode>
<qty>10</qty>
<from_container_nbr>IBLPN0001</from_container_nbr>
<to_container_nbr>OBLPN0001</to_container_nbr>
<short_flg>false</short_flg>
</list-item>
</pick_list>
</request>
Close LPN
This API supports features of the legacy API including the following new parameter:
- async_flg - true/false; default true
Close LPN API can be called using the following POST request:
POST ..lgfapi/v10/pick_pack/close_lpn/
Request Parameters
The following table provides details about the query string parameters:
Name | Required | Type | Default | Description |
facility_id | Integer | Facility context by id. | ||
facility_id__code | String | Facility context by code. | ||
company_id | Integer | Company context by id. | ||
company_id__code | String | Company context by code. | ||
to_container_nbr | X | String | To OBLPN. | |
close_container_status | String | "packed" | Final OBLPN status: "picked" or "packed". | |
short_on_close_flg | Boolean | False | Should any remaining unpacked quantity shorted? | |
update_inventory_on_short_flg | Boolean | False | Also short source inventory on pick short? | |
reason_code | String | Reason for short. | ||
async_flg | Boolean | True | Run API asynchronously? |
The following is an example JSON request:
{
"facility_id__code": "FAC",
"company_id": 1,
"to_container_nbr": "OBLPN001",
"close_container_status": "picked",
"short_on_close_flg": true,
"async_flg": true
}
Wave Complete
The Wave Complete API replaces the legacy API when the action code is Complete. This is an indicator to inform WMS that all picks are completed for that wave, and there are no more picks outstanding.
This API supports features of the legacy API including the following new parameter:
- async_flg - true/false; default true
- When false:
- Instead of submitting a celery task at the end for later processing, it should be immediately processed and a response returned.
- On success, return a 204 - "No Content" HTTP response status with no response body.
- When true: Return HTTP response status 202 - "Accepted" with no response body.
- Signals that we received the request and it was successfully submitted for processing.
- When false:
The Wave Complete API can be called using the following POST request:
POST ..lgfapi/v10/pick_pack/wave_complete/
The following table provides details about the query string parameters:
Name | Required | Type | Default | Description |
facility_id | Integer | Facility context by id. | ||
facility_id__code | String | Facility context by code. | ||
company_id | Integer | Company context by id. | ||
company_id___code | String | Company context by code. | ||
wave_nbr | X | String | Associated wave. | |
update_inventory_on_short_flg | Boolean | False | Also short source inventory on pick short? | |
close_container_status | String | "packed" | Final OBLPN status: "picked" or "packed". | |
reason_code | String | Reason for short. | ||
mhe_system_code | String | MHE system. | ||
async_flg | Boolean | True | Run API asynchronously? |
The following is an example JSON request JSON:
{
"facility_id__code": "FAC",
"company_id": 1,
"wave_nbr": "WAVE001",
"update_inventory_on_short_flg": true,
"async_flg" true
}
Get Next Pick
The Get Next Pick REST API allows you to pick inventory based on the location pick sequence during picking from the Oracle WMS Cloud Mobile App or an external system using WMS APIs. This API follows the same underlying logic used in the text based Mobile RF picking transaction.
The Get Next Pick API should give one pick from allocation records based on the location pick sequence when there are multiple allocation records that exist for a given Order/OBLPN.
The following is a sample GET request for Get Next Pick:
- GET .../entity/allocation/get_next_pick
Sample request for get next pick based on OBLPN:
- GET .../entity/allocation/get_next_pick?container_nbr=
Sample request for get next pick based on Order Number:
- GET .../entity/allocation/get_next_pick?order_nbr=
Get Reponse:
- Get next pick should give information associated with the inventory that is getting picked including:
- Order Number : Order number against which the inventory is getting picked
- Destination Facility: For Store Order Destination facility associated with the order
- Customer Name: For Customer Order Customer name associated with the order
- IBLPN: IBLPN number from which the inventory that needs to picked
- OBLPN: OBLPN number in which the respective inventory is getting picked
- Location: Location from which the inventory is getting picked (Active/ Reserve)
- Item Code : Respective Item Code
- Item Alternate Code: Respective Alternate Item Code
- Inventory Attributes (A-O) : Attributes associated with the inventory.
- Batch Number: Batch number associated with the inventory.
- Expiry Date: Expiry date associated with the inventory.
- Quantity : Pending quantity that needs to be picked for respective allocation record (Allocated Qty - Packed Qty)
Task
These topics give descriptions for APIs that complete actions related to tasks in the Warehouse.
Next Task
The next_task API allows you to determine the next task via an API operation.
You can search for the next task using the following GET request:
GET .../entity/task/next_task
The following table provides details about the query string parameters:
Name | Required | Type | Default | Description |
facility_id | Integer | Facility context by id. | ||
facility_id__code | String | Facility context by code. | ||
location_barcode | String | User's current location. | ||
task_type | String | Required task type. | ||
ordering_rule | String | Order tasks by rule name. |
- If a value isn't provided, the user's default facility context will be used.
- Task look up is done relative to the user's facility and eligible company contexts.
- If provided, search for task within the same location area (if available) and/or pick sequence (if available).
- If provided, search for task only of the given type.
Ordering Rule
- If provided, order the found tasks by the corresponding field(s) and return the top result.
- The value accepted by the API is that of the Task Ordering Rule's description.
The following is an example GET request using location barcode:
GET .../entity/task/next_task?location_barcode=MY_LOCN_BRCD&task_type=MY_TASK_TYPE&ordering_rule=MY_RULE
IBLPN
These topics give descriptions for APIs that complete actions related to IBLPNs in the Warehouse.
The “iblpn” entity is derived from the “container” entity and therefore also has access to all of its entity operations, in addition to the following:
direct_consume
POST …/wms/lgfapi/v10/entity/iblpn/{id}/direct_consume/
Category | Parameter | Type | Required | Default | Description |
options | reason_code | String | X | Used for inventory history tracking. |
Consume a Received or Located IBLPN and update its inventory to zero. This will write IBLPN consumed inventory history records.
direct_consume
The `options` parameters, `transaction_ref_nbr`, may now be passed in the request body. This parameters will be added to any CNTR_CONSUMED inventory history records created as part of the API’s execution. The inventory history field `ref_code_3` will now be set as “TRN”. The value of `ref_value_3` will be that of `transaction_ref_nbr` or an empty string.
Category | Name | Type | Required | Description |
options | transaction_ref_nbr | String | N | Max length of 250 characters. |
Example Request Body:
{
"options": {
"reason_code": "IT",
"transaction_ref_nbr": "TX12345"
}
}
Composite Create
POST …/wms/lgfapi/v10/entity/iblpn/composite_create/
This operation allows for the creation of a Received or Located IBLPN along with one or more inventory records in a single request. Furthermore, it allows for the creating and/or association of the inventory’s corresponding batch and inventory attribute, where applicable. This API follows all of the same validations and extended actions, such as writing inventory history, as the standalone create (POST) APIs for each entity, but brings them together in a single API.
Furthermore, this API takes advantage of allowing for the input of nested data, such as batch and inventory attribute, which will allow for those objects to be created or retrieved if they already exist. The use of the related objects “id” value is still permitted as well. All objects must have the same facility and company context as the IBLPN being created, and must still pass all standard user eligibility validations.
This API also has unique data structure requirements that mimic those of the individual entity’s create (POST) field inputs. It also allows for the definition of a global context where “facility_id” and “company_id” may be defined at the top level of the data and inherited by each object, if not defined on the object.
Category | Parameter | Type | Required | Default | Description |
fields | facility_id | Integer | C | “id” value of Facility. Not required if defined on the IBLPN or per object. | |
fields | company_id | Integer | C | “id” value of Company. Not required if defined on the IBLPN or per object. | |
fields | iblpn | Dictionary | X | Field value definitions for the IBLPN being created. These are the same as if using a standalone POST request for creating an IBLPN. | |
fields | inventory | Array | X | A list of one or more inventory objects to be created and associated with the given IBLPN. | |
options | reason_code | String | X | Used for inventory history tracking. |
The following is an example of JSON request data where the facility/company context is defined at the top level and using the “id” values of “batch_number_id” and “invn_attr_id” to associate those objects that already exist. The defined top-level facility and company will be applied to the iblpn and inventory objects being created. The existing batch and inventory attribute objects being associated to the inventory must be of the same context.
{
"fields": {
"facility_id": 1,
"company_id": 1,
"iblpn": {
"container_nbr": "IBLPN000001",
"status_id": 30,
"curr_location_id": 28536
},
"inventory": [
{
"item_id": 1,
"curr_qty": 1.2345,
"batch_number_id": 1,
"invn_attr_id": 1
}
]
},
"options": {
"reason_code": "IT"
}
}
The following is an example of JSON request data where the facility/company context is defined per object and using the “id” values of “batch_number_id” and “invn_attr_id” to associate those objects that already exist. Also demonstrates creating multiple inventory records for different item/batch/attribute combinations in a single IBLPN:
{
"fields": {
"iblpn": {
"facility_id": 1,
"company_id": 1,
"container_nbr": "IBLPN000002",
"status_id": 10
},
"inventory": [
{
"facility_id": 1,
"item_id": 1,
"curr_qty": 1.2345,
"batch_number_id": 1,
"invn_attr_id": 1
},
{
"facility_id": 1,
"item_id": 2,
"curr_qty": 10,
"batch_number_id": 2,
"invn_attr_id": 2
}
]
},
"options": {
"reason_code": "IT"
}
}
The following is an example of JSON request data where the facility/company context is defined at the top level and the “id” values of “batch_number_id” and “invn_attr_id” have been replaced with nested objects to create and associate those objects, which may or may not already exist:
{
"fields": {
"facility_id": 1,
"company_id": 1,
"iblpn": {
"container_nbr": "IBLPN000003",
"status_id": 10
},
"inventory": [
{
"item_id": 3,
"curr_qty": 1,
"batch_number_id": {
“batch_nbr”: “BATCH001”,
“item_id”: 3,
“expiry_data”: “2019-01-01”
},
"invn_attr_id": {
“invn_attr_a”: “A”,
“invn_attr_b”: “B”,
“invn_attr_c”: “C”
}
}
]
},
"options": {
"reason_code": "IT"
}
}
modify_item_qty
The IBLPN modify_item_qty API allows the caller to adjust item inventory in a “Received” or “Located” IBLPN. You can only update a single IBLPN and item per request.
Regardless of the method used to identify the IBLPN, the following input is valid:
Category | Name | Type | Required | Description |
options | item_barcode | String | C | Item identifier. |
options | item_alternate_code | String | C | Item identifier. |
options | adjustment_qty | Numeric | Y | Non-zero adjustment quantity. |
options | batch_nbr | String | N | Batch tied to target inventory. |
options | expiry_date | Date | N | Expiration date tied to target inventory. |
options | invn_attr_X | String | N | Attributes A-O tied to the inventory. |
options | reason_code | String | Y | Recorded on inventory history. |
options | transaction_ref_nbr | String | N | Recorded on inventory history. |
- Only one of `item_barcode` or `item_alternate_code` is allowed.
- IBLPN inventory matching is restrictive and does not support wildcard searches:
- If no `batch_nbr` is provided, only match IBLPN inventory without a batch.
- If no `expriy_date` is provided, only match IBLPN inventory without expiration.
- If no `invn_attr_X` value is provided for A-O, it will be treated as blank.
IBLPN Lookup by ID
POST .../entity/iblpn/{id}/modify_item_qty/
Caller knows the unique `id` value of the IBLPN, which is added to the request URL. No additional `parameters` data is required from the request body.
IBLPN Lookup by Filters
POST .../entity/iblpn/modify_item_qty/
Category | Name | Type | Required | Description |
parameters | container_nbr | String | Y | IBLPN to be adjusted. |
parameters | facility_id | Integer | N | IBLPN’s facility. |
parameters | company_id | Integer | N | IBLPN’s company. |
- Only a single IBLPN may be moved per request.
- The `__in` lookup is not supported for `container_nbr`.
- `facility_id` and `company_id` both additionally support string lookup by `code` using the double-underscore notation:
- facility_id__code
- company_id__code
{
"parameters": {
"facility_id__code": "FAC-1",
"company_id ": 2,
"container_nbr": "IBLPN1234"
},
"options": {
"item_barcode": "ITEM1234",
"adjustment_qty": -10,
"batch_nbr": "BATCH1234",
"expiry_date": "2020-01-02",
"invn_attr_a": "A",
"invn_attr_b": "B",
"reason_code": "RC",
"transaction_ref_nbr": "TX123457890"
}
}
OBLPN
The “oblpn” entity is derived from the “container” entity and therefore also has access to all of its entity operations, in addition to the following.
mark_delivered
POST …/wms/lgfapi/v10/entity/oblpn/{id}/mark_delivered/
Updates a Shipped OBLPN to Delivered status and writes container delivered inventory history.
create_from_iblpn
The OBLPN create_from_iblpn API allows you to create an OBLPN in Outbound Ready status and allocate inventory from a designated IBLPN in a single request. Additionally allows the caller to trigger packing of the OBLPN.
POST .../entity/oblpn/create_from_iblpn/
Assumptions
- All allocation data must have the same facility and company context as the OBLPN.
- Allocations may be for multiple sales orders from multiple IBLPNs for different items as long as the facility/company context is consistent with the created OBLPN.
- Sales order status will be recalculated on success.
- IBLPN status will be recalculated on success.
- Inventory history is only written if the OBLPN is packed.
Request Body Data
The request body data utilizes the 3 categories in the following ways:
- `fields` – The initial data required to create the OBLPN.
- `parameters` – List of data defining allocations.
- `options` – Additional functional data.
OBLPN Fields Data
The OBLPN’s initial data is defined in the `fields` section of the request under the `oblpn` key. This is similar to the request body data requirements when creating an LPN directly through the entity’s create mechanism.
Supported fields:
Name | Type | Required | Description |
facility_id | Integer | Y | OBLPN’s facility. |
company_id | Integer | Y | OBLPN’s company. |
container_nbr | String | Y | OBLPN’s container number. |
curr_location_id | Integer | N | OBLPN’s location. |
lpn_type_id | Integer | N | Associated LPN Type. |
length | Numeric | N | OBLPN’s length dimension. |
width | Numeric | N | OBLPN’s width dimension. |
height | Numeric | N | OBLPN’s height dimension. |
- If providing `lpn_type_id` - `length`, `width`, and `height` are not valid.
Example Request Body:
"fields": {
"oblpn": {
"facility_id": 1,
"company_id": 1,
"container_nbr": "OBLPN-1",
"lpn_type_id": 5
}
}
Allocation Parameters Data
Allocation data is defined in the `parameters` section of the request in the `allocations` key. The data is a list of objects, each linking one sales order detail to one IBLPN for the given inventory and quantity. An order detail or IBLPN may be referenced across multiple allocation definitions within the same request. Each of the following allocation scenarios is supported:
- Single order detail from single IBLPN.
- Single order detail from multiple IBLPNs.
- Multiple order details from single IBLPN.
- Multiple order details from multiple IBLPNs.
Category | Name | Type | Required | Description |
allocations | order_nbr | String | Y | Sales order identifier. |
allocations | iblpn_nbr | String | Y | IBLPN identifier. |
allocations | qty | Numeric | Y | Non-zero quantity to allocate. |
allocations | order_dtl | Object | Y | Nested object identifying the sales order detail. |
- Sales order status must be less than “Packed”.
- IBLPN status must be “Received”, “Located”, or “Partially Allocated” and have the necessary available unallocated quantity.
The nested `order_dtl` object requires one of two definitions in order to identify the sales order detail.
Identify Sales Order Detail by Sequence Number
If the order detail’s unique sequence number is known to the user, this may be provided in the request and is the only piece of data necessary to identify the correct detail for the given sales order number.
Category | Name | Type | Required | Description |
order_dtl | seq_nbr | Integer | C | Sales order detail’s unique sequence number. |
"parameters": {
"allocations": [
{
"order_nbr": "ORDER-1",
"order_dtl": {
"seq_nbr": 1
},
"iblpn_nbr": "IBLPN-1",
"qty": 1
}
]
}
Identify Sales Order Detail by Attributes
The sales order detail may also be identified by its attributes. At least one of the following pieces of information is required. If more than one order detail is identified, an error will be returned. Additionally, this is a restrictive search in that any omitted data will not be treated as a wildcard.
- If no `batch_nbr` is provided, only match order detail(s) without a batch.
- If no `invn_attr_X` value is provided for A-O, it will be treated as blank.
Category | Name | Type | Required | Description |
order_dtl | item_barcode | String | C | Item identifier. |
order_dtl | item_alternate_code | String | C | Item identifier. |
order_dtl | batch_nbr | String | N | Batch identifier. |
order_dtl | invn_attr_X | String | N | Attributes A-O tied to the order detail. |
"parameters": {
"allocations": [
{
"order_nbr": "ORDER-2",
"order_dtl": {
"item_barcode": "ITEM2",
"batch_nbr": "BATCH-1",
"invn_attr_a": "A",
"invn_attr_b": "B"
},
"iblpn_nbr": "IBLPN-2",
"qty": 2
}
]
}
Additional Options Data
Functional request data in the `options` section:
Category | Name | Type | Required | Description |
options | pack_flg | Boolean | N | Pack the OBLPN? (Default = False) |
- OBLPN will be routed regardless of the `pack_flg` value.
- If `pack_flg` = True:
- OBLPN will be updated to “Packed” status.
- The created allocations will be completed.
- The sales order detail(s) will be updated.
- OBLPN’s final weight and volume will be calculated.
- Inventory history will be written.
Example Request Body:
"options": {
"pack_flg": true
}
Full Request Body Example:
The following example would create a packed OBLPN allocated from two different IBLPNs for the same order.
{
"fields": {
"oblpn": {
"facility_id": 1,
"company_id": 1,
"container_nbr": "OBLPN-1"
}
},
"parameters": {
"allocations": [
{
"order_nbr": "ORDER-1",
"order_dtl": {
"seq_nbr": 1
},
"iblpn_nbr": "IBLPN-1",
"qty": 2
},
{
"order_nbr": "ORDER-1",
"order_dtl": {
"item_barcode": "ITEM-1",
"batch_nbr": "BATCH-1",
"invn_attr_a": "A",
"invn_attr_o": "O"
},
"iblpn_nbr": "IBLPN-2",
"qty": 5.52
}
]
},
"options": {
"pack_flg": true
}
}
Link OBLPN with asset
POST …/wms/lgfapi/v10/entity/oblpn/{id}/link_asset
links asset (reusable tote) to oblpn.
Assumptions- Only one OBLPN may be linked to one asset per request.
- OBLPN must be within user's eligible facilities/companies.
Request Body Data
The request body data utilizes the 3 categories in the following ways:
- `parameters` – allows user to identify the specific oblpn
- `options` – Additional functional data.
Parameters
Category | Name | Type | Required | Description |
---|---|---|---|---|
Parameters | container_nbr | String | Y | OBLPN to be linked. "__in" lookup is not supported |
Parameters | facility_id | Integer | Container's facility. | |
Parameters | company_id | Integer | Container's company. |
Example Request Body:
{
"parameters": {
"facility_id": 1,
"company_id": 1,
"container_nbr": "OBLPN-1"
}
}
Note: Both facility id and company id also support filtering on “code”.
Additional Options Data
Functional request data in the `options` section:
Category | Name | Type | Required | Description |
---|---|---|---|---|
options | asset_nbr | String | Y | Asset to be linked. May be created as part of this API. |
options | asset_seal_nbr | String | Optionally tracked seal number. | |
Options | replace_container_nbr_with_asset_flg | boolean | Rename OBLPN to match asset upon linking? | |
options | validate_lpn_type_flg | boolean | Validate the LPN type of the OBLPN with the LPN type of the asset |
{
"options": {
"asset_nbr": "ASSET-01",
"asset_seal_nbr": "SEAL-001",
"replace_container_nbr_with_asset_flg": true
"validate_lpn_type_flg": true
}
}
- If the Asset already exists in the system, then it will be made "In Use" status and update the Asset OBLPN field with the corresponding OBLPN, Destination field with the OBLPN destination of the linked OBLPN and Seal Nbr field with corresponding seal nbr passed in the API
- If Original OBLPN is renamed while interfacing (i.e. when "replace_container_nbr_with_asset"= true), system will update the following:
- Populate OBLPN field with the Asset Nbr,
- Destination field with the OBLPN destination
- Seal Nbr field with corresponding seal nbr passed in the API
- OBLPN type in the Asset table will not get updated with the OBLPN type of the OBLPN
- If the Asset interfaced is new, then a new record is created in the Asset UI with the status "In Use" with corresponding OBLPN, Seal and destination.
- If the Original OBLPN is renamed with Asset nbr while interfacing (i.e. when "replace_container_nbr_with_asset"= true), system updates the OBLPN field with the Asset Nbr, Destination field with the Original OBLPN's destination and Seal Nbr field with corresponding seal nbr passed in the interface
- If the OBLPN is already linked to an asset and another Asset Nbr is passed in the interface for linking with OBLPN, the original asset number needs to be updated back to status "In-warehouse" while the new asset number is updated back to status "In-use".
- In case if the OBLPN is already linked to an asset/seal and another seal nbr is passed in the API, then update the seal nbr field with the corresponding seal.
- If the Asset interfaced in the API is new to the system, then a new record is created in the Asset table
- The fields "asset_nbr" and "asset_seal_nbr" is updated with corresponding data in the oblpn.
- If Original OBLPN is replaced with Asset Nbr while interfacing (i.e. when "replace_container_nbr_with_asset"= true), system should update the Container table as mentioned below:
- LPN Nbr is updated with the Asset Nbr
- Asset Nbr and Asset Seal Nbr is updated with the corresponding value passed in the API
- OBLPN Type field is not updated with the OBLPN type of the Asset
- "Ref OBLPN Nbr" field is updated with original OBLPN Nbr
- The following Inventory History records are created:
- IHT 57 - Asset Received – This record is not written if the Asset interfaced in the API is new to the system
- IHT 31- OB Container Modified is written if the OBLPN is renamed with Asset Nbr while linking.
Pallet
These topics give descriptions for APIs that complete actions related to Pallets in the Warehouse.
Sort LPN
The Sort LPN API allows you to sort an LPN to a Pallet in a sort location mimicking what the RF Inbound Sorting process does. The RF modules include: RF Sort LPN, and RF Inbound Sort Location.
You can sort an LPN to a pallet in a sort location with the following POST request:
POST .../entity/pallet/sort_lpn/
The following table provides details about the Input Parameters/Filters used to identify the target pallet:
Name | Required | Type | Default | Description |
---|---|---|---|---|
facility_id | integer | Facility context by id. | ||
facility_id__code | string | Facility context by code. | ||
company_id | integer | Company context by id. | ||
company_id___code | string | Company context by code. | ||
pallet_nbr | X | string | Target sort pallet. |
- The pallet will be created if it doesn't exist.
- The requesting user's default facility/company context will be assumed if overrides are not provided.
Functional Options
Name | Required | Type | Default | Description |
---|---|---|---|---|
container_nbr | X | string | LPN being sorted to pallet. | |
sort_zone | X | string | Destination sort zone. | |
sort_location_barcode | X | string | Destination sort location. | |
sort_to_inventory | string | "pallet-call-directed-putaway" | Sort method. | |
allow_received_status_flg | boolean | False | Allow sorting of IBLPN in Received status. | |
allow_picked_status_flg | boolean | False | Allow sorting of OBLPNs in Picked status. |
- Default valid LPN statuses:
- Located
- Allocated
- Packed
The following is an example body for Sort LPN to Pallet:
{
"parameters": {
"facility_id": 1,
"company_id__code": "FOO",
"pallet_nbr": "PALLET001"
},
"options": {
"container_nbr": "LPN001",
"sort_zone": "ZONE01",
"sort_location_barcode": "BRCD001",
"sort_to_inventory": "pallet-call-directed-putaway"
}
}
Response Status
- 204 - No content
- Operation successfully completed.
- 400 - Validation error
- 500 - Internal server error
Sort LPN Close Pallet
The Sort LPN/Close Pallet API is used as part of the inbound sorting process which groups LPNs to pallets in sort locations. This API mimics the RF IB Sort LPN module which calls the Sort LPN Close IB Pallet back end entry point with parameters.
You can Sort LPNs and Close Pallet with the following POST requests:
POST .../entity/pallet/close_inbound_sorting/
POST .../entity/pallet/{id}/close_inbound_sorting/
The following table provides details about the Input Parameters/Filters used to identify the target pallet:
Name | Required | Type | Default | Description |
---|---|---|---|---|
facility_id | integer | Facility context by id. | ||
facility_id__code | string | Facility context by code. | ||
company_id | integer | Company context by id. | ||
company_id___code | string | Company context by code. | ||
pallet_nbr | X | string | Target sort pallet. |
- The pallet will be created if it doesn't exist.
- The requesting user's default facility/company context will be assumed if overrides are not provided.
The following table details the functional options:
Name | Required | Type | Default | Description |
---|---|---|---|---|
create_replen_task_flg | boolean | True | Generate a replenishment task on close? | |
task_type_description | string | Required type description for generated replen task. Valid when create_replen_task_flg = True. |
Default valid LPN statuses:
- Located
- Allocated
- Packed
The following is an example body for Create Replenishment Task Flag:
{
"parameters": {
"facility_id": 1,
"company_id__code": "FOO",
"pallet_nbr": "PALLET001"
},
"options": {
"create_replen_task_flg": true,
"task_type_description": "My Task Type"
}
}
Response
Response Status:
- 204 - No content
- Operation successfully completed.
- 400 - Validation error
- 500 - Internal server error
Replenishment
These topics give descriptions for APIs that complete actions related to Replenishment in the Warehouse.
Replenish to Active
The replenish_to_active API allows you to complete an open replenishment task for an active location.
You can replenish to active with the following POST request:
POST .../lgfapi/v10/replenishment/replenish_to_active/
Parameters
The following table provides details about the Input Parameters/Filters:
Name | Required | Type | Default | Description |
---|---|---|---|---|
facility_id | integer | Facility context by id. | ||
facility_id__code | string | Facility context by code. | ||
company_id | integer | Company context by id. | ||
company_id___code | string | Company context by code. | ||
- Used if the replenishment is in a context other than the requesting user's default.
- The requesting user's default facility/company context will be assumed if values are not provided.
- Either "facility_id" or "facility_id__code" may be used, but not both.
- Either "company_id" or "company_id___code" may be used, but not both.
The following table details the functional options:
Name | Required | Type | Default | Description |
---|---|---|---|---|
task_id | C | integer | "id" of task to be completed. | |
task_id__task_nbr | C | string | Business key for task to be completed. | |
replen_location_id | C | integer | "id" of active location to be replenished. | |
replen_location_id__barcode | C | string | Barcode of active location to be replenished | |
qty | decimal | Allocation Qty | Quantity to replenish. |
- Either "task_id" or "task_id__task_nbr" is required.
- Either "replen_location_id" or "replen_location_id__barcode" is required.
- If 'qty' is not provided, the full allocation quantity of the associated allocation will be used.
- If 'qty' is provided, it must be greater than 0.
The following is an example body for Replenish Location ID Barcode:
{
"facility_id" 1,
"company_id__code": "COMPANY",
"task_id": 1,
"replen_location_id__barcode": "LOCN1"
}
Sales Order Header
These topics give descriptions for APIs that complete actions related to Sales Orders in the Warehouse.
Get IBLPN(s)
GET …/wms/lgfapi/v10/entity/order_hdr/{id}/iblpns/
Returns a paginated representation of all IBLPN(s) allocated to the sales order.
GET OBLPN(s)
GET …/wms/lgfapi/v10/entity/order_hdr/{id}/oblpns/
Returns a paginated representation of all OBLPN(s) allocated to the sales order.
Bulk Lock
POST …/wms/lgfapi/v10/entity/order_hdr/bulk_lock/
This operation is used to apply, and optionally create, an order lock to one or more orders.
The number of orders that can be modified by this operation in a single requests is configured by the value of the requesting user’s “Rows per Page” attribute.
The “parameters” section of the request body is required in addition to the “options” section outlined below. One or more parameters are used to determine the order(s) for which the operation will be applied. The allowed filter parameters are:
- 'id'
- 'order_nbr'
- 'facility_id'
- 'company_id'
- 'erp_source_hdr_ref'
- 'erp_source_system_ref'
- 'orderdtl__erp_source_line_ref'
- 'orderdtl__erp_source_shipment_ref'
- 'orderdtl__ship_request_line'
Category | Parameter | Type | Required | Default Value | Description |
---|---|---|---|---|---|
options | lock_code | String | X | Order lock to be applied. | |
options | lock_description | String | Value of lock_code | Description of order lock. Only used when creating a new order lock. | |
options | comments | String | “” | Additional info for the order’s applied lock. | |
options | allow_allocate_flg | Boolean | False | Order lock attribute. Only used when creating a new order lock. | |
options | autocreate_lock_flg | Boolean | False | When true, the order lock will be created in addition to be applied, if it does not already exist. | |
options | commit_frequency | Integer | 0 | 0 = Roll back on first error. 1 = Commit per object. |
Bulk Unlock
POST …/wms/lgfapi/v10/entity/order_hdr/bulk_unlock/
This operation is used to remove an order lock from one or more orders.
The “parameters” section of the request body is required in addition to the “options” section outlined below. One or more parameters are used to determine the order(s) for which the operation will be applied. The allowed filter parameters are:
- 'id'
- 'order_nbr'
- 'facility_id'
- 'company_id'
- 'erp_source_hdr_ref'
- 'erp_source_system_ref'
- 'orderdtl__erp_source_line_ref'
- 'orderdtl__erp_source_shipment_ref'
- 'orderdtl__ship_request_line'
Category | Parameter | Type | Required | Default Value | Description | |
---|---|---|---|---|---|---|
options | lock_code | String | X | Order lock to be removed. | ||
options | commit_frequency | Integer | 0 | 0 = Roll back on first error. 1 = Commit per object. |
These topics give descriptions for APIs that complete actions related to Printing in the Warehouse.
Print Shipping Label
GET.../wms/lgfapi/v10/print/label/shipping/?label_designer_code=foo
Returns the ZPL representation of the label
POST .../wms/lgfapi/v10/print/label/shipping
Submits the label for printing
The “parameters” section of the request body is required in addition to the “options” section outlined below. One or more parameters are used to determine the order(s) for which the operation will be applied.
Category | Name | Type | Required | GET Request | POST Request | Comments |
---|---|---|---|---|---|---|
options | label_designer_code | string | X | X | X | Label designer template to be printed |
options | printer_name | string | X | Default's to cwuser.default_label_printer. | ||
options | label_count | integer | X | Number of labels to print. Must be greater than 0. Default = 1. |
API Filters
Functions like a bulk operation for identifying one or more IBLPN(s) to be printed: id Including "in" lookup
- facility_id
- company_id
- container_nbr
- Including "in" lookup
Example Query String for GET
GET.../wms/lgfapi/v10/print/label/shipping/?label_designer_code=foo&facility_id__code=FAC1&company_id__code=COM1&container_nbr=IBLPN1
Example Request Body for POST
{
"parameters": {
"facility_id__code": "FAC1",
"company_id__code": "COM1",
"container_nbr": "IBLPN1"
},
"options": {
"label_designer_code": "label_1",
"printer_name": "PRINTER1",
"label_count": 1
}
}
Response Body Data
On success, a 200 - OK status is returned.
The standardized bulk response body is returned. This will have aggregate information for all IBLPN(s) processed as well as the counts and any details.
For a GET request, the ZPL data bill be base64 encoded in the "data" section.
{
"record_count": 2,
"success_count": 1,
"failure_count": 1,
"data": {
"IBLPN_1": "VGhpcyBpcyBaUEwgY29kZQ=="
},
"details": {
"IBLPN_2": "Some error message."
}
}
Print LPN Label
GET.../wms/lgfapi/v10/print/label/ib_container/?label_designer_code=foo
Returns the ZPL representation of the label.
POST .../wms/lgfapi/v10/print/label/ib_container
Submits the label for printing.The “parameters” section of the request body is required in addition to the “options” section outlined below. One or more parameters are used to determine the order(s) for which the operation will be applied.
Category | Name | Type | Required | GET Request | POST Request | Comments |
---|---|---|---|---|---|---|
options | label_designer_code | string | X | X | X | Label designer template to be printed |
options | printer_name | string | X | Default's to cwuser.default_label_printer. | ||
options | label_count | integer | X | Number of labels to print. Must be greater than 0. Default = 1. |
- Functions like a bulk operation for identifying one or more IBLPN(s) to be printed:
- id
- Including "in" lookup
- facility_id
- company_id
- container_nbr
- Including "in" lookup
- id
Example Query String for GET
GET.../wms/lgfapi/v10/print/label/ib_container/?label_designer_code=foo&facility_id__code=FAC1&company_id__code=COM1&container_nbr=LPN1
{
"parameters": {
"facility_id__code": "FAC1",
"company_id__code": "COM1",
"container_nbr": "OBLPN1"
},
"options": {
"label_designer_code": "label_1",
"printer_name": "PRINTER1"
}
}
Response Body Data
On success, a 200 - OK status is returned
For a GET request, the ZPL data bill be base64 encoded in the "data" section.
{
"record_count": 2,
"success_count": 1,
"failure_count": 1,
"data": {
"IBLPN_1": "VGhpcyBpcyBaUEwgY29kZQ=="
},
"details": {
"IBLPN_2": "Some error message."
}
}
Print Pallet Label
GET.../wms/lgfapi/v10/print/label/pallet/?label_designer_code=foo
Returns the ZPL representation of the label
POST .../wms/lgfapi/v10/print/label/pallet
Submits the label for printing
The “parameters” section of the request body is required in addition to the “options” section outlined below. One or more parameters are used to determine the order(s) for which the operation will be applied.
Category | Name | Type | Required | GET Request | POST Request | Comments |
---|---|---|---|---|---|---|
options | label_designer_code | string | X | X | X | Label designer template to be printed |
options | printer_name | string | X | Default's to cwuser.default_label_printer. | ||
options | label_count | integer | X | Number of labels to print. Must be greater than 0. Default = 1. |
- Functions like a bulk operation for identifying one or more IBLPN(s) to be printed:
- id
- Including "in" lookup
- facility_id
- company_id
- container_nbr
- Including "in" lookup
- id
Example Query String for GET
GET.../wms/lgfapi/v10/print/label/pallet/?label_designer_code=foo&facility_id__code=FAC1&company_id__code=COM1&pallet_nbr=pallet1
{
"parameters": {
"facility_id__code": "FAC1",
"company_id__code": "COM1",
"pallet_nbr": "pallet1"
},
"options": {
"label_designer_code": "label_1",
"printer_name": "PRINTER1"
}
}
Response Body Data
On success, a 200 - OK status is returned
For a GET request, the ZPL data bill be base64 encoded in the "data" section.
{
"success_count": 1,
"failure_count":0,
"data": {
"OBLPN_1": "VGhpcyBpcyBaUEwgY29kZQ=="
}
}
Report
These topics give descriptions for APIs that complete actions related to Reporting in the Warehouse.
Custom Inventory Summary
Allows you to execute the custom inventory summary report for only a single item per request. This request returns the result set as a file attached to the response.
If output format is pipe-delimited, use the following:
GET.../report/custom_inventory_summary/?facility_id__code=FAC1&company_id__code=COM1&item_code=ITEM1
If output format is XML use the following:
GET.../report/custom_inventory_summary.xml?item_code=<item_code>&company_id=<company_id>&facility_id=<facility_id>
The “parameters” section of the request body is required in
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
facility_id | integer | C | Required facility context. | |
facility_id__code | string | C | Required facility context. | |
company_id | integer | C | Required company context. | |
company_id__code | string | C | Required company context. | |
item_code | string | X | Specific item for the report. | |
write_header_line_flg | boolean | False | Include the header line with field names? |
- Either `facility_id` or `facility_id__code` is required
- Either `company_id` or company_id__code` is required
Company Parameter
POST .../entity/company_parm
This operation is used to add single or multiple company parameters.
If you have a new facility and you want to copy the same Company Parameters from your current facility, you can first GET the list by querying the company_parm entity, then POST the applicable data to this operation for the target facility.
Example body request
{
"fields": {
"company_id": 1,
"parm_key": "TEST_PARM_001",
"parm_value": "test"
}
}
Facility Parameter
POST .../entity/facility_parm
This operation is used to add single or multiple facility parameters.
If you have a new facility and you want to copy the same facility parameters from your current facility, you can first GET the list by querying the facility_parm entity, then POST the applicable data to this operation for the target facility.
Example body request
{
"fields": {
"facility_id": 1,
"prog_key": "FACILITY_PARM",
"parm_key": "TEST_PARM_001",
"parm_value": "test"
}
}
Location Size Type
POST .../entity/location_size_type
This operation is used to add single or multiple location size types.
If you have a new facility and you want to copy the same location size type from your current facility, you can first GET the list by querying the location_size_type entity, then POST the applicable data to this operation for the target facility.
Example body request
{
"fields": {
"company_id": 1,
"size_type": "TEST_SIZE_001",
"description": "Test Size 001"
}
}
Putaway Priority
This operation allows you to determine the order in which Putaway Types are triggered for putaway.
POST .../entity/putaway_priority
If you have a new facility and you want to copy the same Putaway Priority rules from your current facility, you can first GET the list by querying the putaway_priority entity, then POST the applicable data to this operation for the target facility.
Example body request:
{
"fields": {
"facility_id": 1,
"priority": 1,
"putaway_type_id": 256860,
"putaway_method_id": 1,
"putaway_search_mode_id": 0,
"locn_type_id": 3,
"locn_size_type_id": 0,
"replenishment_zone_id": 35995,
"consider_fefo_flg": false,
"radius": 1,
"radial_increment": 1
}
}
Putaway Type
POST .../entity/putaway_type
This operation is used to add single or multiple putaway type.
If you have a new facility and you want to copy the same putaway type from your current facility, you can first GET the list by querying the putaway_type entity, then POST the applicable data to this operation for the target facility.
Example body request:
{
"fields": {
"company_id": 1,
"pa_type": "TEST_PA_001",
"description": "Test PA 001",
"pallet_position_required_flg": false,
"depalletize_on_putaway_flg": false
}
}
Putaway Type Calculation Rule
POST .../entity/putaway_type_calc_rule
This operation is used to add single or multiple putaway type cal rules.
If you have a new facility and you want to copy the same putaway type cal rule from your current facility, you can first GET the list by querying the putaway_type_cal entity, then POST the applicable data to this operation for the target facility.
Example body request:
{
"fields": {
"facility_id": 1,
"company_id": 1,
"description": "TEST-001",
"priority": 1,
"final_putaway_type_id": 256860,
"sql_selection_id": 76886,
"enabled_flg": true
}
}
Replenishment Zone
POST .../entity/replenishment_zone
This operation is used to add one or more replenishment zones.
If you have a new facility and you want to copy the same replenishment zones from your current facility, you can first GET the list by querying the replenishment_zone entity, then POST the applicable data to this operation for the target facility.
Example body request
{
"fields": {
"facility_id": 1,
"code": "TEST_RZ_001",
"description": "Test RZ 001"
}
}
SQL Selection (Rule Tree)
POST .../entity/sql_selection
This entity is unique in that the API will allow the user to create the entire rule tree in a single request instead of needing the create and link each parent/child object individually (it can still be done this way if the user chooses to do so). This is accomplished using the `children` list field. This is an abstract field that does not exists on the object itself, but rather defines the `parent_id` link, which will be handled by the API automatically.
To illustrate a complex example, the following request body could be used to create this rule structure as seen from the UI:
Example body request
{
"fields": {
"facility_id": 1,
"sql_operator_id": 2,
"children": [
{
"column_name_id": 107,
"sql_operator_id": 5,
"column_value": "B"
},
{
"sql_operator_id": 1,
"children": [
{
"column_name_id": 1379,
"sql_operator_id": 7,
"column_value": "100"
},
{
"column_name_id": 35,
"sql_operator_id": 7,
"column_value": "50"
}
]
}
]
}
}
Item Image
Currently the full representation of item GET does not include the item image ('image_data') since that can be large. However if a request specifies the `fields` query string parameter and the 'image_data' field is specified, we will return the field and value.
This will return the id and image data for one or more items.
GET .../entity/item/?fields=id,image_data
This will return the id and image data for a specific item.
GET .../entity/item/{id}/?fields=id,image_data
The 'fields` parameter may still be combined with other filters per normal functionality:
GET .../entity/item/?fields=id,image_data&barcode=ITEM123&...