Fluent Commerce Logo
Docs

Location Workflow Interface Contract

Interface Contract

Changed on:

13 Sept 2024

Detailed Description

CreateWaveByExpiry - Incoming Event

The CreateWaveByExpiry incoming event contains the instructions describing the desired characteristics of the Wave to be created. Included are the maximum number of Fulfilments that the Wave should contain and optionally the user that will be processing it.

Request Payload

Main Payload
PropertyDescriptionTypeRequired?
maxCountThe maximum number of fulfilments in a waveIntegerRequired
userNameThe name of the user that will be assigned to the waveStringOptional

Event Request Example 

1{
2  "name": "WaveCreate",
3  "entityType": "LOCATION",
4  "entityId": "3",
5  "entityRef": "F_SYD",
6  "entitySubtype": "STORE",
7  "rootEntityType": "LOCATION",
8  "retailerId": "1",
9  "attributes": {
10    "maxCount": 5,
11    "userName": "Matt"
12  }
13}

CreateWaveByUserSelection - Incoming Event

The CreateWaveByExpiry incoming event contains the instructions describing the desired characteristics of the Wave to be created. Included are the Fulfilments that the Wave should contain and optionally the user that will be processing it.
PropertyDescriptionTypeRequired?
fulfilmentIdsThe ids of the user selected Fulfilments to add to the WaveArray of IntegersRequired
userNameThe name of the user that will be assigned to the waveStringOptional
waveNameThe user assigned name of the WaveStringOptional

CREATE - outgoing Wave Event

The outgoing event to the Fulfilment entity specifies that the Fulfilment has been allocated to a Wave.

Request Payload

This event does not contain any specific attributes.

Event Request Example


1{
2  "name": "WaveCreate",
3  "entityId": "826",
4  "entityType": "FULFILMENT",
5  "retailerId": "1",
6  "scheduledOn": 1652247669583
7}

PickConfirm - Incoming Event

Incoming event responsible for defining the items that were picked for a Wave.

Request Payload

Main Payload
PropertyDescriptionTypeRequired?
pickedItemsThe list of all the items that are available to be picked by the store associate`[pickedItem]`Required
pickedItem Definition
PropertyDescriptionTypeRequired?Notes
gtinThe barcode of the item pickedStringOptional
productRefThe reference of the productStringRequired
availableQtyThe number of items that were pickedIntegerRequired
catalogueRefThe reference of the catalogue in which the product belongs toStringRequired

Event Request Example

1{
2    "name": "PickConfirm",
3    "entityType": "WAVE",
4    "entityId": "199",
5    "entityRef": "f3cfe26d-c303-4744-a979-40144de045a7",
6    "entitySubtype": "STORE",
7    "rootEntityType": "LOCATION",
8    "retailerId": "1",
9    "attributes": {
10        "pickedItems": [
11            {
12                "productRef": "AH8050-003",
13                "catalogueRef": "FCRG:PC:MASTER",
14                "availableQty": 1
15            }
16        ]
17    }
18}

PickConfirm - Outgoing Event

This is the outgoing event that contains the details of each picked item and how that affects the related requested Fulfilment.

Request Payload

Main Payload
PropertyDescriptionTypeRequired?
pickedItemsThe list of all the items that are available to be picked by the store associate`[pickedItem]`Required
fulfilmentItemsThe list of all the items that are picked by the store associate`[fulfilmentItem]`Required
pickedItem Definition
PropertyDescriptionTypeRequired?Notes
gtinThe barcode of the item pickedStringOptional
productRefThe reference of the productStringRequired
availableQtyThe number of picked itemsIntegerRequiredavailableQty should always be >=0
catalogueRefThe reference of the catalogue in which the product belongs toStringRequired
fulfilmentItem Definition
PropertyDescriptionTypeRequired?Notes
skuRefThe SKU reference of the Fulfilment itemStringOptional
orderItemIdThe order item id of the Fulfilment itemStringRequired
rejectedQtyThe quantity that could not be picked for a particular itemInteger

