Orders

Orders are a group of items that are picked or put into the storage system. When creating and updating orders, the changes need to be verified and updated asynchronously by PowerPick.

Attributes

  • name string LIMIT: 50

    Name of the order.

  • id uuid

    Unique identifier of the order.

  • countEmptyLocations boolean

    For count orders only. Determines if locations with that material at a quantity of 0 should be included in the count.

    Default value: false

  • deadline dateTime

    Date by which the order must be completed.

  • directionType integer/string

    The type of order. Can use integer or string.

    Possible values:

    1 or "put"
    2 or "pick"
    3 or "return"
    4 or "transport"
    5 or "count"
    7 or "production"

    Default value: 2 (pick)

  • hasStock integer

    If there is enough stock to fulfill the order.

    Possible values:

    0 = False
    1 = True

  • incompleteAllocations integer

    If there are any failed allocations.

  • Info1 string LIMIT: 80

    A generic field for custom use.

  • Info2 string LIMIT: 80

    A generic field for custom use.

  • Info3 string LIMIT: 80

    A generic field for custom use.

  • Info4 string LIMIT: 80

    A generic field for custom use.

  • Info5 string LIMIT: 80

    A generic field for custom use.

  • initialHandlingUnit string LIMIT: 50

    Sets the initial handling unit value (i.e. tote/container/cart number) for all order lines rather than entering manually for each one. The handling unit can be updated during order processing.

  • modifedDate datetime

    The date/time this order was last modified. This will either be the creation date if it is still queued, or the processed date.

  • modifedDate string LIMIT: 50

    Unique name for the order.

  • order_lines array

    (See "Order Lines" in reference.)

  • priority integer

    Order priority level.

    Possible values:

    1 = Low
    2 = Medium
    3 = High
    4 = Hot (if included)

    Default value: 2 (Medium)

  • recipient string LIMIT: 50

    Used in a transfer order. The recipient given will be assigned as the new owner of the material during the put.

  • stationName string LIMIT: 50

    Name of the station the order is assigned to.

  • status string

    Order status type.

    Possible values:

    "Untouched"
    "Ready for Allocation" (when reverted from "Is Allocated")
    "Is Allocated"
    "In Process" (order is imported but not fully picked/put)
    "processed" (order is fulfilled)

    Default value: Untouched

  • storageUnits

    Storage unit(s) where the order is designated to be processed.

  • type integer

    Order creation/origin type. Automatically determined.

    Possible values:

    0 = NotSet
    1 = External
    2 = ExtManaged
    3 = Internal
    4 = Manual
    5 = Auto

  • unit string LIMIT: 50

    Used with batches.

  • warehouseName string LIMIT: 50

    Name of the warehouse the order belongs in.

  • [dynamicField] string LIMIT: 1999

    Any of the dynamic order fields from PowerPick. Requires ItemPath's Custom Fields app.

Endpoints

List Orders /api/orders
get

Get a list of orders from the PPG database. View the guide on adding filters to List API calls.

Body Parameters

  • deadline datetime

    Date by which the order must be completed. Like all date arguments, a [gt], [lt], [lte], for [gte] can be prefixed.

  • directionType integer/string

    The type of order. Can use integer or string.

    Possible values:

    1 or "put"
    2 or "pick"
    3 or "return"
    4 or "transport"
    5 or "count"
    7 or "production"

  • hasStock integer

    If there is enough stock to fulfill the order.

    Possible values:

    0 = False
    1 = True

  • Info1 string

    Information field 1 of the order.

  • Info2 string

    Information field 2 of the order.

  • Info3 string

    Information field 3 of the order.

  • Info4 string

    Information field 4 of the order.

  • Info5 string

    Information field 5 of the order.

  • modifiedDate datetime

    The date/time this order was last modified. This will either be the creation date if it is still queued, or the processed date. Like all date arguments, a [gt], [lt], [lte], for [gte] can be prefixed.

  • name string

    The name of the order.

  • priority integer

    Order priority level.

    Possible values:

    1 = Low
    2 = Medium (default)
    3 = High
    4 = Hot (if included)

  • stationName string

    Name of the station the order is assigned to.

  • status string

    Order status type.

    Possible values:

    "Untouched"
    "Ready for Allocation" (when reverted from "Is Allocated")
    "Is Allocated"
    "In Process" (order is imported but not fully picked/put)
    "processed" (order is fulfilled)

  • storageUnits array

    Storage unit(s) where the order is designated to be processed.

  • type integer

    Order creation/origin type. Automatically determined.

    Possible values:

    0 = NotSet
    1 = External
    2 = ExtManaged
    3 = Internal
    4 = Manual
    5 = Auto

  • warehouseName string

    Name of the warehouse this order belongs in.

  • [dynamicField]

    Any dynamic fields that have been set up can be used as a filter. Requires ItemPath's Custom Fields app.

  • countOnly boolean

    When "true", will only return a count of the amount of items in the query.

    Default value:

    false

  • limit integer

    A limit on the number of objects to be returned. Limit can range between 1 and 1000.

    Default value:

    250

  • page integer

    Page-numbering is based on the value of the "limit" argument. If limit=20, then page=0 will display the hits from 1 to 20. (Page numbers are zero-based.) Using page without a limit returns all items.

  • orderBy string, array

    Order the response by the selected field. Multiple values can be passed, separated by a comma.

