AllocateConfirmedItemsByFulfilmentExpiry
Changed on:
13 Nov 2023
Overview
Allocates picked items to all Fulfilments in the Wave. Priortizing the Fulfilments expiring first and not in specified statuses. Secondly, notifies Fulfilments with the specified event name.
Plugin Name | Fulfilment Reference Module |
---|---|
Namespace | {{accountId}}.fulfilment |
The Fulfilment Reference Module is the foundation for in-store operations. It provides a reference Workflow for pick, pack, and shipping of orders for in-store staff. Extensible by design, use this Module as a base to build a solution to the needs of your customers.
UI Description
Allocates picked items to all Fulfilments in the Wave. Priortizing the Fulfilments expiring first and not in specified statuses. Secondly, notifies Fulfilments with the specified event name.
Accepts
- Wave
Actions
- Type: sendEvent
- Condition: Always
- Description: Sends an event containing the items picked by the Store associate, and how the individual items were then allocated to the Fulfilments.
Rule parameters
Properties | Type | Description |
eventName |
| Name of the outgoing event sent for each Fulfilment |
excludedStatuses |
| The statuses of the Fulfilments that should be excluded from having picked items allocated to them |
Event attributes
Name | Type | Required? | Default | Description |
pickedItems |
| Yes | N/A | Contains the details of what was picked for each item. |
Attribute Types
PickedItems
Name | Type | Required? | Description |
productRef |
| Yes | The ref of the item that was picked |
availableQty |
| Yes | The quantity of the item that was picked by the store associate |
catalogueRef |
| Yes | The catalogue of the product that was picked |
Detailed Technical Description
Detailed Rule Logic
- Checks if event attribute is null or empty, if this is true then "Event does not have
`pickedItems`
attributes"`pickedItems`
- Validate each to ensure the items are valid by:
`pickedItem`
- Check is less than 0 then --> "
`availableQty`
`pickedItem`
is negative for`availableQty`
"`productRefs`
- Check is blank or empty then --> "
`productRef`
`pickedItem`
is empty or blank"`productRef`
- Check
- Loop through each and determine if there is an available quantity from the picked items to allocate to that Fulfilment. If so, we then set the
`FulfilmentItem`
equal to the amount requested and decrement the`FulfilmentItem.filledQuantity`
for that item.`availableQty`
- If, you can't allocate any of the available quantity to a , then set the rejected quantity equal to the outstanding amount. Note, Fulfilments can be partially fulfilled, you still allocate available quantities to a Fulfilment even if one particular line could not be filled.
`FulfilmentItem`
- For each Fulfilment, send an event, the details of what is contained in that event can be found in the Actions section below.
Version History
v23.8.2
refers to plugin