IntegerRequiredInteger
rejectedQty = requestedQty- filledQty
availableQtyThe picked quantityIntegerRequiredRecommended to use the filledQty value instead
orderItemRefThe order item reference of the fulfilment itemStringRequired
requestedQtyThe originally requested quantity of the Fulfilment itemIntegerRequiredThis is the original amount that was requested to ship
fulfilmentItemRefThe Fulfillment item referenceStringOptional
filledQtyThe quantity of item that is confirmed in a pickIntegerRequiredfilledQty = pickedItems.availableQty

Event Request Example

1{
2  "name": "WavePack",
3  "retailerId": "1",
4  "entityId": "761",
5  "entityType": "FULFILMENT",
6  "scheduledOn": 1652227174231,
7  "attributes": {
8    "pickedItems": [
9      {
10        "productRef": "AH8050-002",
11        "availableQty": 2,
12        "catalogueRef": "FCRG:PC:MASTER"
13      },
14      {
15       "productRef": "AH8050-004",
16        "availableQty": 2,
17        "catalogueRef": "FCRG:PC:MASTER"
18      }
19    ],
20    "fulfilmentItems": [
21      {
22        "skuRef": "AH8050-004",
23        "orderItemId": "762",
24        "rejectedQty": 0,
25        "availableQty": 2,
26        "orderItemRef": "AH8050-004",
27        "requestedQty": 2,
28        "fulfilmentItemRef": "AH8050-004",
29        "filledQty": 2
30      },
31      {
32        "skuRef": "AH8050-002",
33        "orderItemId": "763",
34        "rejectedQty": 0,
35        "availableQty": 2,
36        "orderItemRef": "AH8050-002",
37        "requestedQty": 2,
38        "fulfilmentItemRef": "AH8050-002",
39        "filledQty": 2
40      }
41    ]
42  }
43}

PickConfirmAndWaveComplete - Incoming Event

The incoming event is responsible for defining the items that were picked and completing a Wave.

Request Payload

Main Payload
PropertyDescriptionTypeRequired?
pickedItemsThe list of all the items that are available to be picked by the store associate`[pickedItem]`Required
pickedItem Definition
PropertyDescriptionTypeRequired?Notes
gtinThe barcode of the item pickedStringOptional
productRefThe reference of the productStringRequired
availableQtyThe number of items that were pickedIntegerRequired
catalogueRefThe reference of the catalogue in which the product belongs toStringRequired

Event Request Example

1{
2    "name": "PickConfirmAndWaveComplete",
3    "entityType": "WAVE",
4    "entityId": "199",
5    "entityRef": "f3cfe26d-c303-4744-a979-40144de045a7",
6    "entitySubtype": "STORE",
7    "rootEntityType": "LOCATION",
8    "retailerId": "1",
9    "attributes": {
10        "pickedItems": [
11            {
12                "productRef": "AH8050-003",
13                "catalogueRef": "FCRG:PC:MASTER",
14                "availableQty": 1
15            }
16        ]
17    }
18}

PickConfirmAndWaveComplete - Outgoing Event

This is the outgoing event that contains the details of each picked item and how that affects the related requested Fulfilment.

Request Payload

Main Payload
PropertyDescriptionTypeRequired?
pickedItemsThe list of all the items that are available to be picked by the store associate`[pickedItem]`Required
fulfilmentItemsThe list of all the items that are picked by the store associate`[fulfilmentItem]`Required
pickedItem Definition
PropertyDescriptionTypeRequired?Notes
gtinThe barcode of the item pickedStringOptional
productRefThe reference of the productStringRequired
availableQtyThe number of picked itemsIntegerRequiredavailableQty should always be >=0
catalogueRefThe reference of the catalogue in which the product belongs toStringRequired
fulfilmentItem Definition
PropertyDescriptionTypeRequired?Notes
skuRefThe SKU reference of the Fulfilment itemStringOptional
orderItemIdThe order item id of the Fulfilment itemStringRequired
rejectedQtyThe quantity that could not be picked for a particular itemInteger

IntegerRequiredInteger
rejectedQty = requestedQty- filledQty
availableQtyThe picked quantityIntegerRequiredRecommended to use the filledQty value instead
orderItemRefThe order item reference of the fulfilment itemStringRequired
requestedQtyThe originally requested quantity of the Fulfilment itemIntegerRequiredThis is the original amount that was requested to ship
fulfilmentItemRefThe Fulfillment item referenceStringOptional
filledQtyThe quantity of item that is confirmed in a pickIntegerRequiredfilledQty = pickedItems.availableQty