Request with curl
-d 'curl -L 
-X GET '[subdomain.itempath.com or IP]/api/orders?limit=1&directionType=5' 
-H 'Content-Type: application/json' 
-H 'Authorization: Bearer [Your JWT Access Token]''
Example Response
{
    "orders": [
        {
            "Info1": "True",
            "Info2": "31",
            "Info3": "V1",
            "Info4": null,
            "Info5": "50",
            "deadline": null,
            "directionType": 5,
            "handlingUnit": null,
            "hasStock": true,
            "id": "DF175F21-FFA1-4DD1-A3AE-FA605121D9BD",
            "incompleteAllocations": 0,
            "modifiedDate": "2023-05-02T17:20:32.490000",
            "name": "Example Count Order",
            "order_lines": [
                {
                    "Info1": "BOLT",
                    "Info2": "VLM2",
                    "Info3": null,
                    "Info4": "1",
                    "Info5": "235299111",
                    "costCenterName": null,
                    "id": "57B5D8FE-72C0-48CE-8D68-AFF11A2E0458",
                    "lot": null,
                    "materialName": "S102",
                    "number": 1,
                    "quantity": 0.0,
                    "serialNumber": null,
                    "storageUnits": []
                }
            ],
            "owner": "sys",
            "priority": 4,
            "recipient": null,
            "stationName": null,
            "status": "Untouched",
            "storageUnits": [],
            "type": 1,
            "unit": null,
            "warehouseName": "Warehouse"
        }
    ]
}
Create Order /api/orders
post

Create an order and get a response. An array of at least one Order Line is required. For fields on the Order Lines level, click here. If location details are passed in at both the order and line level, then the line location details will be used.

Body Parameters

  • name string LIMIT: 50
    REQUIRED

    The unique order name/number.

    Default value:

    incrementing

  • order_lines array
    REQUIRED

    Any amount of order lines related to this order (see Order Lines for more information on fields).

  • allocate boolean

    Whether this order should be allocated when imported.

    Possible values:

    true, false

    Default value:

    false

  • carriers array

    A list of carriers that this order line can be picked or put from. Either an ID or name is required.

    Possible values:

    Example: [{"id": "66AFE69B-695E-469F-9E73-C416A12B727E"}, {"name": "01"}]

  • countEmptyLocations boolean

    For count orders only. Determines if locations with that material at a quantity of 0 should be included in the count. Permanent locations must be set up with PowerPick.

    Possible values:

    true, false

    Default value:

    false

  • deadline dateTime

    Date by which the order must be completed.

  • directionType integer/string

    The type of order. Can use integer or string.

    Possible values:

    1 or "put"
    2 or "pick"
    3 or "return"
    4 or "transport"
    5 or "count"
    7 or "production"

    Default value:

    2 (pick)

  • Info1 string LIMIT: 80

    A generic field for custom use.

  • Info2 string LIMIT: 80

    A generic field for custom use.

  • Info3 string LIMIT: 80

    A generic field for custom use.

  • Info4 string LIMIT: 80

    A generic field for custom use.

  • Info5 string LIMIT: 80

    A generic field for custom use.

  • initialHandlingUnit string LIMIT: 50

    Sets the initial handling unit value (i.e. tote/container/cart number) for all order lines rather than entering manually for each one. The handling unit can be updated during order processing.

  • locations array

    A list of locations that this order line can be picked or put from. Either an ID or name is required.

    Possible values:

    Example: [{"id": "8B3E44C1-EA03-4F2D-A514-EF5B7AE2BF89"}, {"name": "VLM 1/01/01"}]

  • owner string LIMIT: 50

    Used in a transfer order. The owner will be replaced by the given recipient, which will be assigned as the new owner of the material during the put.

  • priority integer

    Order priority level.

    Possible values:

    1 = Low
    2 = Medium
    3 = High
    4 = Hot (if included)

    Default value:

    2 (Medium)

  • recipient string LIMIT: 50

    Used in a transfer order. The recipient given will be assigned as the new owner of the material during the put.

  • shelves array

    A list of shelves that this order line can be picked or put from. Either an ID or name is required.

    Possible values:

    Example: [{"id": "7142BF15-38BD-4971-BCB2-D890DDA9CC32"}, {"name": "01/01"}]

  • storageUnits array

    A list of storage units that this order line can be picked or put from. Either an ID or name is required.

    Possible values:

    Example: [{"id": "3276A9F6-7CE5-4924-A02B-FD8304D7C3A1"},{"id": "18E22E33-11CA-4712-AECF-7A29123C88A5"}, {"name": "VLM 1"}]

  • unit string LIMIT: 50

    Used with batches.

  • warehouseName string LIMIT: 50

    The name of the Warehouse this order will be associated with. If no warehouse name or id is given, it will use the warehouse associated with the current station.

  • warehouseId uuid

    The id of the Warehouse this order will be associated with. Cannot be used with warehouseName.

  • zones array

    A list of zones that this order line can be picked or put from. Either an ID or name is required.

    Possible values:

    Example: [{"id": "9B937196-FBDC-4462-9D15-E60A7EEB5FA7"}, {"name": "Zone 1"}]

  • [dynamicField] string LIMIT: 1999

    Any of the dynamic order fields from PowerPick. Requires ItemPath's Custom Fields app.

