The Routing Engine
Overview: Use Order Broker’s Routing Engine module to:
-
determine whether products are available across the enterprise
-
select the best location to source an order or line, either automatically based on criteria that you set for the enterprise, or by providing a list of possible locations
-
help the customer select a location where s/he can pick up an order
-
create orders across the enterprise
-
notify locations about assigned orders
-
track order or line status
In this topic:
-
Using Product Availability Search for a Pickup or Delivery Order
- Reviewing or Updating Order Broker Orders
Types of Orders
The types of orders that the Routing Engine supports are described briefly below.
-
Important:
When you create a new organization in Order Broker 20.0 or higher, ship for pickup orders are automatically enabled, and in this case retail pickup and ship-to-store orders are not supported. When you update to Order Broker 21.0 or higher, ship for pickup orders are automatically enabled in all existing orders, and in this case retail pickup and ship-to-store orders are converted to ship-for-pickup orders.For more information: See About Ship-for-Pickup Orders for background.
Delivery Order
The Routing Engine can select a location to ship an order to the customer, or staff can designate a location. You would typically use this option to ship an order even though the desired products are backordered in the originating location.
Example 1: The customer wants to buy a product from a retail location, but the product is out of stock. The location submits the order to the Routing Engine, specifying that the order be shipped directly to the customer from a nearby distribution center.
Example 2: The customer orders a product on the web storefront. Since the product is currently backordered in the warehouse, the order management system submits the order to Order Broker for fulfillment. The Routing Engine automatically selects a location to fulfill the order, and the selected location ships the product directly to the customer.
Pickup Order
A location submits a pickup order to the Routing Engine when the customer has already selected a location where s/he would like to pick the order up and where the inventory is available. You would typically use this option to enable the customer to pick up the order at a nearby store that already has the inventory on-hand rather than wait for shipment.
Example: The customer contacts the call center to see if a product can ship from the warehouse. Since the product is currently backordered in the warehouse, the CSR helps the customer select a nearby store where the product is currently in stock, so the customer can pick it up there.
Ship For Pickup Order
A ship-for-pickup order is one that the customer picks up at a designated location, and that can have a separate placing, sourcing, and pickup location, although any two of these locations can be the same.
Example 1 (three different locations): The customer places an order on the web site (location A) and wants to pick the order up at location B. The Routing Engine “shops” the order and selects location C as the sourcing location. Location C ships the inventory to location B, where the customer can pick it up.
Example 2 (placed location and pickup location are the same): The customer places an order at location A and also wants to pick the order up at location A. The Routing Engine “shops” the order and selects location B as the sourcing location. Location B ships the inventory to location A, where the customer can pick it up.
Example 3 (sourced location and pickup location are the same): The customer places an order by phone (location A) and wants to pick the order up at location B. When the order is submitted to the Routing Engine, the requested item is available at location B, so it is selected as the sourcing location. Once the order is ready at location B, the customer picks it up.
This order flow resembles the pickup order.
Example 4 (placed location and sourced location are the same): The customer places an order by phone (location A) and wants to pick the order up at location B. The distribution center has the inventory available, and ships it to location B. Once the order is ready at location B, the customer picks it up.
The pickup location for a ship-for-pickup order must be specified in advance, and cannot be changed. The sourcing location can also be specified in advance, or the Routing Engine can select the sourcing location. If the selected sourcing location cannot source the order, then the order can be “reshopped” so that another sourcing location is assigned.
Summary of Order Types
The different types of orders are summarized below.
Important:
When you create a new organization in Order Broker 20.0 or higher, ship for pickup orders are automatically enabled, and in this case retail pickup and ship-to-store orders are not supported. When you update to Order Broker 21.0 or higher, ship for pickup orders are automatically enabled in all existing orders, and in this case retail pickup and ship-to-store orders are converted to ship-for-pickup orders.For more information: See About Ship-for-Pickup Orders for background.
Delivery | Pickup | Ship for Pickup | |
---|---|---|---|
used to: |
ship an order to the customer when the inventory is backordered in the originating location |
enable the customer to pick up the order at a nearby store that already has the inventory on-hand rather than wait for shipment |
enable the customer to pick up the order at a nearby store, and source the inventory from the placing location, the pickup location, or a different location |
originating location is where the order is: |
placed |
placed |
placed, and possibly where it’s sourced or picked up |
fulfilling location is where the order is: |
shipped from |
picked up |
N/A; sourcing location and pickup location can be different |
fulfilling location selected how? |
Routing Engine, or designated by the originating location; can be restricted through zone fulfillment |
customer |
sourced: Routing Engine, or designated by placing location pickup: designated by the customer |
order shipped to: |
customer |
N/A |
pickup location, if different from sourcing location |
Selecting the Location for a Pickup Order (LocateItems)
Purpose: The submit order message for a pickup order needs to specify the fulfilling location and system. You can use the locate items message to request a listing of locations that should be able to fulfill an order for one or more products in a specified area.
Which locations have a product available for pickup? A pickup order means that the customer will pick up the product(s) in a location where the inventory is available, and it does not need to be transferred from a different location. If the request message indicates that the fulfillment type is a pickup:
-
The response message lists each location where the product is stocked, is flagged as Pickup Available, and has a quantity available that meets or exceeds the quantity specified in the request message; also, the response provides information such as the available quantity and the date and quantity of the next expected purchase order. If the customer requests more than one item, the response message lists locations where all requested items are available for pickup.
-
Once the customer specifies the location where s/he would like to pick up the product(s), you can then send the SubmitOrder request message, providing the customer information, requested products, and selected location.
Note:
Optionally, the request message can specify a requested location if the customer has a preferred store and wants to check on availability in that store only.For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity.
Example:
A customer wants to pick up an item at a nearby store. The LocateItems request indicates:
-
the item (AB100 in a quantity of 5)
-
the postal code where the customer is located (01581)
-
the distance (in miles or kilometers) that the customer is willing to travel (15 miles)
The LocateItems response lists:
-
store location 23: 10.72 miles from the customer
-
store location 57: 13.51 miles from the customer
The response also includes the available quantity in each location, information on any open purchase orders, and the store’s address.
Cannot split: Pickup orders cannot be split across multiple fulfilling locations. To split a pickup order, the originating system needs to submit the request for each location as a separate order.
Exclude Locations with Zero Available? If the Exclude Locations with Zero Availability setting at the Preferences screen is selected, any possible product locations whose current available to promise quantities are 0 or less are excluded from consideration before the application of any potential probability rules.
Gift wrap? If the gift_wrap tag in the request is set to Y and the Use Attribute Rules flag is selected at the Preferences screen, only locations that are flagged to support gift wrap are eligible for the pickup order.
Locate Items Sort Order, Pickup Request
If Use Weighted Brokering Rules is selected at the Preferences screen, the locations are listed in proximity sequence.
If Use Weighted Brokering Rules is not selected (Standard Brokering), the locations returned in the response are sorted based on the same Order Broker criteria that apply to delivery orders unless you use the Order Broker Preference Overrides screens to set up preference overrides. Otherwise, the organization-level settings apply to all systems and order types, and the number of eligible locations exceeds the Maximum No. Responses, it is possible that the store location closest to the customer might not be included in the search results, even if it has the requested item(s) available.
Example: On Hand Count is the first criterion under the Order Broker Settings at the Preferences screen, and the Maximum No. Responses is set to 5.
The available quantity of the requested item in each eligible location is:
-
100 in location A, 20 miles away
-
90 in location B, 25 miles away
-
80 in location C, 19 miles away
-
70 in location D, 15 miles away
-
60 in location E, 10 miles away
-
50 in location F, 5 miles away
Because location F is the sixth location, it is not included in the search results, even though it is the closest to the customer’s address.
However, if you use the Order Broker Preference Overrides screen to set up an override for the system to sort first on proximity when the order type is Pickup, then location F is returned first in the search results.
For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity.
Selecting a Location for a Delivery Order
Overview: You can have the Routing Engine select the fulfilling location for a delivery order.
Splitting orders or lines? The Allow Split Order preference controls whether it is possible to split a delivery order across multiple fulfilling locations, If this preference is selected, the Routing Engine splits orders if needed to fulfill the order, and the submit order message can specify multiple fulfilling locations for an order. If the Allow Split Line preference is also selected, the Routing Engine splits the quantity of a single order line across multiple fulfilling locations if necessary.
Weighted or standard brokering? The Use Weighted Brokering Rules setting at the Preferences screen controls how the Routing Engine “shops” for fulfilling locations:
-
Standard brokering: If Use Weighted Brokering Rules is not selected, the Routing Engine selects fulfilling locations based on the Standard Brokering criteria, including proximity, on-hand count, location priority, last order assigned, and sales velocity rank.
-
Weighted brokering: If Use Weighted Brokering Rules is selected, the Routing Engine filters the list of eligible fulfilling locations for an order and submits the list, along with information on the order line(s) and configuration data, such as weighted brokering settings, to the Science Engine module for brokering. The Science Engine evaluates the data and either assigns the fulfilling location(s) or returns a reason code indicating why the order or line(s) could not be fulfilled.
-
Weighted brokering is used to select fulfilling locations for the Submit Order message, Product Availability message, and “reshopping” an order or line; however, it is not used for the Locate Items message. Locations in the Locate Items response are listed in order of proximity, and do not reflect any Science Engine calculations.
You can use weighted brokering to select fulfilling locations that are more profitable. For example, you can give preference to locations that have a lower labor cost or to product locations where the in-store margin (selling price - cost) is lower than the margin for an online sale.
The use of each method to select fulfilling locations is described below.
Locate Items Request for Delivery Order
Note:
Selecting a sourcing location for a ship-for-pickup order is very similar. See About Ship-for-Pickup Orders for key differences.Which locations have the product(s) available for shipment or transfer? A delivery order means that the product(s) should be shipped to the customer’s home.
Note:
The locations where a product is available for pickup might differ from the locations where a product is available for shipment, based on the settings of the Pickup Available, and Delivery Available flags. For example, you might flag your retail store locations as Pickup Available and your warehouse as Delivery Available.Grouping shipments? The Group Shipment Locations setting at the Preferences screen controls how the LocateItems response works for delivery requests:
-
If the Group Shipment Locations preference unselected, the response message lists locations where the available quantity should be able to fulfill the order. The logic is described below.
-
If the Group Shipment Locations preference is selected, the Routing Engine uses the same logic described below for when the preference is unselected; however, the response does not include details on each location that can fulfill the order. Instead, the response just includes the virtual (non-existent) location, indicating that the order can be fulfilled through the Routing Engine.
The chart below illustrates the logic used to select locations to include in the response message if the Group Shipment Locations preference is unselected, the Allow Split Order preference is selected, the request message does not specify a requested location, and splitting is not prohibited based on carrier. If the request is subject to zone fulfillment, then the eligible locations considered are restricted to the primary or alternate locations specified for the zone.
Note:
The response includes the virtual location even when the only locations that meet the criteria are backordered, if they are flagged as Backorder Available.Basic evaluation: To be included in the LocateItems response message without splitting a potential order or line, a location must:
-
have a quantity available that is not less than the requested quantity after applying any active probability rules, or be flagged as Backorder Available. If the request specifies more than one product the response message includes locations only if they stock both (or all) products in the request message.
-
be flagged as Delivery Available
-
be within the proximity specified in the LocateItems request message based on the postal code indicated (Note: The SubmitOrder message does not specify a proximity radius)
-
Not be excluded:
-
because it is within the same system as the requesting location, if the Disallow shopping within same system flag is selected at the System screen.
-
based on the Maximum No. Responses specified for the organization.
-
because the total number of delivery or ship-for-pickup orders assigned for fulfillment or sourcing for the current date meets or exceeds the Maximum Daily Orders limit specified at the Preferences screen. This evaluation takes place only if the Use Maximum Order Limits preference is selected; see Using Maximum Daily Order Assignment for more information.
-
based on any probability rules for which the location(s) or items are eligible. These rules apply before determining which locations to include in the response, and the availability information (available quantity, next purchase order date, and next purchase order quantity) to provide. For example, if a probability rule for a location indicates to reduce the available quantity by 10, Order Broker subtracts 10 from the availability quantity that is indicated in the response message.
-
Exclude Locations with Zero Available? If the Exclude Locations with Zero Availability setting at the Preferences screen is selected, any possible product locations whose current available to promise quantities are 0 or less are excluded from consideration before the application of any potential probability rules.
Gift wrap? If the gift_wrap tag in the request is set to Y and the Use Attribute Rules flag is selected at the Preferences screen, only locations that are flagged to support gift wrap are eligible.
Zone fulfillment? If you use zones for fulfillment and the shipping address is within a zone, only locations specified for the zone are eligible for selection through the Routing Engine. See Using Zones for Fulfillment for more information.
Specific location requested? If the request message specifies a requested location such as the customer’s favorite store, then the response message includes only the requested location in the response, regardless of the Order Broker rules set up at the Preferences screen or whether the location is otherwise eligible (for example, through zone fulfillment, or whether it is within the same system if the Disallow shopping within same system flag is selected for the system). See the requested location for more information.
Do Not Split Order For Carrier?If the specified ship via matches the Do Not Split Order For Carrier specified at the Preferences screen and the fulfillment type is delivery, then the Routing Engine does not consider whether the request could be fulfilled by splitting the order across multiple locations.
If weighted brokering is enabled: Because weighted brokering is not evaluated when processing the Locate Items message, the Locate Items response simply lists eligible locations in order of proximity, and does not reflect any Science Engine calculations.
For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity.
Location Selection
If Use Weighted Brokering Rules is selected at the Preferences screen, the locations are listed in proximity sequence. The Weighted Brokering rules do not apply to LocateItems request processing, and the Science Engine is not used for a Locate Items search.
If Use Weighted Brokering Rules is not selected at the Preferences screen (Standard Brokering). the Routing Engine uses the method described below to select locations for delivery orders.
Overrides: When selecting locations, the Routing Engine uses the Order Broker criteria in the order specified at the Preferences screen unless you have used the Edit Order Broker Preference Override screen to set an override sort preference for the system, order type, and Express carrier setting:
-
Proximity
-
Location Priority
-
On Hand Count
-
Last Order Assigned
-
Sales Velocity Rank
These criteria are ranked at the Preferences screen or the Edit Order Broker Preference Override screen to indicate which criterion to apply first. For example, if the Proximity criterion has a setting of 1, the closest locations are listed first, followed by locations that are farther from the requesting location. See Selecting a Location for a Delivery Order.
Note:
The Last Order Assigned and Sales Velocity Rank criteria are optional.If zone fulfillment applies, then the criteria above apply to the primary or alternate locations specified for the zone. See Using Zones for Fulfillment for a discussion.
If the Disallow shopping within same system flag is selected at the System screen for the requesting location’s system, then the criteria above apply only to locations in other systems.
How many locations listed? If the Group Shipment Locations preference is unselected, the Routing Engine checks the Maximum No. Responses setting to determine how many possible locations to include in the LocateItems response. If not all eligible locations are included, the response eliminates locations based on the Order Broker selection criteria specified at the Preferences screen or the Edit Order Broker Preference Override screen. For example, if the first criterion is proximity, and the Maximum No. Responses is set to 5, the 5 closest qualifying locations are included.
If the request specifies a requested location, then only the requested location is included in the response, and it is included regardless of whether the location is within the related zone when zone fulfillment applies.
Splitting orders? When it receives a request, the Routing Engine always checks first to see if there is a location that could fulfill the entire order. Otherwise, if there is not a single location that can fulfill the order and the Allow Split Order preference is:
-
selected, the Routing Engine next checks whether assigning a single line to multiple locations can make it possible to fulfill the order. In this case, the response lists the locations that have the item available.
-
unselected, the Routing Engine does not attempt to split any order lines.
Splitting lines? If the Allow Split Order preference is selected, but assigning the individual lines to different locations does not make it possible to fulfill the order completely, the Routing Engine next checks the Allow Split Line setting at the Preferences screen to determine whether it can attempt to fulfill the order by splitting the quantity for a single item across multiple locations. If the Allow Split Line preference is:
-
selected, the Routing Engine next checks whether the order can be fulfilled by assigning the individual lines to different locations. If the order would be split, the Routing Engine evaluates each order line individually based on your Preferences settings. In this case, the sequence in which the locations are listed in the response indicates their eligibility based on your preferences.
-
unselected and the order could not be fulfilled without splitting, the Routing Engine indicates that the order cannot be fulfilled.
Splitting lines with backorder available? The LocateItems response message lists locations that could partially fulfill an order line regardless of whether any of these locations are flagged as Backorder Available. However, when you send the SubmitOrder message, the Routing Engine splits the line across locations using your specified criteria until it comes to the location flagged as Backorder Available; when it comes to this location, the Routing Engine assigns the remaining quantity of the item. See LocateItems Sequence and Splitting Examples (Standard Brokering) for an example.
Partially fulfill? If splitting the order or the lines does not make it possible to completely fulfill the order, the LocateItems response indicates the locations that could fulfill individual lines on the order. Lines that could not be completely fulfilled, even after splitting the line across locations, are indicated in the response with the message Product not available within search criteria.
Do Not Split Order For Carrier?If the specified ship via matches the Do Not Split Order For Carrier specified at the Preferences screen and the fulfillment type is delivery, then the Routing Engine does not consider whether the request could be fulfilled by splitting the order across multiple locations.
Note:
When determining whether a location can fulfill an order, the Routing Engine first checks for locations that have the required quantity on-hand; however, if there are no locations with the quantity on-hand, the Routing Engine considers locations flagged as Backorder Available.LocateItems Sequence and Splitting Examples (Standard Brokering)
Note:
Selecting sourcing locations for a ship-for-pickup order is very similar. See About Ship-for-Pickup Orders for key differences.Location sequence in response: When the Routing Engine receives a request message for a delivery order and you are not using the Group Shipment Locations option, the sequence of the locations listed in the response message indicates the order in which the Routing Engine would select a location for fulfillment of the order.
Example: If your preferences indicate to select a location first based on proximity, the first location listed in the response is the location closest to the customer’s address based on postal code. If two or more locations are the exact same distance from the customer’s address, the Routing Engine checks the next criterion, such as available quantity.
Zone fulfillment? If you use zones for fulfillment and the shipping address is within a zone, only locations specified for the zone are eligible to be included in the response when the fulfillment type is DELIVERY. See Using Zones for Fulfillment for more information.
Specific location requested? If the request message specifies a requested location such as the customer’s favorite store, then the response message includes only the requested location in the response, regardless of the Order Broker rules set up at the Preferences screen or whether the location is otherwise eligible through zone fulfillment or if the location has exceeded the maximum number of orders and you are Using Maximum Daily Order Assignment. See the requested location for more information.
Maximum order limits? When the Use Maximum Order Limits preference is selected for the organization, the LocateItems response message for a delivery request excludes locations if the number of orders assigned for the current date meets or exceeds the Maximum Daily Orders limit specified at the Preferences screen. See Using Maximum Daily Order Assignment for more information.
Gift wrap? If the gift_wrap tag in the request is set to Y and the Use Attribute Rules flag is selected at the Preferences screen, only locations that are flagged to support gift wrap are eligible.
Criteria based on location: The Order Broker search criteria of proximity, last order assignment, or priority number are based on the location itself, so the sequence of locations in the response message is not affected by the products requested.
Highest priority Order Broker setting is Proximity (set at either the Preferences screen or through the Order Broker Preference Overrides screen) |
Example: Product AB100 and product BC200 available in:
Result: The response lists location 20 before location 10. Note: If a product is available in a location that has the Use Proximity Locator preference unselected, then the distance calculated from the customer’s location is always 0. If you use the Proximity Order Broker criterion, you might apply this preference to your distribution center in order to have it always be the “preferred” location for delivery requests. |
Location sequence based on available quantity if multiple products requested: If your Order Broker search criteria at the Preferences screen or the Edit Order Broker Preference Override screen are based primarily on on-hand count, this location sort logic is based on the combined available quantity for all requested products in each location where the products are available.
Highest priority Order Broker setting is On Hand Count (set at either the Preferences screen or through the Order Broker Preference Overrides screen) |
Example:
Result: If the message requests:
Note: If your response includes locations with a negative quantity (included because the Backorder Available flag is selected), then it is possible that the first location listed might not have all requested products in stock, even when you are searching based on on-hand count. For example, location 33 has an average available quantity of 25 (20 of product EF300 and -5 of product FG400), while location 44 has an average available quantity of 6 (7 of EF300 and 5 of FG400). In this situation, location 33 is listed first in the response message.For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity. |
Location sequence based on sales velocity rank if multiple products requested: If your Order Broker search criteria at the Preferences screen or the Edit Order Broker Preference Override screen are based primarily on sales velocity rank, this location sort logic is based on the combined sales velocity for all requested products in each location where the products are available.
Highest priority Order Broker setting is sales velocity rank (low to high, set at either the Preferences screen or through the Order Broker Preference Overrides screen) |
Example:
Result: If the message requests:
Note: If a product location has a sales velocity setting of 0 (for example, because the system has not yet reported a sales velocity), this setting counts as the lowest possible sales velocity. |
Sequence if splitting: If the Allow Split Order preference is selected and the Routing Engine would not be able to fulfill an order for all requested items without splitting it across multiple locations, the response lists the possible locations in a different sequence for each requested item.
Highest priority Order Broker setting is On Hand Count (set at either the Preferences screen or through the Order Broker Preference Overrides screen), splitting order |
Example:
Result: If the message requests all 3 items, the response lists the locations for each based on the available quantity of each item in each eligible location:
For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity. |
Splitting order if not all items available: If the Allow Split Order preference is selected, then the response indicates which items could be fulfilled, and which items are not available in the quantity requested.
Splitting order, not all items available in requested quantities |
Example:
Result: If the message requests all 3 items, the response indicates:
For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity. |
Maximum number of responses: The response does not include more locations than the Maximum No. Responses specified at the Preferences screen, even if the Allow Split Line preference is selected and the order line would need to be split over more locations than permitted under the Maximum No. Responses.
Splitting items, locations required to fulfill requested quantity exceeds Maximum No. Responses |
Example:
Result: The response lists location 90 (3 available), location 91 (3 available), and location 67 (2 available). Although the response lists a total quantity available of 8, the additional locations not listed in the response have sufficient inventory to fulfill the entire quantity if the order line is split. For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity. |
Grouping shipments and splitting orders: If the Group Shipment Locations and Allow Split Order preferences are selected, the response indicates which of the requested items are available in the quantities indicated; however, if the Allow Split Order preference is unselected, then if any requested item is not available in the requested quantity, then the entire order is considered to be not available.
Grouping shipments, one requested item not available |
Example:
Result: If the message requests all 3 items and Allow Split Order is selected, the response indicates:
If the message requests all 3 items and Allow Split Order is unselected, the response indicates Product not available within search criteria for all 3 items For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity. |
Splitting an order line if a location is flagged as Backorder available: If the Allow Split Order and Allow Split Line preferences are both selected, then the Routing Engine splits a single line across multiple locations. However, if one of the locations it would select is flagged as Backorder Available, then that location serves as a catch-all to fulfill the remaining quantity of the order line.
Splitting an order line across multiple locations with one location flagged as Backorder available |
Example:
Result:
|
Submit Order Request for Delivery Order (Standard Brokering)
The following process applies when Use Weighted Brokering Rules is not selected.
Note:
The process for selecting a sourcing location for a ship-for-pickup order is very similar. See Enable Ship-For-Pickup? for key differences.Location designated? The originating location can specify the location(s) to fulfill a delivery order and indicate the selected location(s) in the submit order message. For example, you might use the locate items request and response to initially generate a list of possible locations, and then select a location from this list to designate in the submit order request. When the fulfilling location is designated in the submit order request, the Routing Engine confirms that each location is eligible to fulfill the order, based on:
-
Location eligible? The Delivery Available flag at the Preferences screen must be selected.
-
Backorder eligible? If the location does not have the requested quantity of each item on the order available after checking on inventory if it’s in an online system, and applying any probability rules (less any reserved quantity or fulfilled quantity; see Calculating the Available to Promise Quantity), the Backorder Available flag at the Preferences screen must be selected.
If a designated location is not eligible based on the above criteria, the Routing Engine returns an error to the submit order request message. However, if the location is otherwise eligible, the Routing Engine assigns the order to the specified location even if the location is:
-
not within the related zone when you use zone fulfillment, or
-
excluded based on probability rules, or
-
within the same system as the requesting system, even if the Disallow shopping within same system flag is selected for the system.
Gift wrap? If the gift_wrap tag in the request is set to Y and the Use Attribute Rules flag is selected at the Preferences screen, only locations that are flagged to support gift wrap are eligible.
Note:
Regardless of the setting of the Allow Split Order and Allow Split Line preferences, the Routing Engine does not split an order or line when the fulfilling location is specified in the request message.If location not designated: The Routing Engine uses the same logic to select a fulfilling location for a delivery order when it receives a locate items request as when it receives a submit order request without a fulfilling location specified. The Routing Engine checks each location stocking the requested item(s):
-
Excludes the location that generated the order.
-
If the shipping address falls within a fulfillment zone, restricts the results to the primary locations specified for the zone. See Using Zones for Fulfillment for a discussion.
-
If the Disallow shopping within same system flag is selected for the system of the requesting location, excludes all other locations for that system.
-
Applies any proximity rules to determine whether a location is an acceptable distance from the customer’s shipping address.
-
If the gift_wrap tag in the request is set to Y and the Use Attribute Rules flag is selected at the Preferences screen, only locations that are flagged to support gift wrap are eligible.
-
Considers locations only if the Delivery Available flag at the Preferences screen is selected.
-
Excludes a location if the total number of delivery orders assigned for the current date meets or exceeds the Maximum Daily Orders limit specified at the Preferences screen. This evaluation takes place only if the Use Maximum Order Limits preference is selected; see Using Maximum Daily Order Assignment for more information.
-
Determines the Available to Promise quantity: see Calculating the Available to Promise Quantity.
-
Applies any probability rules to determine whether to include the location and to calculate the available quantity to use for evaluation purposes. For example, you might have a probability rule to exclude a location if the available quantity is less than 2, or a rule to include the quantity expected to be received on an upcoming purchase order in the available quantity.
Note:
If the Exclude Locations with Zero Availability setting at the Preferences screen is selected, any possible product locations whose current available to promise quantities are 0 or less are excluded from consideration before the application of any potential probability rules. -
After performing the above calculations, considers each location as eligible only if it has at least the requested quantity available for each requested item (less any reserved quantity and fulfilled quantity; see Calculating the Available to Promise Quantity), or if it is flagged as Backorder Available.
-
If there is more than one eligible location at this point, applies the Order Broker selection criteria specified at the Preferences screen or the Edit Order Broker Preference Override screen to select the locations eligible to fulfill the order. You assign each of the five criteria with a rank to indicate which criterion to use first. The selection criteria are:
-
Proximity: Set this criterion to Closest to select the eligible location closest to the customer’s address. You might choose this setting to save on shipping costs.
-
Location Priority: Set this criterion to Low to High to select the eligible location whose location priority is the lowest number. The location priority is a number you assign to a location, location type, or organization to control the Routing Engine search logic.
-
On-hand count: Set this criterion to High to Low to select the eligible location where the Available to Promise quantity of the product is highest. You might use this setting to avoid depleting the inventory in any one location.
-
Last order assigned: Set this criterion to Variable to select the eligible location whose last order assignment date and time was the earliest. You might choose this setting to create an even distribution of orders among eligible locations. This criterion is optional.
-
Sales velocity rank: Set this criterion to Low to High to select the eligible location where the product’s Sales Velocity is lowest. This criterion is optional.
-
Criterion ranking: The Routing Engine uses the criterion with the highest rank to select the fulfilling location. If there is a “tie” (for example, if two locations have the same Available to Promise quantity or the same location priority), the Routing Engine uses the next criterion based on assigned rank.
-
Example: The On-hand Count preference is ranked at 1 with an Order of Descending (highest to lowest), so the Routing Engine selects the location with the highest Available to Promise quantity. If there are two locations with the same available quantity, the Routing Engine checks the selection criterion ranked at 2: this is Location Priority, and it has an Order of Ascending (lowest to highest). As a result, the Routing Engine selects the location whose Location Priority is 1 over a location whose Location Priority is 5.
Using alternate locations for a fulfillment zone: If the shipping address falls within a fulfillment zone and the order cannot be assigned using the primary locations specified for the zone, the Routing Engine next uses the steps above to attempt to assign the order using the alternate locations for the zone. If the order can using the alternate locations for the zone and you split orders, the Routing Engine then uses the steps above to attempt to assign the order across both the primary and alternate locations for the zone. See Using Zones for Fulfillment for a discussion.
Acknowledge order before brokering? If the Acknowledge Order Before Brokering preference is selected, the Order Broker does not select a fulfilling location before sending the submit order response message; instead, it confirms that the order information, such as address, products, and originating location, is valid, assigns the order to a temporary IN PROCESS location, and then sends the response message as to an order acknowledgment. The Order Broker then proceeds with location selection. The originating system can send a status inquiry request afterward to determine the assigned location(s). See Acknowledge Order Before Brokering for a discussion.
Order rejected? When a location rejects an order or line, the Routing Engine goes through the same selection criteria again; however, it excludes any location that has already rejected the order or line. Also, when you split orders, if the entire order is rejected, the Routing Engine does not attempt to assign all lines to the same fulfilling location; instead, it searches for locations for each line individually.
Note:
Even if the original submit order request message specified a fulfilling location, the Routing Engine uses its standard selection logic when the assigned location rejects the order or line.If the Routing Engine cannot find a location for fulfillment: If at any point the Routing Engine receives a submit order message and cannot find an eligible location to ship the order or line, or if an order or line is rejected by an assigned location and the number of Search Retries specified at the Preferences screen is exceeded, the Routing Engine assigns the order or line to the Default Unfulfillable Location specified at the Preferences screen. By assigning an order or line to the Default Unfulfillable Location, the Routing Engine is flagging the order or line as unfulfillable. When the requesting system receives a status inquiry response message indicating that an order or line is assigned to this location, this indicates to the system that it either needs to fulfill the order or line using its internal processes or cancel the order or line.
Splitting an order at initial submission with subsequent rejection |
Example: When order is initially created:
Result:
For more information: See Calculating the Available to Promise Quantity and Using Probability Rules for information on factors that affect the available quantity. |
Submit Order Request for Delivery Order (Weighted Brokering)
The following process applies when Use Weighted Brokering Rules is selected.
Note:
Selecting a sourcing location for a ship-for-pickup order is very similar. See About Ship-for-Pickup Orders for key differences.Location designated? The originating location can specify the location(s) to fulfill a delivery order and indicate the selected location(s) in the submit order message. For example, you might use the locate items request and response to initially generate a list of possible locations, and then select a location from this list to designate in the submit order request. When the fulfilling location is designated in the submit order request, the Routing Engine confirms that each location is eligible to fulfill the order, based on:
-
Location eligible?The Delivery Available flag at the Preferences screen must be selected.
-
Backorder eligible? If the location does not have the requested quantity of each item on the order available after checking on inventory if it’s in an online system, and applying any probability rules (less any reserved quantity; see Calculating the Available to Promise Quantity), the Backorder Available flag at the Preferences screen must be selected.
If a designated location is not eligible based on the above criteria, the Routing Engine returns an error to the submit order request message. However, if the location is otherwise eligible, the Routing Engine assigns the order to the specified location even if the location is:
-
not within the related zone when you use zone fulfillment, or
-
excluded based on probability rules, or
-
within the same system as the requesting system, even if the Disallow shopping within same system flag is selected for the system.
Gift wrap? If the gift_wrap tag in the request is set to Y and the Use Attribute Rules flag is selected at the Preferences screen, only locations that are flagged to support gift wrap are eligible.
Note:
Regardless of the setting of the Allow Split Order and Allow Split Line preferences, the Routing Engine does not split an order or line when the fulfilling location is specified in the request message.If location not designated: When Use Weighted Brokering Rules is selected, the Routing Engine submits a listing of eligible locations to the Science Engine, along with additional data to enable the Science Engine to select the fulfilling location(s) for the order. However, before submitting the information to the Science Engine, the Routing Engine filters the list of eligible locations to those that stock the requested item(s), and:
-
Excludes the location that generated the order.
-
If the shipping address falls within a fulfillment zone, restrict the list to the primary locations and secondary locations specified for the zone. See Using Zones for Fulfillment for a discussion.
-
If the Disallow shopping within same system flag is selected for the system of the requesting location, excludes all other locations for that system.
-
Applies any proximity rules to determine whether a location is an acceptable distance from the customer’s shipping address.
-
Considers locations only if the Delivery Available flag at the Preferences screen is selected.
-
Excludes a location if the total number of delivery orders assigned for the current date meets or exceeds the Maximum Daily Orders limit specified at the Preferences screen. This evaluation takes place only if the Use Maximum Order Limits preference is selected; see Using Maximum Daily Order Assignment for more information.
-
Determines the Available to Promise quantity: see Calculating the Available to Promise Quantity.
-
Applies any probability rules to determine whether to include the location and to calculate the available quantity to use for evaluation purposes. For example, you might have a probability rule to exclude a location if the available quantity is less than 2, or a rule to subtract 10% from the reported available quantity for certain locations.
Note:
If the Exclude Locations with Zero Availability setting at the Preferences screen is selected, any possible product locations whose current available to promise quantities are 0 or less are excluded from consideration before the application of any potential probability rules. -
After performing the above calculations, considers each location as eligible only if it has at least the requested quantity available for each requested item (less any reserved quantity; see Calculating the Available to Promise Quantity), if the order might be split across the eligible locations that collectively have the requested quantity, or if the location is flagged as Backorder Available.
Do Not Split Order For Carrier? If the specified ship via matches the Do Not Split Order For Carrier specified at the Preferences screen and the fulfillment type is delivery, then the Routing Engine does not consider whether the request could be fulfilled by splitting the order across multiple locations.
Submission to Science Engine: The Routing Engine then submits the list of eligible locations to the Science Engine. The information sent to the Science Engine includes:
-
Order line information: order type, request ID, line number, product code, selling price
-
Configuration information: Weighted Brokering criteria (the percentage weights assigned for Labor Cost, Gross Margin, Proximity, On Hand Quantity, and Sales Velocity, as well as the Priority for evaluating sales velocity), Allow Split Order setting, Allow Split Line setting, and Maximum Order Splits setting
-
Information on each eligible product location: Product code, System code, Location code, Available to Promise quantity after subtracting any reserved quantity and applying any probability rules, distance, zone group level (primary or secondary), Backorder Available setting, On Clearance setting, Selling Price, Cost, Sales Velocity, and the location’s Labor Cost
Criteria for fulfilling location assignment: The Science Engine uses similar criteria for fulfilling location assignment to standard brokering criteria, except in each of the following scenarios, if more than one location could fully or partially fulfill the order, select a location based on weighted brokering rules:
- Single location? If a single location could fulfill the entire order with its on-hand quantity, use that location, selecting a primary location if the order is subject to fulfillment zone processing; otherwise,
- Fulfill by splitting order? If Use Split Order is selected, and the entire order could be fulfilled across more than one location by splitting the order, but not the line quantities, with the locations’ on-hand quantities and without exceeding the Maximum Order Splits, use these locations. If the order is subject to fulfillment zone processing, split the order only across primary locations; otherwise,
-
Fulfill by splitting order and lines? If Use Split Order and Use Split Line are selected, and the entire order could be fulfilled across more than one location by splitting the order and line quantities with the locations’ on-hand quantities and without exceeding the Maximum Order Splits, use these locations. If the order is subject to fulfillment zone processing, split the order and lines only across primary locations; otherwise,
-
Fulfill by splitting order in primary or alternate locations in zone? If the order is subject to fulfillment zone processing, Use Split Order is selected, and the entire order could be fulfilled across more than one Primary or alternate location by splitting the order, but not the line quantities, with the locations’ on-hand quantities and without exceeding the Maximum Order Splits, use these locations; otherwise,
-
Fulfill by alternate locations in zone? If the order is subject to fulfillment zone processing and could not be fulfilled by assignment to primary locations, but a single alternate location could fulfill the entire order with its on-hand quantity, use that location; otherwise,
-
Fulfill by splitting order and lines in primary or alternate locations in zone? If the order is subject to fulfillment zone processing, Use Split Order and Use Split Line are selected, and the entire order could be fulfilled across more than one Primary or alternate location by splitting the order and line quantities with the locations’ on-hand quantities and without exceeding the Maximum Order Splits, use these locations; otherwise,
-
Fulfill by assignment to backorder location(s)? If any eligible locations are flagged as Backorder Available, select one of these locations with the highest on-hand quantity. The order and lines can also be split as in the above scenarios, as long as the Maximum Order Splits is not exceeded.
See Science Engine Examples for information on how the Science Engine evaluates potential locations based on the weighted brokering criteria passed, and see Primary and Alternate Search Hierarchy: Weighted Brokering for details on fulfillment zone processing.
Response from Science Engine: The Science Engine returns one of the following responses:
-
Fulfillable: The complete quantity of the order is fulfillable, based on the available to promise quantity without relying on backorder fulfillment.
The Science Engine returns the location(s) to the Routing Engine.
-
Fulfillable through backorder: The order line(s) are fulfillable only by assigning one or more units or lines to a backorder location because the full quantities are not available.
The Science Engine returns the location(s) to the Routing Engine, but also provides a reason code identifying how it selected the location(s). The following reason codes are stored in the UNFULFILLABLE_REASON_CODE in the XOM_STATUS_HISTORY table; however, no Transaction Note is displayed at the Order screen:
-
4000: An order or line had to be assigned to a backorder location that was currently without sufficient inventory, because the entire order could not be assigned to locations with sufficient inventory without exceeding the Maximum Order Splits. For example, an order includes a line for 1 unit of item A, and another line for 2 units of item B. Location 100 can fulfill the line for item A. Locations 200 and 300 each have 1 unit item B. The Maximum Order Splits is set to 2. If location 200 supports backorders, the line with 2 units of item B is assigned there.
-
5000: An order or line had to be assigned to a backorder location that was currently without sufficient inventory, because there were no locations that had the inventory on-hand; however, this was not the result of the Maximum Order Splits setting being exceeded.
-
8000: An order or line could have been assigned to locations with inventory if split order or line were allowed; but since the order or line could not be split, it was assigned to a backorder location that was currently without sufficient inventory.
-
-
Unfulfillable: The order line(s) are not fulfillable even by assigning one or more units or lines to a backorder location, either because backorder locations are not available or because of a limit to splitting the order or lines.
The Science Engine returns a reason code identifying why the order could not be fulfilled. The following reason codes are stored in the UNFULFILLABLE_REASON_CODE in the XOM_STATUS_HISTORY table:
-
Exceed Maximum Number of Splits: The Science Engine returned a code indicating that the entire order could not be fulfilled without exceeding the Maximum Order Splits, so the entire order is unfulfillable. This response can occur for a single-line order that could have been fulfilled by splitting the line, but split line is not enabled. A reason code of 1000 is stored as the UNFULFILLABLE_REASON_CODE in the XOM_STATUS_HISTORY table.
-
Not Enough Inventory and No Backorder Location: The Science Engine returned a code indicating that the entire order, or a line on the order, could not be fulfilled because there was not sufficient inventory on-hand, and there was not an eligible location that supported backorders. A reason code of 2000 is stored as the UNFULFILLABLE_REASON_CODE in the XOM_STATUS_HISTORY table if the entire order was unfulfillable, and a reason code of 3000 is stored for an individual line that was unfulfillable while other line(s) could be fulfilled.
-
Not Fulfilled due to Split Not Allowed: The Science Engine returned a code indicating that the entire order could not be fulfilled without splitting one or more order lines, and Allow Split Line was not selected. The same message is displayed if the order could not be fulfilled without splitting the order, and Allow Split Order was not selected. A reason code of 7000 is stored as the UNFULFILLABLE_REASON_CODE in the XOM_STATUS_HISTORY table if the entire order was unfulfillable, and a reason code of 6000 is stored for an individual line that was unfulfillable while other line(s) could be fulfilled.
-
Acknowledge order before brokering? If the Acknowledge Order Before Brokering preference is selected, the Routing Engine confirms that the order information, such as address, products, and originating location, is valid, assigns the order to a temporary IN PROCESS location, and then sends the response message as an order acknowledgment regardless of whether it has already received the response from the Science Engine. The originating system can send a status inquiry request afterward to determine the assigned location(s). See Acknowledge Order Before Brokering for a discussion.
Order rejected? When a location rejects an order or line, the Routing Engine again submits the order or line to the Science Engine; however, it excludes any location that has already rejected the order or line from the list of eligible locations.
Note:
Even if the original submit order request message specified a fulfilling location, the Routing Engine uses its standard location eligibility logic for submission to the Science Engine when the assigned location rejects the order or line.If the Science Engine cannot find a location for fulfillment: If at any point the Routing Engine receives a submit order message and Science Engine cannot find an eligible location to ship the order or line, or if an order or line is rejected by an assigned location and the number of Search Retries specified at the Preferences screen is exceeded, the Routing Engine assigns the order or line to the Default Unfulfillable Location specified at the Preferences screen. By assigning an order or line to the Default Unfulfillable Location, the Routing Engine is flagging the order or line as unfulfillable. When the requesting system receives a status inquiry response message indicating that an order or line is assigned to this location, this indicates to the system that it either needs to fulfill the order or line using its internal processes or cancel the order or line.
When the requesting system receives a status inquiry response message indicating that an order or line is assigned to this location, this indicates to the system that it either needs to fulfill the order or line using its internal processes or cancel the order or line.
Science Engine Examples
The Science Engine uses the information passed from the Routing Engine, including the weighted brokering criteria, to select locations if there is more than one eligible location or an order or line needs to be split for fulfillment.
Each of the weighted brokering criteria that have percentage weights greater than 0 are considered.
Example 1: Select by margin (select the location where the difference between the in-store Selling Price and the Cost is lowest, since it is more profitable to source the online order there) |
In this example:
Result: The Science Engine selects location A, because it has the higher score. An in-store purchase in location A results in a lower margin than location B, so it is more profitable to assign the online order to location A. The Margin displayed for the Product Location differs from the margin calculation performed by the Science Engine. The Science Engine’s calculation includes the order line unit price, while the Margin displayed for a Product Location is simply the in-store Selling Price minus the Cost. |
Example 2: Select by net profit (select the location where the overall profit is lowest after factoring in the order unit price, in-store Selling Price, Cost, and Labor Cost) |
In this example:
Result: The Science Engine selects location B. After factoring in the higher Labor Cost for location A and the lower Labor Cost for location B, the Science Engine determines that location B is more profitable. Note: When you set the Weighted Percentages to include both Gross Margin and Labor Cost by applying percentages greater than 0, the Science Engine uses Labor Cost only as part of the net profit calculation by subtracting it from the margin weight as described above. However, if the Weighted Percentages include just Labor Cost and have the Gross Margin percentage set to 0, then the Science Engine uses Labor Cost by itself, based on its percentage weight. |
Example 3: Select the best location based on weighted percentages that include both profitability and other criteria. Unlike the other examples, this scenario includes criteria that are not the same units: in this case, currency (such as dollars) and quantity. |
In this example:
Result: The Science Engine selects location B. Its lower Labor Cost outweighs the higher Available to Promise quantity of location A. |
Using Attribute Rules for Delivery Orders
You can set up custom attributes to filter the locations eligible to source orders, or where orders can be picked up.
Custom attributes are used only if Use Attribute Rules is selected at the Preferences screen.
These rules apply when filtering locations for LocateItems, ProductAvailability, and SubmitOrder requests. They also apply when “reshopping” orders as a result of a StatusUpdate request or when the order is rejected through the user interface. If there have been any changes to the attribute assignments to locations or the product since the order line was created, the current attribute assignments apply.
Note:
This setting also controls whether to filter locations when gift wrap is required.Examples:
Attribute Usage | How to Implement |
---|---|
Engraving required: Product A always requires engraving, so only locations that support engraving can fulfill orders for this product. |
Setup:
Web service responses: The LocateItems response, ProductAvailability response, and SubmitOrder response automatically filter locations to those that support engraving based on the attribute assignment and the fulfillment type. |
Engraving optional: Product B is eligible for engraving, but can also be ordered without it. The individual request for the product indicates whether engraving is required. |
Setup:
Web service requests: The LocateItems request, ProductAvailability request, SubmitOrder request should include the custom attribute only when engraving is required. Web service responses: The responses messages filter eligible locations based on whether they support engraving for the specified Location Use. |
Supported brand: Your organization includes store locations associated with multiple brands, but only locations that are associated with Brand ABC can fulfill orders for the brand. Location 100 is associated with brand ABC. |
Setup:
|
Attribute setup options: You can use the following options when setting up attribute definitions:
-
Attribute Type: Attributes can filter eligible locations based on:
-
Location and Product: The location must be consistent with an attribute defined for the product. The attribute might be a universal requirement, such as the engraving required example above, or specified on a case-by-case basis, such as the optional engraving example.
-
Location: The location must be consistent with an attribute defined for the originating location. The requirement might apply to the pickup location for a pickup order, or to the sourcing location for a delivery order.
-
-
Product Type: Although you can create attributes with an Attribute Type of Product, these attributes are informational only and not used to route orders.
-
Data Type: Possible attribute data types are:
-
Boolean: The attribute is used to route orders if the Boolean is assigned to the product or originating location, such as the engraving examples above. An assigned Boolean is interpreted as True. Negative Boolean attributes are not supported.
-
List: Defines a list of valid values, such as the brand example above. When the attribute is used to route orders, there must be a match with one of the list values.
-
Text: Similar to the List data type, except it is not validated against a defined list of values.
-
Number: Similar to the List data type, except it is not validated against a defined list of values, and must be numeric.
-
-
Allow Multiple:
-
Locations: Controls whether the attribute can be assigned more than once to a single location with different values and the same Location Use (Originating, Sourcing, or Pickup). For example, a location can support multiple brands. Even if the attribute is set to not allow multiples, a different attribute value can be assigned to the location for each different location use; for example, a location can support engraving when it is a sourcing location, but not when it is a pickup location. Regardless of the Allow Multiple setting, only a single value can be assigned to a location when the Location Use is Originating.
-
Products: Controls whether the attribute can be assigned more than once with different values to the same product.
The Allow Multiple setting does not apply to Boolean attributes, and cannot be selected.
Filter based on multiple attributes? It is possible for multiple location, or product and location attributes to filter eligible locations. For example, one attribute can filter locations that do not support engraving, while another attribute can filter locations based on brand. All attributes apply, regardless of whether:
-
They have been assigned to the product or any potential sourcing or pickup locations;
-
They are passed in the LocateItems, ProductAvailability, or SubmitOrder request message;
-
They were initially applied to the order line at the time that it was created, and it is now being “reshopped.”
A location is excluded if it does not qualify based on all location or product and location attributes. For example, the Brand attribute is applied to location 1 with a Location Use of Originating and a value of ABC, and a LocateItems request from location 1 passes the Brand attribute with a value of brand DEF with a Pickup fulfillment type. Only locations that are assigned both ABC and DEF with a Location Use of Pickup can be eligible as pickup locations.
Assigning attributes to locations or products: Use the New Location Attribute and New Product Attribute screens to assign attributes.
-
Turn-by-Turn Distance Calculation for Delivery Orders
Overview: If you use the Oracle Maps Cloud Service API for proximity location, you can use turn-by-turn distance calculation, rather than straight-line distance calculation, for delivery orders that use a specified carrier.
Useful when? You might use this option to choose fulfilling locations based on the actual driving distance from the fulfilling location to the customer’s address. This way, you can avoid routes with a longer driving distance if, for example, an additional few miles are required to cross a bridge to get from a store location to the customer’s address, even though the store location and the customer’s address are directly across a river from one another, or if a U-turn is required to drive to the customer’s address.
Process overview: Order Broker uses the integration with Oracle Maps Cloud Service to determine the turn-by-turn distance of potential fulfilling locations as follows:
-
Submits the customer location to Oracle Maps Cloud Service determine its longitude and latitude.
-
Pre-qualifies potential locations based on straight-line distance:
-
Calculates the straight-line distance from each potential fulfilling location, based on the latitude and longitude of each.
-
Eliminates any location whose straight-line distance exceeds the maximum distance, either defined in the web service request or from the Maximum Turn-by-Turn Distance defined at the Preferences screen, as described below, or that does not have a latitude and longitude defined.
-
-
Submits a turn-by-turn request to Oracle Maps Cloud Service, providing the latitude and longitude of the customer’s location as the starting location, and the latitude and longitude of each potential fulfilling location within the specified maximum distance from the customer’s location.
-
When Oracle Maps Cloud Service returns the actual turn-by-turn distances, Order Broker omits any locations whose turn-by-turn distance exceeds the defined maximum distance from consideration. For example, the maximum distance is defined as 15 miles. The distance for location A was 14.78 miles based on the initial pre-pass calculation, but is 15.5 miles based on the turn-by-turn calculation. As a result, location A is not included in the list of eligible locations.
When does turn-by-turn distance calculation take place? This calculation takes place when:
-
You use Order Maps Cloud Service, and have completed the Geocode setup at the Tenant-Admin screen, including entering a valid Turn-by-Turn Distance URL.
-
The carrier specified for the request or order matches the Carrier for Turn-by-Turn Distance Evaluation specified at the Preferences screen.
-
Order Broker needs to find a fulfilling location for a delivery order in response to:
-
Locate items: When:
-
The fulfillment_type in the locate items request is DELIVERY, and
-
The <ship_via> is the Carrier for Turn-by-Turn Distance Evaluation.
The Maximum Turn-by-Turn Distance and unit of measure are used.
If the request message specifies a requested_location, only that location is returned in the response message, with a distance of 0.0.
-
-
Product availability: When:
-
A type of is DELIVERY is specified in the product availability search request and,
-
The ship_via is the Carrier for Turn-by-Turn Distance Evaluation.
The range_distance and range_unit, if any, specified in the request are used; otherwise, the Maximum Turn-by-Turn Distance and unit of measure are used.
-
-
Submit Order request: When:
-
The transaction_type_id is DELIVERY in the submit order message, and
-
The ship_via is the Carrier for Turn-by-Turn Distance Evaluation.
The submit order request does not specify a distance or unit of measure, and the Maximum Turn-by-Turn Distance and unit of measure are always used.
Status Update rejecting the order or line: When:
-
The order type for the order specified in the status update request message rejecting the order or line is DELIVERY, and
-
The ship via is the Carrier for Turn-by-Turn Distance Evaluation.
The status update request does not specify a distance or unit of measure, and the Maximum Turn-by-Turn Distance and unit of measure are always used when the order or order line is rejected.
-
-
Rejecting an order or line in order inquiry: When:
-
You change the status to rejected at the Order screen or the Edit Order Item window, if the order type is DELIVERY, and
-
The ship via is the Carrier for Turn-by-Turn Distance Evaluation.
There is no option to specify a distance or unit of measure in order inquiry, and the Maximum Turn-by-Turn Distance and unit of measure are always used in this case.
-
Troubleshooting:
-
As with straight-line distance calculation, the Shop Order When Proximity Unknown preference controls how to handle submit order requests when the proximity cannot be determined. See that preference for more information.
-
The Trace Shopping Log screen indicates when a location is eliminated from consideration based on distance, including turn-by-turn distance, with a Reason of Proximity Distance. The distance used as a criterion is indicated.
-
Turn-by-turn distance calculation is enabled for a maximum of 50 locations within the requested distance. If there are more than 50 locations, the search will fail.
Note:
-
When you configure Carrier for Turn-by-Turn Distance Evaluation at the Preferences screen, Order Broker does not confirm that the Turn-by-Turn Distance URL is configured at the Tenant-Admin screen.
-
Similarly, Order Broker does not check whether there are any organizations configured for turn-by-turn distance at the Preferences screen if you do not set the Turn-by-Turn Distance URL setting at the Tenant-Admin screen.
For more information: See Using the Oracle Maps Cloud Service API for background and additional setup information.