Overview
Order Hopping refers to re-splitting and routing the items of a sub-order that a fulfilment location is not able to fulfil due to some reason.
Scope Of Work
Hopping of Orders among Increff-managed Fulfillment Systems (SFS,USP and WMS) for the orders that are routed and Split by Increff Omni.
Capturing and considering the store holidays, opening and closing time in Routing, Splitting and Hopping of Orders.
Accept / Reject Orders at SKU Qty level in SFS for an Order.
Auto Hopping the orders after a certain time threshold (MAT) for non-responsive stores.
Trigger Points
Following are the trigger points when hopping of an order is expected to happen:
Order not getting accepted by the store initially.
Rejection during picking/packing in stores.
At the scheduled closure of the store.
Terminology
Store Schedule
Store schedule is a predefined time window defined by the Stores in SFS when the Stores are open and operational. Increff SFS always considers the Store schedule before doing the Hopping of a Splitted or routed order to ensure that the Sub Order which needs to hopped should not reach to a non-operational store.
A user can define two types of store schedules in SFS as mentioned below.
Daily Store Schedule- This Store Schedule will be defined with the Opening and Closing time of the store for all 7 days of the week.
For example:
Day of the Week | Opening Time | Closing Time |
---|---|---|
1 | 10:00 | 19:00 |
2 | 10:00 | 19:00 |
4 | 10:00 | 19:00 |
7 | 00:00 | 00:00 |
Ad-Hoc Store Schedule- This Store Schedule will be defined with the Opening and Closing of the store for the occasions like National holidays or Extended Store Operation time due to some festive season.
For example:
Date | Opening Time | Closing Time |
---|---|---|
26-01-2023 | 10:00 | 19:00 |
15-08-2023 | 10:00 | 19:00 |
31-12-2023 | 00:00 | 00:00 |
Note:
If Daily schedule is not defined on any day, the store scheduled is marked as Unscheduled for that day. The Store Schedule needs to be defined by Store initially or else the Ad-Hoc Schedule will also not be considered even if it is defined for that day.
If the Store is marked as Closed in Store schedule screen or if the current time has passed from the Store Closing time defined in store schedule, then the store will be marked as OFFLINE and the store will not be eligible to get new orders.
Ad-Hoc store schedule will take precedence over daily store schedule every time.
MAT - Maximum Acceptance Time
MAT is the maximum time that can be taken by a store to Accept / Reject the order, after which Auto-Hopping Logic of a Sub Order will be triggered.
Note:
The time will be taken in Seconds from SFS UI.
The time will be stored at the Store level masters in SFS as every store can have a different MAT.
MAT consideration on Active time of Stores
MAT consideration will be on Active time of stores. SFS will be computing that if a store is eligible to fulfil Sub Order or not with help of RequiredBy Time (SLA) of a Sub Order.
Note:
Active Hrs are defined as the Total time where the store is operational between Current Time and RequiredByTime (SLA)
If Active Hrs > MAT, then store is eligible to take orders, otherwise not.
This implies that if the MAT defined for any store in SFS masters is greater than the total active time of store then the Store will not be eligible for hopping process.
Acceptance Status
Every Sub Order in OMS will have a new status field known as Acceptance Status. Following can be the possible values of Acceptance Status:
REQUESTED - The location has been requested to fulfill the sub-order.
ACCEPTED - The location has ACCEPTED to fulfill the entire sub-order. In the case of WMS, an order moves to this status on ORDER_ACK.
REJECTED - The location has REJECTED to fulfill the entire order
PARTIALLY_ACCEPTED - The location has accepted to fulfill one or more Qty but not all the Qty of the SKU line item of sub-order.
AUTO_REJECTED - The store did not accept to fulfill the sub-order within the MAT time and sub-order got auto-hopped by OMS.
In Outward Orders section, there is a new status SPLIT_THRESHOLD_BREACHED added. If an Outward order is retried 20 times to be hopped to various fulfillment locations but all locations are disabled with Splitting Allowed in CIMS, then the status of Outward Order will be marked as SPLIT_THRESHOLD_BREACHED.
For Sub Orders being fulfilled from WMS,
Sub Order Acceptance will be AUTO. This means WMS need not give the explicit acceptance for a Sub Order to OMS.
WMS ORDER_ACK will be treated as an Acceptance by itself in OMS. On ORDER_ACK the Sub Order Accept Status will move to ACCEPTED.
For Sub Orders being fulfilled from SFS,
Sub Order Acceptance will be MANUAL. This means SFS need to give explicit acceptance/rejection for the Sub Order to OMS within the expected MAT.
Order Acceptance/Rejection Workflow
Order Acceptance/Rejection when Increff Omni does the Splitting / Routing
When Increff OMS does the Splitting and Routing:
INCREFF OMS doesn’t need to communicate the acceptance and rejection to the Order source.
Acceptance Status is PARTIALLY_REJECTED/REJECTED when:
If Sub Order Fulfillment Type is BLOCK_COMPLETE, the Sub Order moves to the UNFULFILLABLE state on rejection.
The Sub Order is tried to hop to some other fulfilment location.
The Qty remaining that INCREFF OMS is not able to hop in the end is still associated with the original Sub Order and Sub Order remains in UNFULFILLABLE status.
If Sub Order Fulfillment Type is SINGLE_SHIPMENT_PARTIAL, then the Sub Order will be allowed to process and whatever Qty is not fulfilled from location gets Seller cancelled automatically as per the usual workflow.
Auto Seller cancellation does not happen in this case and in the case of Unfulfillable quantity of order line item even after hopping, the Qty can be manually cancelled by seller from OMS UI if required.
In OMS Search Orders Screen,
User can view the Hopped Qty in SKU line item details for any order.
User can also view the Accept and Reject Qty in Fulfillment Items details for any order.
Order Acceptance/Rejection when Channel does the Splitting / Routing
When Channel/Marketplace does the Splitting and Routing:
INCREFF OMS needs to communicate the acceptance and rejection to the Order source (Channel/Marketplace).
For Sub Orders to be fulfilled by WMS,
Acceptance will not be communicated to the Channel/Marketplace.
Acceptance between WMS and OMS happens implicitly during Order ACK
For Sub Orders to be fulfilled by Store,
Acceptance and Rejection will be communicated to the Channel explicitly through Order Notification API.
Acceptance and Rejection will always be communicated to the channel on the Outward Order level.
Acceptance and Rejection of Sub Orders in SFS
Acceptance and Rejection of a sub-order can happen at 3 places in SFS:
Operator Checks if inventory is available or not and accepts or rejects the order before picking.
During Picking process
During Packing process
Acceptance and Rejection Flow before Picking
Below mentioned workflow carries out in SFS.
Outward Order gets created in OMS.
Sub Orders get created in OMS after splitting of Outward Orders.
Sub Orders get synced to SFS.
SFS Accepts / Rejects the Sub Order. In order to accept/reject, user can follow below mentioned steps.
Go to Accept Orders under Inventory & Order section in Increff SFS.
User can different filters like From Date, To Date, Channel, Status (ACCEPTED,REJECTED,PARTIALLY_ACCEPTED, Sort By (Order ID,ORDER_TIME,REQUIRED_TIME), Sort Order (Ascending/Descending), Page Size to check all the orders which needs to be Accepted/Rejected by Store.
All Orders which are eligible for Acceptance / Rejectance for that Store will be displayed with the Order Status next to it.
Click on Accept button which will display +/- Sign buttons at top right of the screen and Accept button at bottom of screen.
Enter the Qty you want to Accept and Click on Accept button at botttom. If Qty entered is 0, the complete order will be considered as Rejected
Available Inventory gets allocated to Sub Order which is Accepted by store in OMS.
QTP is reduced for the qty’s being rejected in OMS and deallocation happens.
Following cases happen afterwards:
If OMS is splitting routing source
Quantity that is getting rejected also gets increased in REJECTED inventory bucket to underexpose the inventory for OMS Hopping logic so that two stores do not get stuck in an infinite loop for hopping the same sub orders again and again.
Seller Cancellation won’t be allowed from OMS UI until the Sub Order is in UNFULFILLABLE status.
Rejection will lead to a hopping trigger, but not auto seller cancellation
Acceptance and Rejection are not communicated to channel
If OMS is not splitting and routing source
Rejection will lead to Auto seller cancellation
Acceptance and Rejection are not communicated to channel
Seller Cancellation won’t be allowed from OMS UI until the Sub Order is in UNFULFILLABLE status.
OMS communicates to CIMS the current Accepted Quantity, Rejected Quantity, Seller Cancelled Quantity, Customer Cancelled Quantity.
Acceptance and Rejection Flow during Picking
During Picking process of Accepted Orders,
If the store can fulfil a SKU in an order, the SKU can be picked.
Picked SKU’s can be rejected after picking till completing the order.
Like wise, if the store can't fulfil a SKU in an order, the SKU can be rejected.
Rejected SKU’s cannot be picked if AUTO_HOP is ON, since they are hopped to a different store.
Rejected SKU’s can be picked if AUTO_HOP is OFF before order packing is completed.
Virtual Combo’s must be picked/rejected together.
Acceptance and Rejection Flow during Packing
During Packing process of Accepted Orders, store can reject the order if store doesn't want to do fulfill the order and the order status will be marked as REJECTED.
(Screenshots required)
Defining MAT (Maximum Acceptance Time) in SFS
In Configurations screen of SFS a new tab MAT is added to define the Maximum Acceptance Time by the store to accept any order which is being hopped by Channel or Increff system.
MAT tab also has configuration of Warning time.
Warning time is the time which will inform the Store operator that the MAT is about to breach.
Once Warning time has crossed, a warning sign will start appearing for the orders in Accept Orders screen of SFS
Steps to be followed to define MAT are listed below
Go to Configurations Screen under Sundry section in SFS
Navigate to MAT tab
User can define the values of MAT and Warning time which will be considered for all orders which are in REQUESTED status in Accept Orders screen
Warning time should always be defined less than or equal to MAT
Once MAT is breached, the Order status will be marked as MAT_BREACHED, the same can be checked in Search Order Screen in SFS.
Location Level Splitting Configuration in CIMS
In CIMS, Now for any fulfillment location a user can enable/disable the location to be eligible for Splitting-Routing of an Outward order by changing Splitting Allowed value in CIMS Client Channel pair for any fulfillment location.
Steps to be followed to Enable/Disable Splitting
Go to View Client/Channel
Select a channel for which the fulfillment location Splitting Allowed should be changed.
Go to Associated Locations section for this channel.
Select Edit Location button on the right side of any fulfillment location.
Select YES in Splitting Allowed value if the fulfillment location is eligible for Splitting or else select FALSE .
Click on Update to save the changes for that fulfillment location.
If a Fulfillment Location is marked with Splitting allowed as FALSE but there was some free inventory available in the fulfillment location but later on if the Splitting Allowed flag is marked as YES then the Outward Orders needs to be retried manually from Search Orders screen to be marked as ACCEPTED
Things to be noted after Sprint 70 release changes
Creation of UOM Definition that contains an SKU which is already a part of Virtual SKU definition will not be supported if any splittable Open Outward order is present in Omni system from Sprint 70 onwards
For any Outward Order that needs to be splitted by INCREFF OMS and contains a Virtual Combo SKU whose child SKUs are also part of some UOM definition will move to FAILED order state in CIMS as the case is not supported from Sprint 70 onwards.