Getting Started

Order Inventory Allocation: The Complete Guide

TL;DR

Order inventory allocation is the system that matches available inventory to pending orders in ShipSidekick. When orders arrive, the allocation engine determines which physical inventory units will fulfill which line items on each order. This prevents overselling and ensures orders can only ship if sufficient unallocated inventory exists.

The allocation system runs automatically on a schedule, processing orders fairly in the order they were created and ensuring that inventory is reserved only when all items on an order can be fulfilled. Understanding how allocation works helps you manage inventory effectively, troubleshoot allocation issues, and optimize your fulfillment workflow.

How Allocation Works

The Allocation Process

ShipSidekick's allocation engine operates as a scheduled, automated task that runs every 10 minutes. Here's how it processes your orders:

  1. Query pending tasks: The system fetches all unprocessed allocation tasks for your organization, ordered by associated order date and task creation time to ensure fairness

  2. Check inventory availability: For each line item in a task, the system queries the current available inventory level for that product variant

  3. Allocate or defer: If sufficient unallocated inventory exists for all line items in an order, the system marks the task as allocated and records the allocation. If inventory is insufficient for any line item, the entire order waits for the next allocation cycle

  4. Update inventory state: Allocated quantities are marked as reserved in the inventory level record to prevent double-allocation to other orders

Key Principles

All-or-Nothing Allocation
An order's line items are treated as a single unit. Either all line items on an order can be allocated, or none of them are. If even one line item cannot be fulfilled from available inventory, the entire order remains unallocated and waits for the next allocation cycle. This prevents partial shipments and ensures fair treatment of all orders.

Safety Stock Protection
Allocations never consume inventory below your configured safety stock threshold. Safety stock is always reserved and excluded from available inventory calculations, ensuring you maintain a minimum buffer for unexpected demand or emergencies.

Fairness by Order Date
Orders are processed in creation order (FIFO—first in, first out). The system prioritizes older orders over newer ones, ensuring that pre-orders and backorders are fulfilled first when new inventory becomes available. No dynamic reordering occurs based on order type or customer priority.

Automatic 10-Minute Cycles
Allocation is not instantaneous. Orders may wait up to 10 minutes after creation before the next allocation cycle runs. Once the cycle begins, eligible orders are processed in timestamp order.


Allocation Strategy: FIFO

The FIFO (First In, First Out) allocation strategy affects which warehouse location inventory is selected from when fulfilling an order, not whether an order is allocated at all.

When you have multiple warehouse locations with the same product, FIFO ensures that inventory from the oldest location (the location that received stock first) is picked first. This helps you rotate stock and reduce the risk of inventory aging or becoming obsolete.

Important: FIFO is a location-selection strategy. It does not change the core allocation rule: if any line item on an order is unallocatable, the entire order remains unallocated until all items can be fulfilled.


Managing Allocation: Common Scenarios

Scenario 1: Orders Aren't Auto-Allocating Despite Available Inventory

What's happening: Orders should auto-allocate within 10 minutes when inventory is available. If orders remain unallocated despite showing available inventory, a system issue may be preventing bulk allocation.

What to do:

  • Wait up to 10 minutes for the next allocation cycle to run

  • Try allocating smaller batches of orders manually (10–25 orders at a time) rather than all at once

  • Contact support to investigate the root cause if the issue persists

Scenario 2: Negative Inventory Quantities Appear

What's happening: Negative quantities occur when manual inventory adjustments reduce stock below what's already allocated to orders at that location. The system doesn't automatically re-allocate orders after manual inventory changes, so shipments continue deducting from locations with insufficient stock.

What to do:

  • Use the refresh orders feature to trigger re-allocation to available locations

  • This forces the system to reassess which locations have sufficient inventory and move allocations accordingly

  • Review your manual inventory adjustments to prevent future negative balances

Scenario 3: One Line Item Is Unallocatable, But Others Aren't

What's happening: You have an order with multiple line items. Some items have available inventory, but one item doesn't. The entire order remains unallocated.

