Skip to main content

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

CodeNameDescription
SSSingle ShippingPrefers warehouses that can ship the complete order
SDShortest DistancePrioritizes warehouses closest to shipping address
BPBuilding PreferenceUses warehouse priority rankings

Default Strategy

SS:SD:BP - Try single shipping first, then shortest distance, then building preference

Strategy Examples

SS:SD:BP (Default)

  1. Find warehouse that can ship entire order
  2. If none found, use closest warehouse(s)
  3. If still none, use highest priority warehouse(s)

SD:BP:SS

  1. Start with closest warehouse
  2. If insufficient inventory, try next closest
  3. Consider warehouse priorities
  4. Allow split shipments if needed

BP:SS:SD

  1. Start with highest priority warehouse
  2. Try to ship complete order
  3. 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.

tip

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

  1. Set appropriate routing strategies based on business needs
  2. Configure warehouse priorities to reflect operational preferences
  3. Use pre-allocation for high-volume scenarios
  4. Monitor allocation failures to identify inventory issues
  5. Balance single vs. multi-warehouse fulfillment based on costs
  6. Regularly review zone priorities to optimize picking efficiency