Event Request Example

1{
2  "name": "FulfilmentPack",
3  "retailerId": "1",
4  "entityId": "761",
5  "entityType": "FULFILMENT",
6  "scheduledOn": 1652227174231,
7  "attributes": {
8    "pickedItems": [
9      {
10        "productRef": "AH8050-002",
11        "availableQty": 2,
12        "catalogueRef": "FCRG:PC:MASTER"
13      },
14      {
15       "productRef": "AH8050-004",
16        "availableQty": 2,
17        "catalogueRef": "FCRG:PC:MASTER"
18      }
19    ],
20    "fulfilmentItems": [
21      {
22        "skuRef": "AH8050-004",
23        "orderItemId": "762",
24        "rejectedQty": 0,
25        "availableQty": 2,
26        "orderItemRef": "AH8050-004",
27        "requestedQty": 2,
28        "fulfilmentItemRef": "AH8050-004",
29        "filledQty": 2
30      },
31      {
32        "skuRef": "AH8050-002",
33        "orderItemId": "763",
34        "rejectedQty": 0,
35        "availableQty": 2,
36        "orderItemRef": "AH8050-002",
37        "requestedQty": 2,
38        "fulfilmentItemRef": "AH8050-002",
39        "filledQty": 2
40      }
41    ]
42  }
43}

WaveDispatch - Incoming Event

The incoming event contains the details of the articles packed for each Fulfilment.

Request Payload

Main Payload
PropertyDescriptionTypeRequired?
allFulfilmentArticlesThe list of all articles of a fulfilment keyed by Fulfilment ID`Map<Integer,List<ArticleDetails>>`Required
ArticleDetails Definition
PropertyDescriptionTypeRequired?Notes
packaging_nameThe package type that the items were packed intoStringRequiredFor Example: Small, Medium, Large, Custom
lengthThe length of the article in cmStringRequired
widthThe width of the article in cmStringRequired
heightThe height of the article in cmStringRequired
weightThe weight of the article in kgStringRequired
maxWeightThe maxWeight of the articleStringRequired

Event Request Example

1{
2    "name":"WaveDispatch",
3    "entityType":"WAVE",
4    "entityId":"1486",
5    "entityRef":"e217b0ef-24a3-4676-b2f7-ba27ccceb949",
6    "entitySubtype":"STORE",
7    "rootEntityType":"LOCATION",
8    "retailerId":"1",
9    "attributes":{
10        "allFulfilmentArticles":{
11            "1488":[
12                {
13                    "packaging_name":"BOX2022-SM1",
14                    "length":"25",
15                    "width":"10",
16                    "height":"10",
17                    "weight":"0.5",
18                    "maxWeight":"1.5"
19                },
20                ...
21            ]
22        }
23    }
24}

WaveDispatch - Outgoing Event

The outgoing event which sends the details of each article packed for a single Fulfilment.

Request Payload

Main Payload
PropertyDescriptionTypeRequired?
fulfilmentArticlesThe list of all articles of a Fulfilment which are a part of the outgoing wave`[fulfilmentArticle]`Required
fulfilmentArticle Definition
PropertyDescriptionTypeRequired?Notes
packaging_nameThe package type that the items were packed intoStringRequiredFor Example: Small, Medium, Large, Custom
lengthThe length of the article in cmStringRequired
widthThe width of the article in cmStringRequired
heightThe height of the article in cmStringRequired
weightThe weight of the article in kgStringRequired
maxWeightThe maxWeight of the articleStringRequired

Event Request Example

1{
2  "name": "WaveDispatchInitiated",
3  "entityId": "800",
4  "entityType": "FULFILMENT",
5  "retailerId": "1",
6  "scheduledOn": 1652245219038,
7  "attributes" : {
8      "fulfilmentArticles" : [
9          {
10              "packaging_name":"BOX2022-SM1",
11              "length":"25",
12              "width":"10",
13              "height":"10",
14              "weight":"0.5",
15              "maxWeight":"1.5"
16          },
17          ...
18      ]
19  }
20}