Why: The all-or-nothing allocation rule means that if any line item cannot be fulfilled, no inventory is held for the order. This prevents partial shipments and ensures fair processing.

What to do:

  • Wait for the missing item to arrive in inventory

  • Or, if the item won't arrive soon, consider canceling or refunding that line item and re-submitting the order without it

  • Use the allocation report with an incoming column (if enabled) to see whether unallocated SKUs are already on purchase orders—this helps you decide whether to wait or cancel

Scenario 4: You Need to Prioritize an Older Order Over a Newer One

What's happening: New inventory has arrived, but it's allocated to a newer order while an older pre-order or backorder remains unfulfilled.

What to do:

  • Contact support to unallocate the more recent order

  • Support can then reallocate that inventory to the older order based on order dates

  • This ensures older orders are fulfilled first when new inventory becomes available


Frequently Asked Questions

Q: Will FIFO allocation strategy hold inventory for an order if one line item is unallocated but others are allocatable?

A: No. If any line items are not allocatable on an order, no inventory is held for that order. FIFO as an allocation strategy only affects which warehouse location is selected to pick from for a specific product, not whether inventory is held. The core allocation rule is all-or-nothing: all line items must be allocatable, or the entire order remains unallocated.

Q: Can older orders be prioritized for allocation over newer orders when inventory arrives?

A: Yes. Orders can be reallocated to prioritize older orders. Support can unallocate more recent orders and reallocate that inventory to older orders based on order dates. This ensures older pre-orders or backorders are fulfilled first when new inventory becomes available.

Q: Why do some inventory locations show negative quantities and how does this affect order allocation?

A: Negative quantities occur when manual adjustments reduce inventory below what's allocated to orders at that location. The system doesn't automatically re-allocate orders after manual inventory changes, so shipments continue deducting from locations with insufficient stock. You can refresh orders to trigger re-allocation to available locations, which forces the system to reassess inventory and move allocations to locations with sufficient stock.

Q: Can I add an 'incoming' column to the allocation report to see which unallocated orders have items on purchase orders?

A: Yes. An incoming column can be added to the allocation report. This will show you whether unallocated SKUs are already on purchase orders, helping you decide whether to wait before canceling or refunding orders with unallocated items.

Q: Why aren't orders auto-allocating even when inventory shows as available?

A: Orders should auto-allocate within 10 minutes when inventory is available. If they remain unallocated despite showing available inventory, there may be a system issue preventing bulk allocation. Try allocating smaller batches (10–25 orders at a time) and contact support to investigate the root cause.

Q: How often does the allocation system run?

A: The allocation system runs automatically every 10 minutes. Orders may wait up to 10 minutes after creation before the next allocation cycle processes them. Once a cycle begins, eligible orders are processed in order of creation (oldest first).

Q: What happens if I manually adjust inventory after orders are allocated?

A: The system does not automatically re-allocate orders after manual inventory changes. If a manual adjustment causes a location to have negative inventory, shipments will continue deducting from that location. Use the refresh orders feature to trigger re-allocation and move allocations to locations with sufficient stock.

Q: Does the allocation system consider safety stock?

A: Yes. Safety stock is always protected and excluded from available inventory calculations. Allocations never consume inventory below your configured safety stock threshold, ensuring you maintain a minimum buffer.

Q: Can I manually allocate orders?

A: Yes. While the system auto-allocates orders every 10 minutes, you can also manually allocate orders. This is useful if you want to allocate a smaller batch of orders or if you need to reallocate inventory to prioritize specific orders.


Best Practices

  • Monitor allocation reports regularly to identify unallocated orders and understand why they're waiting

  • Use the incoming column in your allocation report to distinguish between items that are truly out of stock versus items that are on purchase orders and arriving soon

  • Avoid large manual inventory adjustments without reviewing their impact on allocated orders; use the refresh orders feature afterward to re-allocate if needed

  • Contact support for reallocation when you need to prioritize older orders over newer ones

  • Allow 10 minutes for auto-allocation before manually allocating orders, unless you need immediate action

  • Allocate in smaller batches (10–25 orders) if you encounter issues with bulk allocation

Was this page helpful?