Skip to main content

UserTask decline reasons

Sometimes Ship From Store tasks need to be declined for some reason. These cancellations are tracked in an order's Order history in Admin Suite (and optionally even in your Orchestration sheets). You can track these cancellations in even more detail by setting up decline reasons, allowing your store employees to select their reason for the cancellation.

You can enable this functionality with a simple service: CreateUserTaskNotCompletedReason.

Once everything's set up, these reasons will become available in your mobile front ends when you try to cancel a task from the overview. Note that the reasons modal will not appear when deleting a task from within the task itself.

Iphone screen

Create reasons

EVA comes with a bunch of pre-set reasons, but you can also add your own custom reasons. Both the pre-set ones as well as custom ones need to be specifically added to the UserTask and the appropriate OU before they will become available.

If you solely want to add already existing reasons to a UserTask, use the UpdateUserTaskNotCompletedReason.

CreateUserTaskNotCompletedReason
{
"Name":"No time",
"Usages":[
{
"UserTaskTypeID":"2",
"UserTaskSubTypeID":"5",
"organizationUnitSetID":"12"
}
]
}
Pick the right UserTaskType

First off, EnumValues can differ per environment, so be sure to run GetUserTaskTypes on your own environment first. The below values show how they're ordered in our environment.

Secondly, although it sounds kind of counter-intuitive, Ship from Store tasks are actually a CompositeUserTask.

Get

These decline reasons can be listed using GetUserTaskNotCompletedReason. You'll also be able to see each reason's usage:

{
"Reasons": [
{
"ReasonID": 1,
"Name": "TaskInProgressForTooLong",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 2,
"Name": "TaskNotStartedInTime",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 3,
"Name": "NoStock",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 4,
"Name": "Manual",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 5,
"Name": "OtherStore",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 6,
"Name": "Expired",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 7,
"Name": "FulfillmentCancelled",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 8,
"Name": "Unknown",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 9,
"Name": "OrderCancelled",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 10,
"Name": "BlobNotFound",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 11,
"Name": "FullStockCountCreated",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 12,
"Name": "ReturnToSupplierCompleted",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 13,
"Name": "OrderShipped",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 14,
"Name": "OrderCompleted",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 15,
"Name": "RepairCompleted",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 16,
"Name": "RepairOrganizationUnitChanged",
"IsSystem": true,
"Usages": []
},
{
"ReasonID": 17,
"Name": "No time",
"IsSystem": false,
"Usages": [
{
"UserTaskTypeID": 2,
"UserTaskSubTypeID": 5,
"UserTaskType": "CompositeUserTask",
"UserTaskSubType": "ShipFromStore",
"organizationUnitSetID": 12
}
]
}
]
}

Additional services

Note

You are only allowed to alter and delete your own custom decline reasons.

Cycle count on no stock

Setting UserTasks:CreateCycleCountOnNoStockPartialPickCompletion to true will trigger a cycle count whenever decline reason NoStock is used.