Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This guide will help you understand how to manage and route orders efficiently using HotWax Commerce’s Order Routing App, optimizing order fulfillment strategies.
Retailers handling multiple sales channels and fulfillment locations need sophisticated order routing. It allows each order to be fulfilled from the most optimal location, considering factors such as shipping method, proximity to the customer, inventory levels, fulfillment capabilities, and the option to split orders across locations. Effective order routing helps retailers achieve faster delivery times, reduce shipping costs, and maintain balanced inventory across all locations.
Configurable order routing takes traditional routing a step further by allowing retailers to customize and fine-tune order routing across their fulfillment network. Instead of depending on a fixed set of rules, configurable routing uses a brokering algorithm that evaluates orders and fulfillment options against a series of sequential rule sets, each with specific conditions.
This high level of customization enables retailers to create order routing that aligns with their unique business needs, and adjust routing parameters in real time without requiring external support. Retailers can optimize factors such as fulfillment costs, inventory distribution, and workload across locations, offering a strategic approach to order management. For scenarios where an order doesn’t meet the criteria of any rule set, configurable routing allows retailers to define specific actions to manage all unfillable orders, making sure no order is left unresolved.
This dynamic approach to order routing also lets retailers quickly adapt to evolving market conditions and customer expectations.
HotWax Commerce's highly dynamic and configurable Order Routing App
provides a structured framework for managing order routing with flexibility. The app enables retailers to define how orders are routed across their fulfillment network.
Below is a brief overview of the brokering framework, we will understand each component in more detail in the following sections.
Order routing is organized into three hierarchical levels:
A brokering run is the highest level of organization in order routing and lets retailers control the routing frequency based on business needs. Each brokering run can have a different frequency, routing different batches of orders to meet varying fulfillment priorities. For example:
A brokering run scheduled every 5 minutes could prioritize high-priority orders, like same-day deliveries for fast routing and fulfillment.
For standard delivery orders with medium priority, a separate brokering run can be set to run every 6 hours, aligning with less urgent timelines.
Within each brokering run, there are multiple routings, or “routing rules.” Each routing defines a batch of orders by using filters and sorting criteria. For example, in a "High-Priority Run," routings might include:
Same-day delivery batch: Includes orders that need same-day delivery.
Next-day delivery batch: Includes orders on next-day delivery.
Two-day delivery batch: Includes orders on two-day delivery.
These routing rules help retailers prioritize routing for specific order batches with different fulfillment timelines and conditions.
Within each routing, multiple inventory rules define how inventory is allocated to the order batches. These rules allows for optimal facility look up based on factors such as proximity, stock availability, and other strategic criteria. For example:
Same-day delivery batch: Inventory rules can prioritize fulfillment from warehouses within a 100-mile radius of the customer to meet same-day delivery targets. If inventory is unavailable, a secondary rule could expand the range to 250 miles and include stores.
Next-day delivery batch: For next-day orders, inventory rules can prioritize fulfillment from warehouses within a 250-mile range, accommodating the one-day delivery SLA. Next inventory rules in sequence can apply if the first inventory rule doesn’t allocate inventory for all orders in the batch.
In the following sections, we’ll dive deeper into each level, to understand how brokering runs, routing rules, and inventory rules work together to optimize order routing.
This document aims to provide detailed troubleshooting steps for resolving issues related to order brokering in HotWax Commerce. The goal is to ensure smooth operation of the brokering engine, proper scheduling, and correct configuration of inventory rules, order batches, and facilities.
HotWax Commerce Order Brokering is a critical function that ensures orders are routed correctly based on predefined rules and schedules. Issues with order brokering can result in delays, incorrect order routing, and inventory mismanagement. This document will guide users through diagnosing and resolving common issues encountered during the brokering process.
The retailer, a prominent footwear company with over 200 stores across multiple countries, produces its own footwear and partners with global brands to offer a diverse range of products in both online and physical stores.
Previously, the retailer focused primarily on physical stores and fulfilled online orders from a single retail location, as they did not have any dedicated warehouses. With the implementation of HotWax Commerce, they have transitioned to using all their stores as fulfillment centers. This shift optimizes inventory management and enhances order fulfillment efficiency across their entire store network, benefiting both in-store and online orders.
The retailer offers several shipping options, including:
Next-Day Delivery
Two-Day Delivery
Three-Day Delivery
Standard Shipping (Within 7 days)
The retailer aims to maintain a minimum stock level at each store before allocating orders. This ensures inventory availability at all locations, optimizing fulfillment efficiency and reducing the risk of stock shortages and order cancellations.
Since the retailer operates within a limited geographical area, proximity is not a major concern. Instead, order routing is based solely on stock availability to ensure efficient fulfillment and prevent inventory shortages.
If no store has sufficient inventory to fulfill an order, the order should be flagged and brokered again after a set time to check for inventory replenishment, ensuring the order can eventually be fulfilled.
The retailer requires regular brokering to ensure timely processing of both regular and rejected orders. For unfillable orders, the brokering process should occur within a predefined interval, allowing time for potential inventory replenishment.
The routing process for the retailer must filter locations based on Minimum Stock availability. Locations with 15 or more units of an item should be prioritized first.
If inventory is insufficient, the criteria need to be adjusted to include locations with 10 or more units, then 5 or more units, expanding the search while still focusing on locations with higher stock levels.
If no location has the minimum stock, any location with available inventory should be included to ensure that orders are fulfilled.
If no single location can fully meet the order requirements, partial fulfillment should be allowed. This approach optimizes inventory usage and improves order completion rates by combining stock from multiple locations.
Expedited Orders should be prioritized before standard orders when routing orders. Furthermore, if there are orders that are rejected once from any fulfillment location due to inventory unavailability, these orders should be prioritized before regular orders that are being routed for the first time.
We begin by creating a Regular Order Run. This run will manage all regular orders, excluding unfillable orders, which the retailer prefers to broker separately since the schedule of these run would be different. The regular run will consist of multiple routing rules, each configured based on different shipping methods and fulfillment priorities. The regular order runs are scheduled every 15 minutes for timely order processing and fulfillment.
Within the Regular Order Run, set up an Order Routing Rule to define which orders will be routed in this batch based on queues, shipping methods, and priority. The orders are fetched based on the following configurations:
The retailer applies multiple filters to ensure proper order routing:
Queues: Orders are filtered from the Brokering Queue to broker all orders that will be fulfilled for the first time.
Shipping Method Filter: Only orders using Standard Shipping are included.
Orders are sorted by Order Date, ensuring that the oldest orders are fulfilled first.
For inventory management, the retailer sets up five inventory rules to ensure orders are routed to stores based on stock availability.
Inventory Filter: Orders will be routed to stores that have 15 or more units of inventory available for the ordered items.
Inventory Sort: Orders are sorted by inventory balance, ensuring stores with the highest available stock are prioritized.
Action: If this rule is not met, the order is sent to the next inventory rule.
Inventory Filter: Stores must have at least 10 units of inventory available.
Inventory Sort: Orders are sorted based on inventory balance.
Action: Orders that do not meet this rule are sent to the next rule.
Inventory Filter: Stores must have at least 5 units of inventory available.
Inventory Sort: Orders are sorted by inventory balance.
Action: If the stock requirement is still not met, the order moves to the next rule.
Inventory Filter: No specific stock limit is required; any store with available inventory is considered.
Inventory Sort: Orders are sorted by inventory balance.
Action: Partial fulfillment is not allowed. If inventory is still unavailable, the order moves to the next rule.
Inventory Filter: No specific stock limit is required; any store with available inventory is considered.
Inventory Sort: Orders are sorted by inventory balance.
Action: Partial fulfillment is allowed so that available inventory can be allocated to the orders. If the orders remain unfulfilled, they can be sent to the unfillable queue
.
This system aligns with the retailer’s Minimum Stock Availability and Order Fulfillment Priority requirements by ensuring orders are routed based on stock availability and fulfillment efficiency.
The second routing rule handles all orders with expedited shipping options, including Next-Day, Two-Day, and Three-Day Delivery. The orders are fetched based on the following configurations:
The retailer applies multiple filters to ensure proper order routing:
Queues: Orders are filtered from the Brokering Queue to broker all orders for the first time.
Shipping Method Filter: Only orders using Next-Day, Two-Day, and Three-Day Shipping are included.
Orders are sorted by Shipping Method (prioritizing Next-Day, Two-Day, and then Three-Day) and by Order Date.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
This routing rule manages rejected standard orders that were previously rejected due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter:
Queue Filter: Orders are fetched from the Rejected Queue.
Shipping Method Filter: Only orders using Standard Shipping are included.
Order Sort: Orders are sorted by Order Date, ensuring that orders rejected earlier are processed first for potential fulfillment.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
This routing rule manages rejected expedited orders, including Next-Day, Two-Day, and Three-Day Shipping orders that were not fulfilled initially due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter & Sort
Order Filter:
Queue Filter: Orders are fetched from the Rejected Queue.
Shipping Method Filter: Only orders with Next-Day, Two-Day, and Three-Day Shipping are included.
Order Sort: Orders are sorted by Shipping Method (Next-Day first, followed by Two-Day, and then Three-Day) and by Order Date to ensure expedited orders are prioritized appropriately.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
Since the client wants Rejected order routing first before the regular orders and wants to prioritize expedited orders, the routing Rules should be sequenced in the following manner:
Rejected Expedited Orders
Rejected Standard Orders
Expedited Orders
Standard Orders
Retailers need to create a separate run to handle orders when inventory is unavailable across all stores. This is created as a separate run since inventory replenishment can take time so checking for inventory in every 15 minutes is not required. Therefore, this run is scheduled to run in evey 6 hours and once stock is available, the orders are re-brokered.
This routing rule manages unfillable expedited orders, including Next-Day, Two-Day, and Three-Day Shipping orders that were not allocated initially due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter:
Queue Filter: Orders are fetched from the Unfillable Queue.
Shipping Method Filter: Only orders with Next-Day, Two-Day, and Three-Day Shipping are included.
Order Sort: Orders are sorted by Shipping Method (Next-Day first, followed by Two-Day, and then Three-Day) and by Order Date.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
This routing rule manages unfillable standard orders that were previously rejected due to stock unavailability. The orders are fetched based on the following configurations:
Order Filter:
Queue Filter: Orders are fetched from the Unfillable Queue.
Shipping Method Filter: Only orders using Standard Shipping are included.
Order Sort: Orders are sorted by Order Date, ensuring that orders rejected earlier are processed first for potential fulfillment.
Note: The inventory rules for this order batch are the same as the rules for standard orders, focusing on maintaining inventory balance.
Since the client wants to prioritize expedited orders, the routing Rules should be sequenced in the following manner:
Unfillable Expedited Orders
Unfillable Standard Orders
Ensure all inventory rules are active. Move the order routing from "Draft" to "Active" to ensure it's live and processing orders.
Set a schedule for how frequently each routing run will execute. For regular orders, schedule the run every 15 minutes for timely order processing, while for unfillable orders, schedule the run every 6 hours.
This retailer utilizes HotWax Commerce’s advanced routing system to streamline order fulfillment. By leveraging Brokering Safety Stock, the retailer ensures orders are prioritized based on available inventory, optimizing fulfillment for both expedited (Next-Day, Two-Day, Three-Day) and standard shipping. Orders that cannot be fully or partially fulfilled are routed to a separate unfillable queue, with regular brokering runs every 15 minutes and unfillable runs every 6 hours, ensuring efficient handling and timely delivery across their retail network.
This document presents a case study of a Canada-based online retailer operating a central warehouse and multiple retail stores, with shipping capabilities extending to the USA. The retailer focuses on optimizing logistics to improve delivery speed, reduce operational costs, and enhance inventory management. This guide explores how businesses with similar models can leverage an advanced order routing system to achieve these goals.
The retailer offers standard shipping with delivery within 7 days for all USA and Canada orders.
All orders should be prioritized by the FIFO rule, ensuring that orders placed first are brokered first.
To minimize international shipping costs, it is essential to fulfill all orders through the central warehouse rather than retail stores. Shipping directly from the warehouse ensures cost efficiency and avoids the higher expenses associated with international shipping from individual retail locations.
For orders within Canada, the warehouse is the primary fulfillment center. Retail stores act as backup fulfillment points only when the warehouse lacks sufficient inventory. This strategy enables effective inventory management while still providing backup options to meet demand.
If no inventory is available at any locations, the order should be available for re-routing. These unfillable orders should be rerouted along with regular orders.
The brokering should be scheduled frequently to ensure continuous and timely order processing.
US Orders should be prioritized before Canada Orders since Canada orders can also be fulfilled from the store while US orders can only get inventory from the warehouse.
All US orders must be fulfilled exclusively from the central warehouse in Canada.
Warehouse First: Canada orders should be prioritized to be fully fulfilled from the warehouse.
Store Fulfillment: If the warehouse lacks inventory, orders should be fully fulfilled from stores.
Partial Fulfillment from Warehouse: If neither the warehouse nor stores have the entire stock, orders items with available inventory should brokered to the warehouse.
Partial Fulfillment: If the warehouse is out of stock, partial fulfillment from stores should be allowed.
The retailer operates two separate online stores in the US and Canada. During the initial mapping of shipping methods, they should be configured distinctly to differentiate between orders destined for the USA and those for Canada.
U.S. Orders: Mapped to "US_Standard_Shipping." All standard orders from the US store will use this shipping method.
Canada Orders: Mapped to "Standard_Shipping." Standard orders from the Canada store will use this shipping method.
Two facility groups need to be created:
Group for Warehouses: To centralize warehouse-based fulfillment.
Group for Stores: To route orders to retail stores when necessary.
A single brokering run is scheduled every 15 minutes to ensure timely order processing for both U.S. and Canada orders. This regular interval ensures that orders are brokered efficiently across different regions.
This routing rule is dedicated to handling Canadian orders, ensuring they are processed separately from U.S. orders.
Two filters are applied in this routing rule:
Queue Filter: Orders are fetched from three queues to ensure complete coverage of all types of Canadian orders:
Brokering Queue: Includes orders brokered for the first time.
Rejected Item Parking Queue: Includes orders rejected from fulfillment locations.
Unfillable Queue: Includes orders that were previously unfillable due to a lack of available inventory.
Shipping Method Filter: The filter is set to include only Standard Shipping, which is the designated shipping method for Canada orders.
The orders are sorted by Order Date, ensuring that Canadian orders are brokered on a first-come, first-served basis, following the FIFO principle.
The following five inventory rules are applied to route Canadian orders effectively:
Inventory Filter: A Facility Group Filter is applied to prioritize fulfillment from Warehouses Only.
Inventory Sort: Orders are sorted by Proximity to the customer.
Action: Partial fulfillment is turned off, and if no warehouse can fulfill the order, the order is sent to the next rule.
Inventory Filter: A Facility Group Filter is applied to allow fulfillment from any store.
Inventory Sort: Orders are sorted by Proximity to the customer to prioritize the nearest store.
Action: Partial fulfillment is turned off. If no store can fulfill the entire order, the order is sent to the next rule.
Inventory Filter: A Facility Group Filter is applied to allow fulfillment from warehouses only.
Inventory Sort: Orders are sorted by Proximity to the customer to minimize delivery time from the warehouse.
Action: Partial fulfillment is turned on, meaning available inventory in the warehouse is allocated to the order. For items that are unavailable, the order is sent to the next rule.
Inventory Filter: A Facility Group Filter is applied to allow fulfillment from all stores.
Inventory Sort: Orders are sorted by Proximity to the customer, ensuring the closest store can fulfill the order.
Action: Partial fulfillment is turned on so that available inventory in the stores is allocated to the order. For any remaining unfilled items, the order is sent to the Unfillable Queue for further processing later.
For U.S. orders, a U.S. Routing Rule is created to manage routing and fulfillment. This batch ensures U.S. orders are processed based on their specific requirements.
Order Filter: Two filters are applied to U.S. orders:
Queue Filter: Orders are fetched from the Brokering Queue, Rejected Item Parking, and Unfillable Queue, ensuring all orders are processed, including previously unfulfilled or rejected orders.
Shipping Method Filter: Only orders using the US_Standard Shipping Method are included in this batch, ensuring that only U.S. standard shipping orders are routed.
Order Sort: Orders are sorted by Order Date, ensuring that earlier orders are processed first, following the first-in, first-out (FIFO) principle.
For U.S. orders, the following inventory rule is applied to prioritize the central warehouse as the fulfillment location.
Inventory Filter: The Facility Group Filter is set to include only the warehouse as the fulfillment source for U.S. orders.
Inventory Sort: Orders are sorted by Proximity to ensure that the nearest location is considered.
Action: Turn on partial fulfillment to allow the system to fulfill orders from available inventory in the warehouse. If any items are unavailable in the warehouse, the order is moved to the Unfillable Queue for future processing.
U.S. orders should be mapped to "US_Standard_Shipping," and a new routing batch should be created to ensure that these orders are fulfilled on a FIFO basis.
All U.S. orders should be fulfilled from the central warehouse. Select the facility group filter for the warehouse, allowing partial fulfillment to allocate available inventory. If items are unavailable, move them to the unfillable queue.
Activate Inventory Rules: Define fulfillment strategies for U.S. and Canadian orders.
Activate Each Order Batch: Ensure orders are processed according to their respective shipping methods.
Activate the Brokering Run: Schedule the brokering run every 15 minutes to ensure continuous and timely order brokering.
By leveraging a robust order routing system, retailers can optimize order fulfillment. Specific batches for U.S. and Canada orders, combined with precise inventory rules, ensure that U.S. orders are fulfilled from the central warehouse, and Canada orders are managed efficiently between the warehouse and stores. This streamlined approach enhances order processing efficiency, reduces costs, and supports reliable delivery within the 7-day standard shipping timeframe.
The Order Routing app in HotWax Commerce offers retailers flexibility in configuring various scenarios to meet their specific needs. However, certain settings outside the app can still impact order routing processes.
To prevent operational strain when fulfilling online orders alongside walk-in customers, retailers can set a maximum order capacity for each store. This helps avoid exceeding a store's fulfillment capabilities. Once the set limit is reached, the brokering engine will automatically route further orders to other facilities with available capacity.
The process for setting the Maximum Order Capacity is consistent across the Facility, Fulfillment, and ATP apps. Follow these steps to configure the maximum capacity for a facility:
In each app (Facility, Fulfillment, ATP), locate the capacity settings for the store.
Click the capacity chip on the store’s order capacity card.
Choose from the following options:
Unlimited Capacity
No Capacity
Custom Capacity
Select Custom Capacity
and enter the desired maximum limit (e.g., 10 orders per day) for each facility.
During peak hours, store managers can turn off fulfillment to manage store capacity by setting the order capacity to `No Capacity`.
To optimize inventory usage and fulfillment speed, retailers often split orders across multiple locations. However, this can result in high shipping costs, especially for low-value items. HotWax Commerce provides an option to set a Brokering shipment threshold value to avoid high shipping costs. If this threshold is set, orders will be allowed to split only if they are above the mentioned threshold.
Example:
1- If an order contains a `Black Belt' of $80 and a 'Brown Wallet' worth $160, the order will not be split as both items should be above the threshold.
2- If an order contains a 'Black Belt' and 'Black Wallet' valued at $80 each, the order will not be split as both item falls below the threshold.
3- If an order contains two items—'Brown Belt' and 'Brown Wallet'—each worth $160, and the brokering threshold is set to $100, the items will be split since both items are above the threshold.
Navigate to Store Settings
In the HotWax Commerce Order Management System, go to the Product Store
page.
Click Add Settings
in the store settings section.
Set Brokering Shipment Threshold
From the settings submenu, select Brokering Shipment Threshold
.
Enter the threshold value to prevent splitting orders below this amount (e.g., set the threshold to $100).
Save Settings
Save the store settings to apply the brokering threshold across the Product Store.
Once the threshold is set, orders will only be split if the value of the items meets or exceeds the threshold, ensuring more efficient shipping and reducing losses on low-value shipments.
Learn about Brokering Runs.
As discussed, brokering runs serve as the highest level of organization in order routing, defining when and how frequently order routing takes place. Each brokering run has a specific frequency, such as every 5 minutes, hourly, daily, or at custom intervals based on business needs.
Multiple brokering runs allow retailers to set different frequencies for each batch of orders. For example, high-priority orders can be routed more frequently (every 5 minutes), so urgent orders receive immediate attention, while standard or less time-sensitive orders are routed at more moderate intervals (hourly).
Single run setup: For retailers with similar urgency across orders and a lower order volume, a single run at regular intervals (every hour) can manage all order types in one brokering cycle.
Everyday order routing: Within this single brokering run, multiple routing rules (order batches) can be created to address different delivery needs, such as same-day delivery orders, two-day delivery orders and standard delivery orders. We’ll understand in depth about routing rules in the next sections.
Multiple runs for different priorities: In the event where order fulfillment priorities vary significantly and the order volume is high, creating separate runs can optimize resources and allocation:
High-Priority Orders: For orders requiring same-day, next-day, or two-day delivery, setting a frequency of the brokering run to every 5 minutes can quickly allocate inventory to this order batch and meet urgent fulfillment deadlines.
Medium-Priority Orders: For orders on standard deliveries, a separate brokering run with a 6-hour interval can balance routine order routing with the available resources.
Seasonal run adjustments: During peak seasons, like holidays, retailers can activate a dedicated high-frequency brokering run to handle increased order volumes. For example, a run set to every 5 minutes for all orders that can remain in draft mode on regular days but be activated to handle seasonal surges.
The frequency and configuration of each run are critical for optimizing brokering strategies, allowing retailers to meet diverse order priorities effectively.
Now, let’s understand how you can achieve your order routing and fulfillment goals with the HotWax Commerce’s Order Routing App
:
Open the Order Routing App
Start by opening the Order Routing App
. This will take you to the home page, where you can view all previously created brokering runs. If no brokering runs have been created yet, the page will appear blank.
If you have multiple product stores, you’ll be prompted to choose the store for which you want to create a brokering run. This feature helps in managing order routing uniquely for each store. Learn more about product stores.
Initiate a new run
Click on the New Run
button to begin creating a new brokering run. You’ll be prompted to provide a name for this run, which will help identify it in the list of all existing brokering runs.
Name the run
Give the run a meaningful name that reflects its purpose. For example, if you’re creating a single brokering run for all orders you can name it “Everyday order routing” or if you are creating multiple brokering runs based on the order urgency, you can name them as “High priority orders” with the next run as “Medium priority orders”.
Add a description
After naming the run, we need to add a description to provide further context. Descriptions help in clarifying the intent behind each brokering run, making it easier for team members to understand its specific function.
Click on a specific Run
to open its details and now navigate to the Description card and add details that best describes your run.
For example, if there is a single brokering run "Everyday order routing", you can write: “Hourly routing for all online orders” or if the run focuses on urgent orders, you can write: “Prioritized routing for same-day, next-day, and two-day delivery orders.”
Schedule the brokering run with a predefined frequency or using cron expressions
Navigate to the Scheduler card, here you can set the frequency and runtime for your brokering run.
You can choose predefined intervals or use cron expressions to customize the schedule based on your business needs. Here are a few examples of valid cron expressions that you can use:
Run Every 5 Minutes
*/5 * * * *
Triggers the brokering run every 5 minutes throughout the day.
Run Every Hour
0 * * * *
Triggers the brokering run every hour throughout the day.
Run Every Hour Between 8 AM and 2 PM
0 8-14 * * *
Triggers the brokering run at the top of every hour, between 8 AM and 2 PM.
Run Every Day at 7 AM
0 7 * * *
Triggers the brokering run every day at 7 AM.
Run Every 15 Minutes Between 6 AM and 6 PM
*/15 6-18 * * *
Triggers the brokering run every 15 minutes from 6 AM to 6 PM.
For our Everyday order routing brokering run we can directly choose the predefined "Hourly" frequency and save it.
You need to change the brokering run's status from Draft to Active to make it operational.
By default, new brokering runs are set to Draft. Simply select Active from the dropdown to activate it, or revert an active run back to Draft if adjustments are needed.
Ideally, activate the brokering run only once you've fully configured your routing, inventory rules, and other settings.
Understanding how to view, schedule, and manage brokering runs is important for optimizing your order routing strategies.
Now, let's understand about routings within a brokering run.
This section contains use cases designed to help you understand how various scenarios can be handled in the HotWax Commerce Order Routing App. These use cases are written as if you are creating a brokering run for the first time, ensuring simplicity and clarity for new users.
However, if you already have an existing brokering run and want to maintain the same schedule, you don’t need to create a new run. Simply add the routing rules from these cases to the relevant existing runs. This way, you can enhance your current routing logic without altering your established workflows.
A retailer wants to ensure that all orders placed through various marketplaces are fulfilled exclusively from their warehouse. This scenario is common for businesses that prefer to manage marketplace orders separately due to specific logistical or contractual obligations.
Marketplace_sales_channel must be created in HotWax Commerce and mapped with the relevant sales channels in Shopify.
A facility group must be created in HotWax Commerce with the Brokering_group subtype, which includes all warehouse locations.
To create a new brokering run for marketplace orders, begin by opening the Order Routing App. If you are managing multiple product stores, select the relevant store to ensure marketplace orders are routed correctly. Next, click on New Run and name the run something clear and specific, such as “Marketplace Order Routing,” to easily identify its purpose. Add a description like “Routing all marketplace orders through warehouse locations only” to provide clarity for your team. Finally, navigate to the Scheduler card and set the appropriate frequency for this routing run, ensuring marketplace orders are processed on time.
To set up routing rules for marketplace orders, first, select the previously created routing run for marketplace orders in the Order Routing App. This ensures the routing rule is linked to the correct run.
In the next step, apply the necessary configurations:
Order Filter: Use the Sales Channel filter to include only marketplace orders, ensuring orders from Shopify or other marketplaces are grouped and brokered separately from other channels.
Order Sort: Set the sorting criteria to Order Date. This ensures that older marketplace orders are prioritized for inventory allocation, following a first-in, first-out (FIFO) approach.
To create inventory rules for marketplace orders, first ensure that the appropriate routing rule for marketplace orders is selected, then click on Add Inventory Rule. Once the inventory rule is created, follow these steps:
Inventory Filter: Apply the Facility Group filter and select the group for warehouses only. This ensures that the inventory from warehouse locations is considered for the routing.
Inventory Sort: Sort the inventory by proximity to the customer’s delivery address. This helps minimize shipping costs by prioritizing inventory that is closer to the destination.
Actions: If inventory is unavailable, toggle on Partial Fulfillment to allow order splitting. For completely unavailable inventory, select Send Orders to Queue and assign them to the Unfillable Queue
for further processing.
Retailers often prefer to fulfill eCommerce orders from their warehouse first, but when inventory is unavailable, the orders should be routed to retail stores for fulfillment. This helps ensure that orders are not delayed and inventory is optimized across all available locations.
To implement this scenario, you need to create two facility groups in HotWax Commerce. First, create a Warehouses facility group under the Brokering_Group subtype, which will include all your warehouse locations. Second, create a Stores facility group, also under the Brokering_Group subtype, to ensure that all retail store locations are available for routing when necessary. These facility groups ensure a clear separation of inventory between warehouses and retail stores.
To create a new brokering run for eCommerce orders, open the Order Routing App
. If your system manages multiple product stores, be sure to select the relevant store from the bottom-left switcher to ensure the correct routing. Click on New Run
, and give it a clear name such as "eCommerce Order Routing." This naming convention will help easily identify the run for future use. In the description field, add something like "Prioritizing warehouse fulfillment, with store fallback" to clarify the purpose of the run for the rest of your team. Finally, navigate to the Scheduler card
to set the run's frequency. This ensures that eCommerce orders are processed in a timely manner.
To configure the routing rules for eCommerce orders, first, ensure that the eCommerce Order Routing run is selected.
Order Filter: Use the Sales Channel filter
to select only eCommerce orders. This will group and broker orders specifically from your eCommerce channel, keeping them separate from orders placed through other sales channels.
Order Sort: Set the sorting criteria to Order Date
. This ensures that older orders are processed first, following a first-in, first-out (FIFO) model for order fulfillment.
Now, create inventory rules to route orders through the appropriate facilities. First, make sure that the correct eCommerce Order Routing rule is selected, then click on Add Inventory Rule
.
First Inventory Rule for Warehouses The first rule ensures that orders are fulfilled from warehouse locations:
Inventory Filter: Apply the Facility Group filter
and select the group for Warehouses only, ensuring that orders are initially routed through the warehouse locations for fulfillment.
Inventory Sort: Sort by proximity
to the customer’s delivery address to help minimize shipping costs, prioritizing fulfillment from warehouses closest to the destination.
Actions: If inventory is unavailable at the warehouses, set the rule to send the order to the next inventory rule, allowing the system to route the order to available retail stores. If you want to allocate partially available inventory from the warehouse to the orders, turn on the toggle for Prtial Fulfillment.
Second Inventory Rule for Stores The second rule is triggered when the warehouse is unable to fulfill the order:
Inventory Filter: Apply the Facility Group filter
and select the group for Stores, allowing the system to route orders through retail store locations as a secondary option.
Sort Inventory: Sort by proximity
to the customer’s delivery address, helping to minimize shipping costs by routing orders to the nearest store.
Actions: If the inventory is also unavailable in the stores, send the order to the Unfillable Queue
for further processing, ensuring that orders that cannot be fulfilled are properly handled. Allow partial fulfillment by turning on the toggle to allow order splitting and ensure available items are fulfilled.
Once the routing rules and inventory rules are set up, the next step is to activate the rules and schedule the run. First, change the status of the eCommerce Order Routing run from Draft
to Active
. This makes the run ready for live processing. After that, activate the inventory rules for both warehouses and stores, ensuring they are applied during the routing process. Finally, schedule the routing run by setting the frequency at which it should occur, ensuring that eCommerce orders are brokered and fulfilled without delays.
When orders is rejected from stores due to inventory unavailability, the order routing engine automatically re-routes the rejected orders to the next best location with available inventory. This ensures fulfillment while minimizing cancellations, and improving operational efficiency and customer satisfaction.
Start by creating a new brokering run for rejected orders in the Order Routing App
. Click on New Run
and name it something clear, such as “Rejected Orders Re-Routing.” Add a description like "Re-routing rejected orders to available locations" for better team understanding. Finally, navigate to the Scheduler card
to set the frequency for this routing run, ensuring that rejected orders are handled in a timely manner.
Once the run is created, set up the routing rules for re-routing rejected orders.
Order Filter: Apply the Queue Filter
in the order batch settings and select the Rejected Order Item
queue. This ensures that only rejected orders are included in this batch.
Order Sort: Set the sorting criteria to Order Date
, ensuring that the oldest rejected orders are reprocessed first, following a first-in, first-out (FIFO) method.
Now, create an inventory rule that routes orders to the best available location.
Inventory Filter: If you are checking the inventory at all locations, without any additional filters, you don't have to add inventory rule here.
Inventory Sort: Sort by proximity
to the customer’s delivery address to minimize shipping costs.
Actions: If inventory is unavailable across all locations, select one of the following options:
If you want to split the order to allocate the inventory for the items available, turn on the toggle for partial rejection.
If you have another inventory rule for further allocation, select send to Next Rule
to attempt routing based on the next rule.
If no further rules exist, select send to Unfillable Queue
to handle orders manually or through alternative processes.
Once the routing and inventory rules are configured, activate the Rejected Orders Re-Routing run by changing its status from Draft
to Active
. Then, schedule the routing runs to ensure timely re-routing of rejected orders at regular intervals.
Retailers may want to fulfill orders from locations closest to the customer to minimize delivery times and costs. By applying a proximity-based routing strategy, businesses can improve both operational efficiency and customer satisfaction.
To start, open the Order Routing App
and create a new brokering run for proximity-based routing. Name the run something descriptive, such as "Proximity Order Routing." In the Scheduler card
, set the appropriate frequency for the run to ensure timely processing of orders based on proximity.
Once the run is created, define the routing rules to prioritize fulfillment based on customer proximity.
Order Filter: Apply the Queue Filter
to select the Brokering Queue
. By default, orders from all queues will be included. If you need to focus on a specific queue, select accordingly.
Order Sort: Sort the orders by Order Date
. This ensures that older orders are given priority in the routing process, following a first-in, first-out (FIFO) approach.
Now, configure the inventory rule to allocate stock based on proximity.
Inventory Filter: Apply the Proximity Filter
with a specified distance (e.g., 50 miles). This ensures that orders are routed to locations within the defined proximity of the customer’s delivery address.
Inventory Sort: Sort the inventory by Proximity
. This ensures that the nearest fulfillment locations are prioritized for order allocation.
Actions: If you want to split the order to allocate the inventory within 50 miles for the items available, turn on the toggle for partial rejection. In case of inventory unavailability, you can choose to send the order to the next rule if you want to broaden the search beyond 50 miles, select the option to send the order to the next inventory rule. Alternatively, if you want to limit fulfillment to locations within 50 miles and no inventory is available, send the order to the Unfillable Queue
for further action.
Once the rules are set up, activate the proximity-based rules and routing run by changing the status from Draft
to Active
. Then, schedule the routing run at regular intervals to ensure efficient processing of orders based on proximity.
Retailers need to balance in-store inventory for walk-in customers while fulfilling online orders. To do this, they want to allocate online orders only to locations with sufficient stock, ensuring that in-store inventory is preserved. Using the Brokering Safety Stock
feature allows retailers to set a minimum stock threshold for order allocation, protecting essential inventory for physical store customers.
Open the Order Routing App
to begin creating a new brokering run. Name the run something like "Minimum Stock Order Routing" for clarity, and provide a description such as "Allocating online orders only to locations meeting minimum stock levels." Then, in the Scheduler card
, set the appropriate frequency for the routing run to ensure the timely processing of orders.
Define the routing rules to ensure online orders are routed only to locations that meet the minimum stock levels for each item.
Order Filter: Apply the Brokering Queue
filter to route orders from the appropriate queue.
Orde Sort: Sort orders by Order Date
to prioritize older orders in the routing process, ensuring a first-in, first-out (FIFO) approach.
Set up inventory rules that ensure fulfillment is done only from locations that meet the required stock levels.
First Inventory Rule:
Inventory Filter: Apply the Brokering Safety Stock
filter and define the minimum stock level required for inventory allocation. For example, if the Brokering Safety Stock
is set to greater than 10, the inventory will only be allocated if the store has more than 10 units of that item available. This ensures that walk-in customers have access to sufficient stock._
**InventorySort **: Sort the inventory by Inventory Balance
to prioritize locations with higher stock levels.
Action: If no location can fulfill the entire order based on the first rule, select the option to Send to Next Rule
.
Second Inventory Rule:
Inventory Filter: No specific filter is selected, as inventory can be allocated from any available location.
Inventory Sort: Sort the inventory by Inventory Balance
to prioritize locations with the most available stock.
Action: If partial fulfillment is allowed, enable Allow Partial Fulfillment
to split the order between multiple locations. If partial allocation is not an option, select Send to Unfillable Queue
.
Activate both inventory rules and the order routing batch. Ensure that the rules are in effect by changing the status of the batch from Draft
to Active
. Lastly, schedule the routing runs to occur at regular intervals, ensuring efficient and timely fulfillment of online orders while maintaining adequate stock levels for in-store customers.
Retailers who manage stores with varying rent agreements, especially those in malls where rent is tied to sales revenue, need to optimize order routing to avoid giving commissions to the malls. By prioritizing the stores that are not in malls, retailers can increase profitability.
Ensure that facility groups are created for stores with fixed rental agreements.
Fixed Rent Stores: Group stores with fixed or lower rent costs.
All Stores: Group all stores to use as a fallback for order fulfillment when necessary.
Open the Order Routing App
and set up a new brokering run. Name the run something like "Fixed Rent Store Fulfillment" to indicate that this run prioritizes stores with fixed or lower rent costs. In the Scheduler card
, set the appropriate frequency for routing to ensure orders are processed at regular intervals.
Define routing rules to prioritize cost-effective fulfillment locations.
Order Filter: Apply the Brokering Queue
filter to route orders from the appropriate queue.
Order Sort: Sort orders by Order Date
to prioritize older orders in the routing process.
Set up inventory rules to ensure fulfillment is prioritized based on store rent agreements.
First Inventory Rule:
Inventory Filter: Select the facility group created for stores with fixed or lower rent costs.
Inventory: Sort inventory by Inventory Balance
to prioritize locations with sufficient stock levels in these low-rent stores.
Action: If no location can fulfill the order based on this rule, select the option to Send to Next Rule
.
Second Inventory Rule:
Inventory Filter: Select the facility group that includes all stores to broaden the search to any available location.
Inventory Sort: Sort inventory by Inventory Balance
to prioritize locations with the most available stock.
Action: If partial fulfillment is allowed, enable Allow Partial Fulfillment
to split the order between multiple locations. If partial allocation is not an option, select Send to Unfillable Queue
.
Activate both inventory rules and the order routing batch. Ensure that the rules are active and schedule the brokering runs to execute at regular intervals, ensuring efficient and cost-effective fulfillment of online orders while managing rental costs.
Retailers need to balance the cost of shipping, which is influenced by both the distance and the number of shipments. The goal is to minimize shipping costs by considering when it's more cost-effective to ship from multiple locations versus a single distant location. This scenario is particularly relevant for retailers with stores and warehouses spread across a wide geographic area.
Open the Order Routing App
and create a new brokering run. Name it "Proximity and Cost-Based Shipping" to reflect that the routing will balance shipping costs with distance and split shipments when necessary. Set up a regular schedule for the run to ensure continuous order processing.
Define routing rules to balance shipping costs and minimize the distance of fulfillment.
Order Filter: Apply the Brokering Queue
filter to ensure that orders from the correct queue are routed.
Order Sort: Sort orders by Order Date
to ensure older orders are fulfilled first.
Define a series of four inventory rules to balance shipping costs with proximity and partial allocation options.
First Inventory Rule:
Inventory Filter: Apply a Proximity Filter
to limit the search to locations within 100 miles.
Inventory Sort: Sort the inventory based on Proximity
to prioritize the nearest locations.
Action: Disable partial allocation to ensure that the entire order is fulfilled from a single location within 100 miles. If no location can fulfill the order, send to the next rule
.
Second Inventory Rule:
Inventory Filter: Apply the same Proximity Filter
of 100 miles.
Inventory Sort: Sort the inventory based on Proximity
.
Action: Enable partial allocation to allow the order to be split across multiple locations within the 100-mile proximity. If the order cannot be fully allocated, send it to the next rule
.
Third Inventory Rule:
Inventory Filter: Remove the inventory filter to expand the search to distant locations without any proximity constraints.
Inventory Sort: Sort the inventory based on Proximity
.
Action: Disable partial allocation to require the entire order to be fulfilled from a single, distant location. If no single distant location can fulfill the order, send it to the next rule
.
Fourth Inventory Rule:
Inventory Filter: Allow all available locations to be included.
Inventory Sort: Sort the inventory based on Proximity
.
Action: Enable partial allocation to allow the order to be split across all available locations. If the order still cannot be fulfilled, send it to the unfillable queue
.
Activate all inventory rules and ensure that the order routing batch is active. Schedule the brokering runs to execute at regular intervals, ensuring a balance between shipping cost and distance while also handling split shipments when required.
Note: To further minimize the high cost of shipping due to order splitting, you can use the shipment threshold feature of HotWax Commerce.
Retailers often face scenarios where certain items in an order must be shipped together, while other items can be shipped separately. For example, if a customer orders a frame and lenses along with sunglasses, the frame and lenses must be shipped together, but the sunglasses can be shipped from a different location. In such cases, items like the frame and lenses are grouped to ensure they are always shipped together.
HotWax Commerce allows retailers to manage these scenarios by disabling the splitting of grouped items while keeping the option to split other items in the order. This ensures that grouped items, which are critical to be shipped together, are handled appropriately, while other non-grouped items can still be split for faster fulfillment.
Set up a brokering run in the Order Routing App
and label it “Grouped and Split Shipments” to manage orders containing both grouped and non-grouped items.
Set up routing rules to manage the overall flow of orders.
Order Filter: Apply the Brokering Queue
filter to prioritize orders correctly.
Order Sort: Sort by Order Date
to process the oldest orders first.
Define three inventory rules that control how grouped and non-grouped items are allocated, with specific actions for each rule.
First Inventory Rule:
Inventory Filters: Since no specific inventory filters are needed for this scenario, no filters are applied.
Inventory Sort: Sort inventory based on Proximity
to prioritize fulfillment from the closest locations.
Action: Disable both Partial Fulfillment
and Split Grouped Items
to ensure that the entire order, including grouped items, is fulfilled from a single location. If no location can fulfill the order, send it to the next rule.
Second Inventory Rule:
Inventory Filters: No filters are applied here as well.
Inventory Sort: Continue sorting by Proximity
to ensure the closest locations are prioritized.
Action: Enable Partial Fulfillment
to allow non-grouped items to be split across multiple locations but keep Split Grouped Items
disabled to ensure grouped items stay together. If unavailable, send the order to the next rule.
Third Inventory Rule:
Inventory Filters: Again, no filters need to be applied here.
Inventory Sort: Sort by Proximity
again to prioritize fulfillment from nearby locations.
Action: Enable both Partial Fulfillment
and Split Grouped Items
to allow the entire order, including grouped items, to be split across multiple locations. If no fulfillment is possible, send the order to the unfillable queue.
Activate all inventory rules and ensure the brokering run is scheduled to process orders at regular intervals. This setup ensures that grouped items like kits are handled together while non-grouped items can be split for faster delivery, based on the retailer’s fulfillment strategy.
Learn about Inventory Rules.
As discussed, inventory rules help orchestrate the process of choosing the most suitable fulfillment locations for each order in a batch of orders based on defined criteria like proximity, stock levels, and strategic priorities. These rules act as sequential steps in the order routing, guiding the brokering engine through multiple checks to find the best fulfillment location.
Multiple inventory rules are required because a single rule may not allocate inventory to all orders in a batch. If the first rule does not allocate inventory to some orders, the brokering engine will proceed to the next rule in sequence. This multi-step process continues through each rule until all possible options are exhausted.
Using multiple inventory rules means that if primary locations lack the required inventory, secondary locations can be considered. This layered approach increases the likelihood of successful allocation by exploring various fulfillment options.
For example, let’s continue with our example of Same-day/Next-day batch, assuming there are 1,500 orders:
Only 2 orders remain unfillable, moving to Unfillable Parking
(configurable action) for rerouting as inventory becomes available.
Applying these inventory rules progressively increases the likelihood of fulfilling each order without delay by prioritizing the most optimal locations first and expanding options only when needed.
In the next sections, we will learn how to create these multiple inventory rules for different order batches.
Here’s how multiple inventory rules work within each routing rule:
Each rule is checked in sequence. If a rule does not allocate inventory to an order, the brokering engine attempts inventory allocation using the next rule.
If no inventory is allocated after all the rules are checked, an auto-cancellation date can be applied or the order may be moved to a different queue for reattempted routing later with a different strategy.
You can easily drag and drop inventory rules to reorder them. The order in which the rules are arranged is important, as the first inventory rule is always evaluated first, followed by the next one. This allows for flexibility in adjusting the sequence as per changing requirements.
In this section, we’ll demonstrate how to set up multiple inventory rules for two routing rules we created earlier: Same-day/Next-day orders and Standard orders.
Creating inventory rules is a three-step process:
The first step is to filter the available facilities to identify those capable of fulfilling an order, so the brokering algorithm considers only facilities that meet the specific criteria set by retailers for order fulfillment.
For example, a retailer may want to use both stores and warehouses for high-priority orders, such as same-day and next-day deliveries. While, for standard orders, they may prefer to rely only on warehouses, avoiding the use of stores. These preferences can be configured using inventory rules to address these types of cases effectively.
Now, if you are wondering how to achieve this configuration, here’s how:
HotWax Commerce offers several inventory filters to fine-tune which facilities are eligible for allocation, including:
Facility Group: Custom grouping of locations. Grouping certain facilities allows retailers to simplify their decision-making. For example, as discussed above, there can be a dedicated facility group of only warehouses, one group can have both stores and warehouses or there can also be slow-moving or lower-demand facilities can be grouped together and allotted for non-urgent orders, while high-demand facilities are reserved for time-sensitive fulfillment.
Proximity: The distance between a fulfillment facility and the customer’s address. When a facility address is added in HotWax, its latitude and longitude are automatically saved. Similarly, HotWax saves the latitude and longitude for customer addresses as well. With both locations’ coordinates stored, the brokering engine can compare them to identify warehouses and stores within the defined proximity that have available inventory. For example, a retailer can set a 200-mile proximity limit for next-day delivery orders, so only inventory within 200 miles of the customer’s address is considered. This approach supports faster, cost-effective delivery while meeting SLA requirements.
All facilities enabled for online fulfillment will be attempted for brokering if no filter is applied.
Continuing our example, let's first create inventory rules for Same-day/Next-day orders routing.
Applying filters to look up facilities with inventory:
Start Creating the Inventory Rule, click the Add Inventory Rule
button. Name the rule, such as “Check all warehouses in 100 miles,” to reflect its purpose of checking only the closest warehouses that can meet the same-day or next-day delivery SLA.
Click Save
to save the rule name.
Configure filters, select the right filters to narrow down eligible facilities. For the “Same-day/Next-day orders” routing rule, we will choose “Facility Group” and “Proximity”.
Facility Group: Select “Warehouses” from the dropdown. This limits eligibility to only warehouses with available inventory. Why did we choose warehouse locations? Warehouses handle larger inventory volumes and can better support online order fulfillment compared to stores, which often focus on walk-in customers.
Proximity: Set the distance to 100 miles, so the rule includes only those warehouses within a 100-mile radius of the customer’s location.
This means that only nearby warehouses are considered, optimizing delivery speed and meeting SLA requirements.
If no warehouse within 100 miles has inventory available, the next inventory rule expands the search to include both stores and warehouses. This multi-step approach allows the brokering engine to consider optimal warehouse locations first before evaluating stores, maximizing efficiency.
Once the eligible facilities are filtered, the next step is to set up sorting criteria to prioritize these locations based on specific requirements. Sorting determines the sequence in which the brokering engine evaluates facilities. For example, if 10 facilities meet the filtering criteria, sorting enables the brokering engine to choose the most optimal one based on your fulfillment goals, such as faster delivery, balanced workload, or efficient inventory usage.
Here are the available sorting options:
Proximity: Retailers can sort inventory allocation based on the distance between the customer's shipping address and the facility. This sorting method prioritizes inventory located closer to the customer, helping reduce shipping times and costs, especially for expedited orders or those requiring same-day or next-day delivery.
Facility order limit: To maintain a balanced workload at facilities, they can also be sorted based on the remaining fulfillment capacity.
Inventory balance: Orders can be routed to facilities with the highest available stock of the ordered item, prioritizing locations with excess inventory. This strategy promotes efficient stock rotation, reduces the risk of overstocking, and helps prevent stockouts at key locations.
Custom sequence: Allows full manual override to the sequence at which facilities are attempted. Retailers can set a custom sequence of facilities, defining a specific order in which locations should be considered for order routing. For example, if a retailer wants to prioritize fulfillment from underperforming stores with lower foot traffic, they can create a custom sequence that favors those stores, helping to balance inventory across all locations. Custom sequences can also be useful for managing seasonal inventory or routing orders to specific regions.
Facilities will be sorted based on creation date if no sorting preferences are applied.
Choosing sorting options to select the most optimal facility:
Navigate to the sort option. Continuing our example, for the “Check all warehouses in 100 miles” inventory rule, we’ll use the "Proximity" sorting option.
This sorting option will arrange eligible facilities within the 100-mile range by their distance from the customer, so the closest warehouse is chosen for fulfillment. This approach supports meeting same-day or next-day delivery requirements by minimizing transit time.
After applying filters and sorting, the final step is to define the actions to take if some orders in a batch do not receive inventory.
Once filters and sorting have been defined, the brokering engine identifies the optimal facility to allocate inventory for orders. Multiple inventory rules are created so that if the first rule fails to allocate inventory to some orders, the next rule can be tried. In this scenario, specifying the action “move items to next rule” allows the brokering engine to check the next rule for unavailable items.
There may also be cases where, when the brokering engine tries to allocate inventory to an order, inventory for some items is available while for others it is not, or if available, it may be at different locations. In such cases, we can specify actions to allow or disallow partial allocation. This action serves as one of the final attempts to allocate inventory to orders, ideally included in the last inventory rule.
After-action logic helps manage orders accurately, whether through partial fulfillment or rerouting at a later time, by moving unfillable orders to a different queue.
Here are the available actions:
Partially available
Unavailable items
Move items to queue: Transfer unallocated order items to the selected queue for further processing. When inventory couldn’t be allocated to an order but further allocation attempts should not be made, the order can be moved to a specific queue. This allows for holding such unfillable orders until the appropriate action can be taken. For example, unfillable orders can be moved to the Unfillable Parking
, where they can later be rerouted through a different routing strategy. Ideally, this should be part of your final inventory rule.
Next rule: Automatically move unallocated order items to the next inventory rule in the sequence. When using multiple rules, this is the default action, allowing the brokering engine to attempt inventory allocation through each rule in sequence.
Auto cancel days: Specify the number of days to automatically cancel orders that could not be allocated. Based on inventory availability, retailers may want to set an auto-cancel date for orders to prevent them from staying in the fulfillment pipeline for too long. Ideally, this should be part of the final inventory rule.
Clear auto cancel days: This option is helpful when an auto-cancel date has been applied to an order, but incoming inventory is expected to fulfill it. For example, if unfillable items were moved to an Unfillable Parking
with an auto-cancel date, and inventory is now expected to arrive, clearing the auto-cancellation date during routing can prevent automatic cancellation. This allows the brokering engine to reroute the order once inventory arrives, maximizing fulfillment opportunities. It's also important to note that applying or clearing an auto-cancel date will apply to all unfillable orders. If there’s an exception and you want to perform an action for a single order only, you should do so directly in HotWax OMS. You can move the specific order to a new queue, like Unfillable Hold Parking
, and then remove its auto-cancel date.
Deciding actions to choose the most optimal facility:
In Actions, navigate to the partially available card. Continuing our example, for the “Check all warehouses in 100 miles” inventory rule, we’ll keep the Partial fulfillment as disabled because we want to try allocating inventory to orders using multiple rules without splitting an order. We can allow splitting in our final inventory rule.
Navigate to unavailable items card. Here we will set the action as “Move unavailable items” to the “Next Rule.” This means that the brokering engine will now try to allocate inventory using the next configured inventory rule in our sequence. We don’t want to apply an auto cancel date yet or move unfillable items to a separate queue. We can do this in our final rule.
By default partial fulfillment is disabled and move items to next rule is selected in actions.
Great! With your first inventory rule in place, creating additional inventory rules will expand the facility lookup and optimize inventory allocation for same-day and next-day orders.
The following examples provide a brief overview of potential inventory rules, which may vary depending on a business’s unique priorities and requirements.
To add more inventory rules, follow these steps:
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all locations in 100 miles,” to reflect its purpose of checking both the stores and warehouses that can meet the same-day or next-day delivery SLA.
For the second inventory rule, we will expand facility lookup with the "Proximity" Filter:
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all locations in 100 miles".
Filter: We will use the "Proximity" filter, setting the distance to 100 miles. This rule expands the facility lookup to include all facilities (both stores and warehouses) within a 100-mile radius of the customer’s location.
We are not using the Facility Group filter here to include all fulfillment locations (stores and warehouses) within the 100-mile radius.
Sorting: Under sorting, we will choose proximity so that the closest facility with the available inventory is selected.
Action: For any items in this batch that remain unfillable, we will set the action as “Move unavailable items” to the “Next Rule.”
For the third inventory rule, we will further expand facility Lookup with "Proximity" Filter:
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all locations in 250 miles".
Filter: We will use the Proximity filter, setting the distance to 250 miles. This rule expands the facility lookup to include all facilities (both stores and warehouses) within a 250-mile radius of the customer’s location.
Sorting: Again, we will use the Proximity option to choose the closest facility with available inventory.
Action: For any items in this batch that remain unfillable, we will set the action as “Move unavailable items” to the “Next Rule.”
For the fourth inventory rule, we will further expand facility lookup without any distance limitation:
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all locations".
Filter: We will not apply any filter, allowing the brokering engine to consider all facilities, regardless of distance. This rule allows every facility (store or warehouse) to be considered for fulfilling unallocated orders.
Sorting: We will sort facilities by "Proximity", so the closest location is selected.
Action: For any items in this batch that still remain unfillable, we will set the action as “Move unavailable items” to the “Next Rule.”
For the final fifth inventory rule, we will again include all facilities but also enable order splitting to allow partial fulfillment across different facilities.
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all locations, allow splitting".
Filter: We will not apply any filter, allowing the brokering engine to consider all facilities, regardless of distance.
Sorting: We will sort facilities by "Proximity", so the closest location is selected.
Action: We will toggle ON “Partial allocation” to enable partial allocation across multiple facilities if inventory is spread out. For items in this batch that still remain unfillable after we have applied multiple rules, we will set the final action as “Move unavailable items” to the “Queue,” and select Unfillable Parking
from the dropdown. We will also apply a "7 days auto-cancel date" for these unfillable orders.
Once you've configured each rule, change its status from Draft to Active to make it operational. To do this, click on Draft and select Active, or revert an active rule back to Draft if any adjustments are required.
For standard orders with a longer SLA (7 days or more), inventory rules can be configured differently to prioritize fulfillment from warehouse locations, reserving in-store stock for higher-priority, faster-shipping orders. Here’s how to create inventory rules for “Standard orders” routing:
Navigate to the Brokering Run
details page, choose the Standard orders routing, and follow the steps below to add inventory rules.
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all warehouses in 250 miles,” to reflect its purpose of checking only warehouse locations in the defined proximity.
For the first inventory rule, we will prioritize warehouse locations with most inventory.
Filter: We will choose “Warehouses” in the “Facility group”, excluding stores to maintain inventory levels for faster-shipping orders. We will also use the Proximity filter, setting the distance to 250 miles. This rule expands the facility lookup to include all warehouses within a 250-mile radius of the customer’s location, allowing us to reduce shipping costs if a nearby warehouse is available.
Sorting: We will choose “Inventory balance” to route orders to warehouses with the highest available inventory. Proximity sorting isn’t prioritized here, as the goal is to maximize inventory balance within 250 miles.
Action: For any items that remain unfillable, we will set the action to “Move unavailable items” to the “Next Rule.”
For the second inventory rule, we will prioritize warehouse locations with most inventory.
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all warehouses in 500 miles".
Filter: We will use the Facility Group filter and continue to restrict the facility lookup to Warehouses only but we will now expand the distance to 500 miles using the Proximity filter.
Sorting: We will again choose “Inventory balance” sorting to select the optimal warehouse in 500 miles with the available inventory.
Action: If any items still remain unfillable, we will set the action to “Move unavailable items” to the “Next Rule.”
For the final third inventory rule, we will look up all warehouse locations.
Click on the Add Inventory Rule
button and give the new rule a distinct name, such as “Check all warehouses".
Filter: We will continue to restrict the facility lookup to Warehouses only using the Facility Group filter. However, this time we will not use the Proximity filter, allowing all warehouse locations to be considered.
Sorting: We will again choose “Inventory balance” sorting to select the optimal warehouse with available stock.
Action: For items in this batch that still remain unfillable after we have applied multiple inventory rules, we will set the final action as “Move unavailable items” to the “Queue,” and select Unfillable Parking
from the dropdown. We will also apply a 7 days auto-cancel date for these unfillable orders.
This is how in a single brokering run, you can set up multiple routings with unique inventory rules based on each order batch specific needs.
What did we do differently for standard orders?
For Standard orders, we focused only on "Warehouse" locations, prioritized "Inventory balance" over “Proximity" and "Disabled partial allocation" across all inventory rules.
When an inventory rule is no longer needed, you can simply Archive
it by changing its status from the top right corner. You can unarchive the inventory rule if it’s needed again.
By leveraging HotWax Commerce, Order Routing App
retailers can create highly customized and efficient order routing strategies that optimize inventory usage, reduce shipping times and costs, and align their fulfillment process with their unique business needs.
Learn how to resolve brokering issues related to incorrect scheduling
The brokering engine relies on correctly scheduled runs to process and route orders. If the scheduling is incorrect, the engine won't execute, leading to unprocessed orders and potential delays in order fulfillment.
Verify Brokering Schedule
Navigate to the Order Routing App.
Click on the Brokering Run card you would like to run for routing.
Verify the run time and the frequency to ensure they are set correctly.
Check Inventory Rules
If the brokering run schedule is correct, proceed to check the inventory rules by clicking on the order batch you would like to run.
Verify if the order batches are correctly sorted. The sorting should align with the expected order processing sequence.
Verify Inventory Rule Configuration
Check the inventory rules by clicking on the inventory rule associated with the order batch.
Verify if the order brokering facilities are correctly configured. Ensure the facilities to which the orders should be routed are specified accurately.
Verify if the inventory sorting criteria are correctly set to prioritize the orders as needed.
Confirm Status
Finally, verify the status of the inventory rule, order batch, and brokering run. Ensure that each status is set to "Active" and not in "Draft."
Example
Incorrect Scheduling: If the brokering run is set to execute at 3:00 PM daily but needs to run every hour, adjust the frequency to "Hourly" in the Brokering Run settings.
Learn about Routings.
As discussed, routing, also known as routing rules, enable retailers to create specific order batches based on their business requirements, such as a same-day delivery batch, a next-day delivery batch, and a standard order batch. These routing rules help in efficiently looking up orders based on urgency and shipping promises.
Multiple routing rules within a single brokering run are useful when different order batches, like same-day, next-day and standard orders, need to be routed at the same interval.
If these order batches need routing at the same frequency but require different inventory allocation strategies, unique inventory rules can be applied to each batch. This way, even with a shared routing frequency (single brokering run), each order batch is managed according to its specific requirements. We’ll understand more about inventory rules in the coming sections.
This section explains how to create order batches in a brokering run using filters and sorting options to match business needs. We’ll demonstrate this by creating two routing rules:cSame-day/Next-day orders and Standard orders within our previously created Everyday order routing brokering run.
In this example, we’re routing Same-day/Next-day orders and Standard orders at the same frequency. If a business scenario requires these batches to be routed at different frequencies then separate brokering runs should be created.
Click the Create order batch
button to create a new routing rule.
Name the routing rule and click Save
to add it to the list of routing rules.
To add the next routing rule click on the New
button next to the "Order batches" label and name your new routing rule.
Continuing our example, let's name our two routing rules as Same-day/Next-day orders and Standard orders.
For a routing to actively process orders, you’ll need to change its status from Draft to Active. Just click Draft to update it to Active, or, if needed, revert an active routing back to Draft by clicking on Active.
This step should be done only after setting up all routing rules.
To prioritize which the routing rule is applied first:
Click and drag the chip on the top right of the routing card.
The sequence number on the card will automatically update based on the card's position.
Continuing our example, we’ll position Same-day/Next-day orders before Standard orders so that the higher-priority order batch is routed first.
Creating an order batch is a two-step process:
The first step in setting up routing rules is to create a batch of orders using specific filters. This helps the brokering algorithm group and prioritize orders accurately for each routing rule, enabling more targeted and effective fulfillment strategies.
Here are the available filters to create order batches:
Origin facility group: This parameter allows retailers to filter orders based on the facility group from which they originated. For example, many times when walk-in customers cannot find their preferred items in store, store associates place the order on their behalf. These are known as Send Sale orders. In this scenario, the origin facility becomes the specific physical location. If a retailer wants all Send Sale orders from specific facilities to be routed differently, then they can apply this filter to create a batch of orders and proceed to create their routing.
Order priority: Not all orders carry the same level of urgency. In HotWax Commerce, orders can be assigned a priority level of high, medium, or low. By default, orders are set to "medium priority," but retailers can adjust the order priority in HotWax Commerce as needed. By filtering orders based on priority, the most critical ones (high-priority orders) are routed before less urgent ones.
Promise date: Pre-orders or backorders can be filtered based on their promise date. Retailers may choose to broker orders that have passed their promise date first for the timely fulfillment of overdue orders.
Queue: The parking location to pick orders from. HotWax Commerce has virtual queues to park orders that are not yet brokered to a facility. Retailers can filter by queue type (Brokering Queue, Pre-order/Backorder Parking, Rejected Parking, or Unfillable Parking) to decide which orders should be brokered to available inventory.
All orders that are not pre-orders or backorders in HotWax Commerce and are waiting for the inventory are in the Brokering Queue
. In most of the cases this will be the filter you will use to make your order batch.
Sales channel: Channel where the order was captured. Different sales channels (eCommerce or marketplaces) may require different routing strategies. Orders can be filtered by channel so that the right group of orders is picked for routing based on channel-specific fulfillment rules, reducing the risk of penalties or delays in fulfilling orders from marketplaces like Amazon.
Shipment method type: SLA promised to the customer. When customers choose specific shipping methods, like expedited or same-day delivery, these orders must be prioritized differently. Retailers can use this filter to create a batch of orders based on the selected shipping method, so orders requiring fast shipping are processed first.
Continuing with our example, let’s take a closer look at how to apply the right filters and sorting options for Same-day/Next day routing rule.
Applying filters to create order batches:
Open the Same-day/Next-day orders routing rule’s details, then navigate to the Filters option.
Filters help define which orders should be looked up to create a batch. For the “Same-day/Next-day” routing rule we will choose the “Queue” and "Shipment method type" filters.
From the “Queue” we will choose the “Brokering Queue” to include all orders that are waiting for the inventory allocation.
From the “Shipping Method” dropdown, we will choose “Same Day" and "Next Day” shipping methods to include only same-day and next-day shipping orders in our batch.
Since our objective is to prioritize orders with tight SLAs, we are not selecting additional filters like order priority, promise date, and sales channel.
Outcome? With these filters in place, the brokering algorithm will specifically look for orders in the Brokering Queue
that need same-day or next-day delivery. This means that urgent orders are prioritized in your batch for quicker inventory allocation and fulfillment.
If you are not selecting any filter then all orders in all parkings will be attempted for brokering.
After filtering, the next step is choosing the Sorting criteria to prioritize the sequence in which individual orders within each batch are picked for inventory allocation. Sorting allows you to align order routing with your fulfillment goals, prioritizing high-priority orders first.
Available sorting options:
Order date: Sort by order date to prioritize older orders first, following a first-in, first-out (FIFO) approach.
Order priority: Orders can be sorted by priority levels, such as high, medium, low allowing retailers to prioritize orders based on their urgency.
Ship by
Ship after
Shipping method: Sorting by shipping method enables the brokering engine to priortize orders based on the promised SLA. HotWax records the delivery days associated with each shipping method, Same-Day as 0, Next-Day as 1, Two-Day as 2, etc. For example, applying shipping method sorting for a Same-Day/Next-Day batch allows the brokering engine to pick same-day orders before next-day orders, so inventory is allocated first to the most urgent orders. Sorting orders by shipping method becomes unnecessary when all orders in the batch have the same shipping method.
Choosing sorting options to define order priority:
Navigate to the Sort
option. Continuing our example, for the Same-day/Next-day order batch we will choose the "Shipping Method” sorting so that all same-day orders are sequenced first following by all the next day orders.
Finally, click on the Save
icon in the right most corner to save your configured routing rule.
If you are choosing multiple sorting options, you can prioritize them into the desired sequence using drag and drop.
Orders will be brokered based on order date if no sorting is specified.
Now that you already know what filters and sorting options are available and what they mean, you can easily use them for your next routing rule.
Let’s see what should be the right filters and sorting options for our second routing rule Standard orders.
From the filters option, we will choose the "Queue" and "Shipment method type" filters.
From the “Queue” dropdown we will choose the “Brokering Queue” to include all shipping orders that are waiting for the inventory allocation.
Now, from the "Shipping Method" dropdown we will choose the “Standard” shipping method to include only standard shipping orders present in the Brokering Queue
.
From the sorting option, even if we don’t choose any option all standard orders are sequenced based on their order date that is FIFO basis, so older orders are picked first for inventory allocation.
We did not apply the Shipping Method sorting for our Standard orders because all of these orders use the same standard delivery shipping method. Therefore, sorting by shipping method in this case would not make any difference.
Finally, click on the Save
icon in the right most corner to save your configured routing rule.
These examples help understand how retailers can use different filters and sorting options to create order batches and strategically fulfill orders, aligning each routing rule with specific business objectives.
When a routing is no longer needed in a brokering run you can Archive
it:
Click on the Archive
button at the bottom right of the routing card.
This action moves the routing to the archive, removing it from the brokering run flow.
Archived routings can be reactivated if needed and are accessible from the archive drawer at the bottom of the list.
Congrats! You now have a clear understanding of how to create brokering runs and set routing rules. The final step is choosing inventory rules to complete the order routing setup.
Discover your guide to troubleshooting brokering issues due to incorrect Facility Associations
For orders to be routed correctly, the facilities need to be associated with the appropriate facility group. If the facilities are not correctly configured in the facility groups, orders might be routed to the wrong locations, causing delays and inefficiencies.
Navigate to the Facilities App.
Navigate to the .
Identify the facility group with the "Brokering_Group" subtype.
Click on the chip available against the facilities.
From the submenu, click on "View Facilities" to verify the facilities or "Quick Edit" to add or remove any facility from the group.
Navigate to the Order Routing App.
Navigate to inventory rules by clicking on the brokering run and order batch for the orders you would like to broker.
Click on the inventory rule you would like to configure.
Click on "Filter", select "Facilities," and choose the correct facility group to which you would like to broker the order.
Discover your guide for troubleshooting Brokering Issues due to Incorrect Shipping Method
Shipping methods need to be correctly mapped from Shopify to HotWax Commerce and to every facility to ensure that orders are shipped as per the SLA (Service Level Agreement) with the customer. The orders won’t be brokered if the shipping method for the order is not correctly mapped.
Log In to Your HotWax Commerce Instance: Open your web browser and log in to your HotWax Commerce account using your credentials.
Navigate to Your Carrier Integration Page: From the Hamburger Menu navigate to the carrier integration settings. For example, if you'd like to verify shipping methods for FedEx, navigate to the FedEx carrier setup page under the "Settings" heading.
Verify the Carrier Shipping Method: On the carrier setup page, ensure that the carrier shipping method (e.g., FedEx Standard Overnight, FedEx 2Day) is mapped correctly in HotWax Commerce. This mapping should match the shipping methods available in Shopify.
Verify Facilities Association: Check that the facilities are correctly associated with the carrier. Each facility should have the appropriate carrier enabled to ensure orders can be routed and shipped from the correct location.
Rectify Issues Using the User Manual: If you identify any issues with the mapping or facility association, refer to the for detailed instructions on how to correct these settings.
Discover your guide for troubleshooting issues for order brokering due to inventory unavailability
Orders won't be brokered if the inventory is not available or if the inventory is less than the brokering threshold set in the inventory rule. Ensuring accurate inventory levels and thresholds is essential for efficient order brokering and fulfillment.
Click on the SKU
from the sales order page
to view the product inventory details on the
Check the inventory availability across the facilities. Use the facility
filter to check the inventory in individual facilities.
Verify if the inventory is available for that product. If the inventory is not available or is less than the brokering threshold, the order will move to the unfillable parking.
For example: If an item has a brokering threshold of 10 units but only 5 units are available across all facilities, the order will not be brokered and will move to unfillable parking.
Ensure that the order routing run for unfillable parking is scheduled. This ensures that all such orders are picked up in the next brokering cycle for inventory allocation.
Retailers sometimes prefer not to split orders to minimize shipping costs. If only part of an order is available at one fulfillment location, the order won't be routed. If inventory is scattered across multiple facilities, you need to decide whether to split the order.
If you decide to allow order splitting, navigate to the Order Routing App
.
Navigate to the brokering run
> order batch
> inventory rule
.
Check if partial allocation
is allowed for that inventory run.
Turn the partial allocation
toggle on if you want to enable order splitting.
Save the inventory rule
configuration.
Retailers can set up facility groups in HotWax’s Facility App
. Creating facility groups is an important concept because it allows you to group different facilities. For example, in the scenario above, you could create facility groups where one group includes both stores and warehouses, while another includes only warehouses. This setup provides control over facility lookup based on order type and urgency. Here’s a user manual to understand more about the
Turn off the facility order limit check: Retailers can set in HotWax, allowing them to define the maximum number of orders a facility can fulfill in a day. Disabling the facility order limit filter gives retailers the flexibility to bypass the defined order limit for a facility, which is especially useful during peak times or high-demand periods. For example, if a retailer turns off this limit, orders can continue to be assigned to that facility even after its maximum capacity has been reached.
Brokering safety stock: Different from online ATP safety stock, defines the minimum stock required for an order to be brokered to a facility. For example, if a retailer sets a brokering safety stock level of 10 units, only facilities with at least 10 units of the item in stock will be eligible to fulfill the order. This prevents over-allocation and maintains safety stock levels for unforeseen demand.
Allow partial allocation: Allow an order to be split and allocated partially if some items are available at a location. For example, a same-day/next-day batch may allow partial allocation in the final inventory rule, while standard orders may prohibit partial allocation across all rules. While partial allocation enables some items to be fulfilled immediately, it can increase shipping costs. To mitigate this, retailers can enable the Brokering Shipment Threshold in HotWax, which only allows order splitting if the order’s value exceeds a minimum threshold. Learn more about and how to implement it.
Partially allocate grouped items: Allow orders containing kits or gift items to be split and allocated partially if some items are available. If you want to allow splitting for other items but wish to , you can configure this by toggling ON partial allocation and toggling OFF partial allocation for grouped items.
Once all rules are active, and your routing is fully configured, set the to Active so that orders can be processed as scheduled.
In the following sections, we’ll cover a range of business that the HotWax Commerce Order Routing
App can help achieve, highlighting its adaptability to various inventory and order fulfillment needs.
Read our user manual to learn more
For more details on Order Routing, refer to our .
Filters
Look up orders and group them in a batch.
Sorting
Determine the sequence in which orders are picked up during routing.
Filters
Look up eligible facilities with inventory that can fulfill an order.
Sorting
Determine which eligible facility should be prioritized to allocate an order.
Actions
Define fallback actions for orders that cannot be fully allocated to a single facility. The actions also help configure the final steps if all previous rules don’t allocate inventory to orders.