Request with curl
curl "http://[subdomain.itempath.com or IP]/api/orders" \ -X post \ -H "Content-Type: application/json" \ -H "Authorization: Bearer [Your JWT Access Token]" \
-d '{
    "name": "Example Put Order",
    "directionType": "1",
    "allocate": false,
    "order_lines": [
        {
            "materialId": "8395D795-EA64-49EA-BFEE-708F4E5B2700",
            "batchName": "0000205856",
            "quantity": 1,
            "Info1": "PC",
            "serialNumber": "0000205856"
        }
    ]
}'
Example Response
{
    "order": {
        "Info1": null,
        "Info2": null,
        "Info3": null,
        "Info4": null,
        "Info5": null,
        "deadline": null,
        "directionType": 1,
        "handlingUnit": null,
        "hasStock": true,
        "id": "7C01E5A8-275E-44D7-AD16-A6C335668EB6",
        "incompleteAllocations": 0,
        "modifiedDate": "2023-10-17T14:22:15.133000",
        "name": "Example Put Order",
        "order_lines": [
            {
                "Info1": "PC",
                "Info2": null,
                "Info3": null,
                "Info4": null,
                "Info5": null,
                "costCenterName": null,
                "id": "D776D458-B947-49D6-B70F-827647D72C26",
                "lot": null,
                "materialName": "Test Material 15",
                "number": 1,
                "quantity": 1.0,
                "serialNumber": "0000205856",
                "storageUnits": []
            }
        ],
        "owner": "sys",
        "priority": 2,
        "recipient": null,
        "status": "Untouched",
        "storageUnits": [],
        "type": 1,
        "unit": null,
        "warehouseName": "Warehouse"
    }
}
Show Order /api/orders/[id]
get

Get a specific order from the PPG database and return a JSON response. The order will be pulled either from the MasterOrder table or the HistoryMasterOrder table, depending on whether it's been picked.

Request with curl
curl "http://[subdomain.itempath.com or IP]/api/orders/[id]" \ -X get \ -H "Content-Type: application/json" \ -H "Authorization: Bearer [Your JWT Access Token]"
Example Response
{
    "order": {
        "Info1": null,
        "Info2": null,
        "Info3": null,
        "Info4": null,
        "Info5": null,
        "deadline": null,
        "directionType": 1,
        "handlingUnit": null,
        "hasStock": true,
        "id": "21AA0AF0-CE36-44B4-8DD6-538FBDFFBF05",
        "incompleteAllocations": 0,
        "modifiedDate": "2023-10-13T15:39:53.477000",
        "name": "Example Pick Order",
        "order_lines": [
            {
                "Info1": null,
                "Info2": null,
                "Info3": null,
                "Info4": null,
                "Info5": null,
                "costCenterName": null,
                "id": "BBCA19E4-897B-4F4D-80D8-B4EEA60230CC",
                "lot": null,
                "materialName": "1120",
                "number": 1,
                "quantity": 1.0,
                "serialNumber": null,
                "storageUnits": [
                    {
                        "id": "CA1E5648-FA38-416F-9604-CF33A6763496",
                        "name": "VLM-01"
                    }
                ]
            },
            {
                "Info1": null,
                "Info2": null,
                "Info3": null,
                "Info4": null,
                "Info5": null,
                "costCenterName": null,
                "id": "D65F8C4C-4E3F-4981-BF4B-093FC8536E35",
                "lot": null,
                "materialName": "1121",
                "number": 2,
                "quantity": 1.0,
                "serialNumber": null,
                "storageUnits": [
                    {
                        "id": "CA1E5648-FA38-416F-9604-CF33A6763496",
                        "name": "VLM-01"
                    }
                ]
            }
        ],
        "owner": "sys",
        "priority": 2,
        "recipient": null,
        "stationName": null,
        "status": "In Process",
        "storageUnits": [
            {
                "id": "CA1E5648-FA38-416F-9604-CF33A6763496",
                "name": "VLM-01"
            }
        ],
        "type": 1,
        "unit": null,
        "warehouseName": "Warehouse"
    }
}
Update Order /orders/[id]
put

