If your business operates with multiple warehouses, deciding which one should fulfill a specific order is one of the most critical decisions you make every day. For a long time, fulfillment software offered only basic choices: like simply picking the closest warehouse or the one marked "highest priority." But for modern brands and Third-Party Logistics providers (3PLs), basic rules just don't cut it. You need the intelligence to make complex decisions, such as sending an order to the warehouse that can fulfill the greatest number of items, or reserving specific product lines for dedicated fulfillment centers.
This is where Multi-Warehouse Allocation (MWA) comes in. MWA transforms basic inventory allocation into a powerful, automated decision-making engine. This article will break down exactly how MWA rules work in ShipHero, showing you how to move beyond simple allocation to build sophisticated logic that ensures faster, cheaper, and more complete fulfillment for every single order.
- How do Multi Warehouse Allocation Rules work?
- Multi Warehouse Allocation Page Overview
- How to Create an MWA Rule
- ShipHero's MWA Default Rule
- Warehouse Priority Lists
- MWA Conditions and Actions Defined
- MWA Action Examples
Multi Warehouse Allocation (MWA) must be enabled by our team for it to be accessible on your account. To have MWA enabled on your account, please email support@shiphero.com.
Note for 3PLs: Multi Warehouse Allocation needs to be enabled and rules configured at the client account level. To enable this feature for your client please provide our support team with the Customer Account ID of your client found on the 3PL page.
How Do Multi Warehouse Allocation Rules Work?
Similar to an automation rule, an MWA rule has Conditions and Actions. The conditions define which orders will be processed by that rule, and the actions define what will be done with the items on the order. The rules are checked for the triggers from top to bottom, but once one rule is executed, no other rules will run. So unlike automation rules, only one MWA rule will be executed per order.
When are MWA Rules Checked? Unlike automation rules, MWA rules are checked any time an order is reprocessed. That could be when the order is first imported, when an item is added, a setting is updated, etc. Use the "Reprocess" button in the Actions section on the order's details page to manually reprocess an order.
Things to Consider
MWA rules are very flexible in nature allowing you to make them as simple or as complicated as you need them to be. Before getting started with creating rules, there are some important things to consider:
- MWA Overrides: MWA rules will override any other rules or manual setting of a warehouse allocation. When an account has MWA enabled, other methods of setting the warehouse, whether by automation rule or by manually changing it, will be overridden by MWA. There is no way to override the MWA rule for an individual order.
- Rules for Kits: Because MWA rules are triggered only by items with a quantity pending fulfillment greater than 0, built kit items require a workaround. To ensure that MWA rules are applied to a kit, add a tag based on the SKU using automation rules; then trigger the MWA rule based on that tag. For more information, see our help articles on How to Use Automation Rules and How to Manage Orders with Tags .
- Entire Order Execution: When creating an MWA rule you need to define the expected behavior for all line items on the order, especially when dealing with orders split between multiple locations. For example, if you decide you want a specific SKU allocated to Warehouse B, you must also define which warehouse it should be backordered to in the event of an oversell. Additionally, you must tell the system what to do with the other items on the order.
-
Warehouse Filter on the Manage Orders Page: After MWA rules run on an order it will update the warehouse on the manage orders page. If an order is assigned to a warehouse that is not included in the "Allowed Warehouses" setting on the user's settings page the user will not be able to see it on the list or filter for it. All warehouses will show in the warehouses column for orders that are split between multiple warehouses.
Note for 3PLs: If you share a client with another 3PL using ShipHero you will only see orders assigned to your warehouses from your 3PL account. If you need to see ALL of the orders in the client's account then you will need to navigate to their account.
Multi Warehouse Allocation Page Overview
The main MWA Page has a straightforward design making it easy to manage the different rules configured for the account. Here you can:
- Create new rules
- Turn a rule On/Off using the Status toggle
- Reorder the rules by using the grab bar to the left of the rule
- Manage warehouse priority lists
How to Create an MWA Rule
This is a general overview on how to create an MWA rule.
Note: For information on Transfer Orders, see How to Create an MWA Rule for Transfer Orders .
- Open the Multi Warehouse Allocation page and select the Create new rule button.
- Choose the Conditions for your rule.
-
Reminders:
- This is the "if" part of your rule if an order meets this criteria the rule will run.
- You can have multiple conditions on a rule, and all conditions must be met for the rule to be used.
- If you leave this blank, all orders will be processed by this rule.
-
Reminders:
- Choose the Actions for your rule.
-
Reminders:
- Actions define which warehouse items are allocated to or backordered from.
- You can have multiple actions defined on a single rule.
- Actions need to be defined for all items on the order.
-
Reminders:
- Click Create and Name your rule, and then select Save. By default the rule is Off when created. **You cannot change the name of your rule after it is created.
- Once the rule is created you will be redirected to the list of MWA rules where you can sort the order in which the rules will be considered. As a reminder: MWA Rules conditions are checked from top to bottom in the list; once an order meets the condition of the MWA rule the system does not continue to the next rule.
ShipHero's Default MWA Rule
When MWA is enabled on the account, a default rule is automatically enabled. This rule cannot be turned off or altered in any way. The default rule serves as a fallback mechanism that:
- Ensures every order gets processed even if no other rules match
- Maintains order integrity by keeping all items in a single warehouse
- Provides predictable behavior for standard fulfillment scenarios
- Prevents order splitting complications
What warehouse is used in ShipHero's Default Rule?
More often than not the Primary warehouse is selected when the Default MWA rules is applied to the order based on the back-end logic algorithm (briefly outlined below).
The exception to this is when a 3PL has a client who is not connected to the Primary warehouse but is connected to other warehouses. Then, ShipHero will prioritize the warehouses associated with the client and select the warehouse that was created first in the 3PL's account; this warehouse will have the lowest warehouse ID of those connected to the client.
In short the logic follows these steps:
- ShipHero gets all available warehouses for the account.
- Sorts warehouses by priority using default sorting function.
- Selects the highest-ranking warehouse (first in sorted list).
If you want to create your own fallback mechanism or default rule, create a new rule with no conditions, use the Allocate and Backorder Action, and select the warehouse you want orders to default to or define a custom warehouse priority list. Be sure to turn it on after it is created. Then, position it directly above ShipHero's DEFAULT RULE in the rules list.
How to Define Warehouse Priority Lists
You can create a priority list for warehouses, to define the order in which warehouses should be checked to allocate orders to.
- Click on the Manage Warehouse Priority Lists button.
- Create a new list or edit an existing list.
- Check the warehouse you want to include and assign the priority they hold over one another.
- Warehouse priority is incrementally based, just like location priority. For example, 1 has priority over 2, and so on.
In the example below, the PA warehouse has priority over the Seattle warehouse.
MWA Conditions and Actions Defined
When you create an MWA rule you will need to select the condition(s) that will trigger the Rule and the Actions to determine how you need the order to be allocated. This section defines what each of those is.
Conditions Defined
When creating an MWA rule, you set Conditions to define which orders the rule will apply to. If an order meets the conditions of an MWA rule, that rule will execute its corresponding actions, and no other MWA rules will run on that order.
Quick Notes:
- Conditions are the "IF" part: They determine if the rule should run on a given order.
- Conditions are optional: If you don't set any conditions, the rule will run on every order
- Stacking Conditions: Multiple conditions can be used for a single rule. The system uses "and" logic when stacking conditions so the order must meet all of the criteria to trigger the rule.
- Top-down evaluation: MWA rules are evaluated in order from top to bottom, and only the first rule for which conditions are met will be executed on an order.
The conditions you can use for an MWA rule include:
Condition | Definition | Values |
Shipping Country Equals (Editable field on order) |
|
|
Order Store Equals (Non-editable field on order) |
|
|
Shipping Country Not Equals (Editable field on order) |
|
|
Order Profile Equals (Editable field on order) |
|
|
Has Product Tags in list (Editable field on order) |
|
|
Product SKUs in list (Editable field on products) |
|
|
Order Shop Name in list (Non-editable field on order) |
|
|
Order Profile in List (Editable field on order) |
|
|
Order Contains Tags (Editable field on order) |
|
|
Actions Defined
The Actions when creating a Multi-Warehouse Allocation (MWA) Rule in ShipHero are the specific steps the system will take to allocate or backorder the items on an order once the rule's conditions are met. These actions define what the system will do with the inventory and where it will direct the fulfillment.
When defining your actions there are several areas that need to be selected for the rule to properly fire on your orders. Below are the definitions of the different action sections.
Step 1: Decide how the action will be applied to the order
First, we need to decide whether this action will affect the whole order, or whether each SKU will be evaluated individually. If you want the option to split an order across warehouses, you should use Each SKU. Otherwise use Entire Order.
- Entire Order: This option executes the action on the total order; i.e., if you want to allocate the order to the warehouses that can fulfill a larger quantity of items on the total order.
- Each SKU: This option executes the action for each SKU on the order; i.e., if you want to allocate the order to the warehouses that can fulfill a larger quantity of items on each SKU.
Step 2: Select the Allocation/Backorder Action
- Allocate: This action tells the system to allocate items to a warehouse based on a defined sorting method. When using this action you also need to define which warehouse to backorder the remaining unallocated items on the order in the same rule.
- Backorder: This action assigns the remaining, unallocated items on an order to a warehouse as a backorder. When using this action you will need to define which warehouse to allocate the remaining items on the order in the same rule.
- Allocate from Single Warehouse and Backorder: This action selects the single, highest-ranked warehouse to allocate the order to. Any remaining (out-of-stock) items will be backordered to that same warehouse, preventing the system from looking for another warehouse. This is a comprehensive action, so you will not need to include separate Allocate or Backorder actions in the rule.
-
Allocate and Backorder to Locked Warehouse: This allocates and backorders items to the warehouse that the order is locked to which is set using automation rules or via the API. Here is an example of this is set up, Using Shopify Locations as a Trigger in Automation Rules.
Note: If the rule runs and there’s no locked warehouse, it will not work as expected. Additional actions should be added to the rule to cover those cases.
Step 3: Define which products on the order will have the action applied.
- All Items: Action is applied to all the line items on the order.
- SKUs: Action is applied to the specified SKUs
- All Tags: Action is applied to the SKUs with all the specified tags. This uses "and" logic when considering the tags on the SKUs on the order.
- Some Tags: Action is applied to the SKUs with any of the tags specified. This uses "or" logic when considering the tags on the SKUs on the order.
Step 4: Select the warehouses to include in the rule.
Decide which warehouses should be included as possible warehouses to allocate or backorder to.
Step 5: (Optional) Add a filter to limit the warehouse selection.
Filter warehouse is optional, you do not need to set it if you want all warehouses considered in the action. If you want to limit the warehouses you can use these options:
- Capacity to fulfill all items - only consider warehouses if all the items in the order can be shipped from that warehouse.
- Capacity to fulfill some items - as long as some items can be shipped from here, include this warehouse.
Step 6: Determine how the systems chooses the warehouse.
The final step in setting up the MWA rule's action is to sort how the system should choose the warehouse. There are 3 sorting options:
- Distance - Sort by the distance from the warehouse to the shipping address on the order. For the distance calculation to work, the ZIP code data must be loaded for the warehouse ZIP codes. Please reach out to support so we can confirm that the data for the necessary origin ZIP codes are loaded.
- Priority - sort by the Priority list.
- Amount of fulfillable items - percentage of items the warehouse can fulfill. This list should be sorted by the fields you want to consider first. For example, if we did this:
MWA Action Examples
Let's look at a couple of examples to see how the actions work together.
For this example, we want to allocate individual items on the order to the warehouse that is closest to the customer. The rest of the items should be backordered to the warehouse highest on our priority list.
First, we'll define Allocate:
Next, Backorder:
In this next example, we're going to allocate and backorder items to one warehouse based on the product tags.
This action will allocate all items with the "primary" tag to the Primary warehouse. If an item is out of stock, we'll backorder it to that warehouse.
This action will allocate all items with the "west" tag to the West Coast warehouse. If an item is out of stock, we'll backorder it to that warehouse.