Extending order tracking
Learn how you can customize and extend the order tracking implementation to track orders with custom order statuses, add custom milestones, and modify out-of-the-box shipment status inclusion criteria for each milestone
As a store associate, you can track an order or order line from the moment the order is placed till it is shipped or picked and update the customers about the current status and the expected delivery time, if required.
Defining custom milestones for different order types and delivery methods
- Create the following folder structure under
SCREEN_EXTENSIONS_HOME, if not already present.SCREEN_EXTENSIONS_HOME/features/orders - Go to the SCREEN_EXTENSIONS_HOME/features/orders folder.
- Copy orders-extension.module.ts from <WORKSPACE>/store-frontend/src/app/features/orders to <WORKSPACE>/store-frontend/store-extensions-src/app/features/orders folder.
If orders-extension.module.ts is already present, do not copy the file. Custom milestones and providers are declared in this file.
- To create a new milestone, perform the following steps:
- Run the following command:
ng g c /features/orders/modals/track-order-modal/components/<componentName> --project=store-extensions --skip-import - Update the milestone class name in declarations and exports property of @NgModule decorator in orders-extension.module.ts.
- Run the following command:
- Register the new milestone in track-order.config.ts.
Copy track-order.config.ts file from <WORKSPACE>/store-frontend/src/app/features/orders/config to <WORKSPACE>/store-frontend/store-extensions-src/app/features/orders/config folder and update the config.
OrderPlaced:
static TrackOrderConfigList: ITrackOrderConfig = {
'0001': {
SHP: [
{
tid: 'OrderPlaced',
milestoneDescriptionKey: 'trackOrderModal.LABEL_OrderPlaced',
fromStatus: '',
toStatus: '1100.70.06.10',
component: OrderPlacedMilestoneComponent
}
]
}
}
Here, 0001 is the sales order OrderType and SHP is the delivery method.
| Property | Mandatory | Description |
|---|---|---|
tid
{string} |
Yes | Unique identifier for testing the milestone component. |
component
{component} |
Yes | Reference of the component to be rendered for milestone. |
milestoneDescriptionKey
{string} |
Yes | Description text for the milestone. |
statusValue
{string} |
No | Fix status for milestone. The statusValue has higher priority than fromStatus and toStatus. |
fromStatus
{string} |
No | Starting status for the milestone. |
toStatus
{string} |
No | Ending status for the milestone. |
Modifying the out-of-the-box shipment status inclusion criteria for each milestone
In track-order.config.ts, for the milestone that you want to modify, change the fromStatus and toStatus values for the required range.
CustomMilestoneComponent as shown in the following JSON specification example:
static TrackOrderConfigList: ITrackOrderConfig = {
'0001': {
SHP: [
{
tid: 'Custom',
milestoneDescriptionKey: 'trackOrderModal.LABEL_Custom',
fromStatus: '1100',
toStatus: '1400',
component: CustomMilestoneComponent
}
]
}
}
Changing the style of an existing milestone component
Create a milestone with the same name in the <WORKSPACE>/store-frontend/store-extensions-src/app/features/orders/modals/track-order-modal/components folder.