Update an order and get a response. Each key/value is optional. Only keys sent will be updated, but an object is required to be sent.

Body Parameters

  • allocate boolean

    If true or false, this will either allocate or deallocate the order.

  • deadline dateTime

    Date by which the order must be completed.

  • countEmptyLocations boolean

    For count orders only. Determines if locations with that material at a quantity of 0 should be included in the count. If changed from "true" to "false", order will need to be reallocated.

  • directionType integer/string

    The type of order. Can use integer or string.

    Possible values:

    1 or "put"
    2 or "pick"
    3 or "return"
    4 or "transport"
    5 or "count"
    7 or "production"

  • Info1 string LIMIT: 50

    A generic field for custom use.

  • Info2 string LIMIT: 50

    A generic field for custom use.

  • Info3 string LIMIT: 50

    A generic field for custom use.

  • Info4 string LIMIT: 50

    A generic field for custom use.

  • Info5 string LIMIT: 50

    A generic field for custom use.

  • initialHandlingUnit string LIMIT: 50

    Sets the initial handling unit value (i.e. tote/container/cart number) for all order lines rather than entering manually for each one. The handling unit can be updated during order processing.

  • name string LIMIT: 50

    This updates the unique order name.

  • owner string LIMIT: 50

    Used in a transfer order. The owner will be replaced by the given recipient, which will be assigned as the new owner of the material during the put.

  • priority integer

    Order priority level.

    Possible values:

    1 = Low
    2 = Medium
    3 = High
    4 = Hot (if included)

  • recipient string LIMIT: 50

    Used in a transfer order. The recipient given will be assigned as the new owner of the material during the put.

  • unit string LIMIT: 50

    Used with batches.

  • [dynamicField] string LIMIT: 1999

    Any of the dynamic order fields from PowerPick. Requires ItemPath's Custom Fields app.

Request with curl
curl "http://[subdomain.itempath.com or IP]/orders/[id]" \ -X put \ -H "Content-Type: application/json" \ -H "Authorization: Bearer [Your JWT Access Token]"
-d '{"allocate": "true", "handlingUnit": "Box 1"}'
Example Response
{
    "order": {
        "Info1": null,
        "Info2": null,
        "Info3": null,
        "Info4": null,
        "Info5": null,
        "deadline": null,
        "directionType": 1,
        "handlingUnit": "Box 1",
        "hasStock": true,
        "id": "46414264-1E48-4A46-8A39-7DF44A6C7BD0",
        "incompleteAllocations": 0,
        "modifiedDate": "2023-10-04T14:48:23.433000",
        "name": "003050132345_1_0000asd6",
        "order_lines": [
            {
                "Info1": "PC",
                "Info2": null,
                "Info3": null,
                "Info4": null,
                "Info5": null,
                "costCenterName": null,
                "id": "1F28D2F8-0318-49E2-8903-8C8C7DBD51AC",
                "lot": "0000205856",
                "materialName": "Sample Material",
                "number": 1,
                "quantity": 1.0,
                "serialNumber": null,
                "storageUnits": [
                    {
                        "id": "CA1E5648-FA38-416F-9604-CF33A6763496",
                        "name": "VLM-01"
                    }
                ]
            }
        ],
        "owner": "sys",
        "priority": 2,
        "recipient": null,
        "status": "Untouched",
        "storageUnits": [
            {
                "id": "CA1E5648-FA38-416F-9604-CF33A6763496",
                "name": "VLM-01"
            }
        "type": 1,
        "unit": null,
        "warehouseName": "Warehouse"
    }
}
Delete Order /api/orders/[id]/delete
delete

Delete a specific order from the PPG database and return a JSON response. This will also delete the order lines associated with the order.

Request with curl
curl "http://[subdomain.itempath.com or IP]/api/orders/[id]/delete" \ -X delete \ -H "Content-Type: application/json" \ -H "Authorization: Bearer [Your JWT Access Token]"
Example Response
{"deleted": "true"}