Pick POST

URI

https://{DATACENTER}.brightpearl.com/public-api/{ACCOUNT}
/warehouse-service/order/{ORDER_ID}/goods-note/goods-out/{GOODS_OUT_NOTE_ID}/pick

Refer to our documentation on URI syntax for more information on how to construct URIs.

Description

A pick message updates a single goods-out note at a time though the changes it makes may have a knock-on effect on other goods-out and reservation notes in the same warehouse.

When you make a pick it's entirely possible that the items you take were already reserved for another order. When this happens we will update the other notes while obeying the following principles:

  • An existing reservation note allocation will be reallocated within the same warehouse.
  • An existing goods-out note allocation will be reallocated within the same location.
Because we will not reallocate a goods-out note allocation off of its location (otherwise the other picker might arrive to find the location empty) there is a limit to how many items may be picked aside from the number that are actually there.

Another important point to note is that items from different goods-in batches can have different cost prices and that changing the items allocated to an order can therefore alter the cost price of that order.

A single pick message is made up of several pick items, each of which describes what has been picked broken down by product, location and batch. It is not necessary to submit enough pick items to cover the entire requirements of the goods-out, the remaining items for the note will be reallocated by FIFO. Please note that a pick message will completely overwrite any picks already made for that goods-out note so if you visit 2 locations and submit 2 messages the 2nd message MUST contain BOTH the the pick items otherwise the changes from the 1st message will be lost.

A pick message is processed atomically, i.e. if any of the pick items are invalid or unable to be processed, no changes are made.

Message fields:

Field Data type Description Required Notes
items object array A pick message can contain any number of pick items, each one describes what quantity of what product was taken from what location Yes Cannot be empty
salesOrderRowId integer Sales order row for which we are picking items Yes Must belong to the goods-out note
productId integer Product picked Yes Must match the goods-out note
locationId integer Location picked from Yes Must be in the warehouse to which the goods-out note belongs
batchId integer Goods-in batch picked from. If not supplied we use FIFO to determine which batch was picked. No Do not submit a batch ID unless you are certain about it and you have been keeping track of all outgoing batches for this product.
quantity integer Quantity picked Yes Cannot exceed requirements of the goods-out-note

Additional restrictions:

  • You cannot pick for a goods-out note which has already been shipped.

Example 1

Update goods-out note 7 for order 6 to reflect that we've picked 5 of product 1012 from location 8 to fulfil order row 9. (Any remaining items for goods-out note 7 will be reallocated using FIFO).

Request URI

/order/6/goods-note/goods-out/7/pick

Request body

{
	"items": [
		{
			"salesOrderRowId": 9,
			"productId": 1012,
			"locationId": 8,
			"quantity": 5
		}
	]
}

Response

{
}

Example 2

Update goods-out note 7 for order 6 to reflect that we've picked batches 11 & 12 of product 1012 from location 8 to fulfil order row 9.

Request URI

/order/6/goods-note/goods-out/7/pick

Request body

{
	"items": [
		{
			"salesOrderRowId": 9,
			"productId": 1012,
			"locationId": 8,
			"batchId": 11,
			"quantity": 5
		},
		{
			"salesOrderRowId": 9,
			"productId": 1012,
			"locationId": 8,
			"batchId": 12,
			"quantity": 5
		}
	]
}

Response

{
}