Allocation
What is Order Allocation?
Order allocation is the process of reserving inventory from specific warehouse locations to fulfill customer orders. It ensures that:
- Inventory is reserved before shipping to prevent overselling
- Orders are assigned to the most appropriate warehouses
- Multiple warehouses can be used to fulfill a single order
- Inventory levels are accurately tracked
Allocation Process
1. Pre-allocation (Optional)
- Searches available warehouses and assigns the right one based on various settings
- Does not reserve inventory but does store warehouse assignment
2. Allocation
- Permanently reserves inventory for the order
- Updates inventory levels (available → allocated)
- Required before order fulfillment
3. Commitment
- Moves inventory from allocated to committed
- Occurs when order is shipped
- Final inventory state change
Local Routing vs Source Routing
Local Routing (local_routing: true
)
- Endless Commerce manages allocation using internal inventory data
- Uses local routing strategies that are configured in the sales channel
- Calculates distances between shipping address and warehouses
- Considers warehouse priorities and user rankings
- This is the default behavior when no external integration is involved
Source Routing (local_routing: false
)
- External system manages allocation (e.g., Shopify, third-party WMS)
- Uses external inventory data and routing logic
- Falls back to local routing if external system doesn't support routing
- Used when integration supports
:orders_routing
capability
When Local Routing is Used
- No source integration exists
- Source integration doesn't support order routing
- Order has no origin order ID
- Sales channel has local routing enabled
- Order explicitly has local routing set
Routing Strategies
Routing strategies determine how warehouses are selected for order allocation. They are executed in order until a successful allocation is found.
Strategy Components
Code | Name | Description |
---|---|---|
SS | Single Shipping | Prefers warehouses that can ship the complete order |
SD | Shortest Distance | Prioritizes warehouses closest to shipping address |
BP | Building Preference | Uses warehouse priority rankings |
Default Strategy
SS:SD:BP
- Try single shipping first, then shortest distance, then building preference
Strategy Examples
SS:SD:BP
(Default)
- Find warehouse that can ship entire order
- If none found, use closest warehouse(s)
- If still none, use highest priority warehouse(s)
SD:BP:SS
- Start with closest warehouse
- If insufficient inventory, try next closest
- Consider warehouse priorities
- Allow split shipments if needed
BP:SS:SD
- Start with highest priority warehouse
- Try to ship complete order
- Use distance as final tiebreaker
Allocation Rules
Local Routing
When an order is created by an external system, we import all locations from external systems and create linked warehouses in Endless Commerce. The external system often provides instructions on where to fulfill the order from. If you want to, you can override these settings and allow Endless to decide where to fulfill the order from.
If the sales channel you are working with imports orders from an external source (like Shopify), we suggest that you do not use local routing and let the integration decide where to route orders. This is particularly relevant if the sales channel has warehouses that are external (read-only).
If the order was not created by an integration, it will always use local routing.
Assign to external warehouses
You can choose whether items will be allocated to an external warehouse or not. This setting is configurable for each sales channel and will be passed to every order created in that channel. You can also overwrite this setting for individual orders during order processing.
You might want to allow external assignment if: the sales channel has one or more direct connections to external warehouses and you are not ready to have Endless participate in active order management. This read-only setup still allows you to see all your orders in one place. In order to provide an accurate record of what happened to your orders, Endless will still assign line items to external warehouses if instructed to do so.
You might want to disable external assignment if: the sales channel is a B2B channel and you want to ensure that items are not assigned to external warehouses. If items are assigned to external warehouses for B2B orders, there will be no way to fulfill them because external warehouses do not have a fulfillment integration.
Best Practices
- Set appropriate routing strategies based on business needs
- Configure warehouse priorities to reflect operational preferences
- Use pre-allocation for high-volume scenarios
- Monitor allocation failures to identify inventory issues
- Balance single vs. multi-warehouse fulfillment based on costs
- Regularly review zone priorities to optimize picking efficiency