Allocation reserves specific stock (an item lot or a stock record) against a sales order line, so that the quantity stays in the warehouse but no other order can take it. It sits between taking the order and picking, delivering or invoicing it: an allocated line is what Picking, Allocation Delivery and the allocation-based Invoice actions work from.
Overview
Each reservation is an allocation line. It names the item, SKU, lot or stock record, storage location and quantity it reserved, and it posts to the inventory ledger as soon as it is saved, moving that quantity into the stock's Allocation bucket. Stock in hand does not change; stock available to others goes down.
You can allocate from two places:
| Where | Actions | What happens when stock runs short |
|---|---|---|
| The sales order (Sales app → Orders) | Auto Allocation, Manual Allocation, Cancel Allocation | The whole action is refused with an error, and nothing is reserved |
| The fulfilment document (Warehouse app → Fulfilment Orders, or the Inventory app) | Allocation, Selective Allocation, Cancel Allocation, Selective Cancel Allocation | What can be reserved is reserved; the rest stays pending, with no error |
Every action works only on quantity that is still pending. On an order line that is Pending Fulfilment Allocation Quantity (quantity − Fulfilment Allocated Quantity − Cancelled Quantity); on a fulfilment order line it is Pending Allocation Quantity. A line with nothing pending is skipped.
When to use it
- Auto Allocation on the order — the normal case. xMatix picks the stock for every pending line, oldest lot first.
- Manual Allocation on the order — when a customer must get a particular batch, or you want to split a line across lots you choose.
- Allocation or Selective Allocation on the fulfilment document — when the warehouse allocates after the order has been released for fulfilment, or when you want to reserve whatever is available now and leave the rest for later.
How xMatix handles it
What stock is eligible. Every path only looks at stock of the document's Branch and Partner Account (selling company). The item's tracking decides the source:
- A lot-tracked item draws from item lots. Lots with a hold code are never used. The lot's SKU must equal the line's SKU exactly, so a line with no SKU only takes lots recorded without a SKU. Item Lot Type on the line, when set, limits it to lots of that type. Lots are taken oldest first, by the date the lot was created.
- An inventory-tracked item that is not lot-tracked draws from stock records, again matching the SKU exactly.
- An item that tracks neither lots nor inventory is skipped without an error.
How the line steers it.
- Item Lot on the line pins the reservation to that one lot. If that lot is not eligible or has nothing available, no other lot is used.
- Limit Expiry Days, when above zero, keeps only lots that expire within that many days from today (your organisation's date) and skips lots with no expiry date. Use it to push short-dated stock out first. At 0 there is no expiry limit.
- Storage Location is tried first only on the fulfilment document: stock at that location is used before stock elsewhere at the branch. Allocation from the order ignores the line's storage location.
What differs between the order and the fulfilment document.
- On the order, a line that cannot be fully covered stops the whole run with Item Lot not found for allocation. (lot-tracked items) or Available stock not found for allocation. (other inventory items). Nothing from that run is saved, including lines that could have been covered.
- On the fulfilment document, both kinds of item reserve what they can and leave the remainder in Pending Allocation Quantity, which is what the back-order process looks at. There is no message about the shortfall.
- Allocation lines made from the order are linked to the order and its lines only. Allocation lines made from a fulfilment document are also linked to that document and its fulfilment order line, so they appear in its Allocation Line grid.
Document State and Status.
- A successful allocation sets the order's Document State to Allocated when nothing is left pending allocation, or Partially Allocated otherwise. The fulfilment document moves the same way, and moves its order with it.
- Cancel Allocation sets the order's Document State back to Fulfilment Released, and the fulfilment document's to Draft.
- The order's Status is set by a shipped business rule: it becomes Fulfilment on the save after every line has nothing left to allocate. See The sales order lifecycle.
Prerequisites
- A saved sales order whose lines have Pending Fulfilment Allocation Quantity above zero. To allocate on the fulfilment document, release the order for fulfilment first (see Picking and fulfilment).
- The order has not been invoiced directly. Once any quantity has been invoiced straight from the order (OTC Invoiced Quantity above zero), the allocation buttons are hidden.
- Item lots or stock at the order's branch and partner account, not on hold. See Item lots and Stock balances.
- A security profile that allows the actions — see Permissions.
Procedure
Step 1 — Check what is pending
Open the order from Sales → Orders and read Pending Fulfilment Allocation Quantity on the order and on each line. The allocation buttons only show while that quantity is above zero. If you run an action with nothing pending, it stops with No pending allocation quantities found in order lines to create inventory fulfilment allocation.
Before allocating, set anything that should steer the choice of stock on the line: Item Lot, Item Lot Type, SKU or Limit Expiry Days.
Step 2 — Allocate automatically from the order
Select Auto Allocation. For each pending line, xMatix takes eligible lots (or stock records) in order until the line is covered, and writes one allocation line per lot or stock record used.
- If every line is covered, the page refreshes, the allocation lines appear on the Related tab, Allocated Quantity goes up and Pending Fulfilment Allocation Quantity goes down to zero.
- If any line cannot be covered, you see Item Lot not found for allocation. or Available stock not found for allocation. and nothing is reserved. Fix the stock or the line (see Common problems), or allocate from the fulfilment document, which reserves what it can.
Step 3 — Or choose the lots yourself with Manual Allocation
Use this for lot-tracked items when the batch matters.
- Select Manual Allocation. A dialog lists the available lots for the order's items, grouped by order line, with lot details such as batch number, quantity available, quantity in hand and unit cost.
- Choose FIFO (oldest lots first, the default) or LIFO (newest lots first) at the top left. This changes the order the lots are listed in. Use the search box and Refresh at the top right as needed.
- Switch on Release for each lot you want and enter its Requested Qty. You can pick several lots for one line; together they cannot exceed the line's pending allocation quantity.
- Select Release (n), where n is the number of lots picked. The button stays disabled until at least one valid lot is picked.
You see Manual allocation completed., the dialog closes and the order refreshes. If the dialog shows No lots to allocate for this order, none of the order's items has available stock that is not on hold — receive stock, then select Refresh.
The dialog does not apply every rule before you pick. When you release, a lot that does not match the line's SKU, Item Lot Type or Limit Expiry Days is refused with Selected Item Lot is not available for allocation., and nothing is saved. Manual Allocation only works with lots; for other inventory items use Auto Allocation.
Step 4 — Or allocate on the fulfilment document
Open the fulfilment document from Warehouse → Fulfilment Orders (it is also in the Inventory app).
- Select Allocation to reserve stock for every line with Pending Allocation Quantity above zero.
- Select Selective Allocation to choose lines and enter a Requested Quantity for each. Every chosen line needs a quantity above zero, no larger than its pending allocation quantity.
The new rows appear in the Allocation Line grid, and the header's Allocated Quantity and Pending Allocation Quantity update. If the grid is still empty, or Pending Allocation Quantity is still above zero, there was not enough eligible stock — this screen does not report a shortfall as an error.
- 1
Allocation reserves every pending quantity on the document; Selective Allocation asks for lines and a requested quantity per line.
- 2
Partner Account and Branch on the fulfilment header are the only scope allocation searches — lots or stock elsewhere never count.
- 3
Quantity, Pending Allocation and Allocated Quantity are the counters to read first: pending 1 and allocated 0 means nothing is reserved yet.
- 4
The demand row names the item (and SKU or lot preference where set); a preferred lot is honoured all-or-nothing.
- 5
Allocation Line (0) is the reservation evidence — it stays empty until an allocation action succeeds, whatever the header badge says.
Step 5 — Check the reservation
Open the allocation lines (the order's Related tab, or the fulfilment document's Allocation Line grid). For each row, check the Item Lot or Stock, the Storage Location and the Quantity. Pending Picking Quantity, Pending Delivery Quantity and Pending Invoice Quantity show what the next steps still have to do. On the order and on each line, Allocated Quantity plus Pending Fulfilment Allocation Quantity should account for the full ordered quantity, less anything cancelled.
Step 6 — Release a reservation
Cancelling never edits the original row. It writes a new allocation line with a negative quantity that points back to it. That reverses the ledger posting and gives the quantity back to free stock and to the line's pending allocation quantity.
- On the order, Cancel Allocation shows while the order has Allocated Quantity above zero and its Status is Fulfilment. It releases every allocation line of the order.
- On the fulfilment document, Cancel Allocation releases everything and Selective Cancel Allocation releases chosen lines and quantities. Both show while Allocated Quantity is above zero.
You can only release what has not moved on. The limit is each line's Eligible Return Quantity, which is the reserved quantity less anything already picked, delivered or invoiced. Cancel picking first where picking lines exist.
Business rules
- Every allocation is capped at the line's pending quantity. You cannot reserve more than was ordered.
- Stock is only taken from the document's own branch and partner account.
- Lots on hold are never used. Lots are used oldest first, except in Manual Allocation, where you choose.
- On the order, a shortfall on any line refuses the whole action. On the fulfilment document, a shortfall leaves quantity pending.
- An allocation line posts to the inventory ledger the moment it is saved (into the Allocation bucket). Stock leaves the warehouse only when a delivery order or invoice posts.
- A whole-document Cancel Allocation writes a reversal for every allocation line that still shows an allocated quantity. A line that is already fully picked, delivered or invoiced gives a zero-quantity reversal, which is refused with a validation error on Quantity. That stops the whole cancel. Use Selective Cancel Allocation on the fulfilment document and choose only the lines that can still be released.
- A fulfilment document set to pick without allocation (used by some claim returns) refuses allocation with This fulfilment picks without allocation, so it cannot be allocated. Use Picking instead.
Example
A distributor's order SO-0142 has two lines at the Pune branch: 30 cartons of a lot-tracked juice (Limit Expiry Days 60) and 10 units of a display stand that tracks inventory but not lots.
- Pending Fulfilment Allocation Quantity is 30 and 10. The sales coordinator selects Auto Allocation.
- The branch has three juice lots, received in this order: L-07 (12 cartons, expires in 40 days), L-09 (25 cartons, expires in 55 days) and L-11 (50 cartons, expires in 120 days). L-11 is outside the 60-day window, so it is skipped. xMatix reserves 12 from L-07 and 18 from L-09, oldest first, and 10 stands from the stand's stock record.
- Three allocation lines appear on the Related tab. Allocated Quantity is 40, Pending Fulfilment Allocation Quantity is 0, Document State is Allocated and Status is Fulfilment.
- The customer then asks for as much juice as possible from batch L-09. The coordinator selects Cancel Allocation on the order, which writes reversals for all three rows. Then they select Manual Allocation, switch on L-09 with 25 and L-07 with 5 for the juice line, and select Release (2). Finally they select Auto Allocation again to reserve the 10 stands.
Training
Practice exercise
In a sandbox, create a lot-tracked item and receive two lots of it at one branch, 5 units each, a day apart. Create a sales order for 8 units at that branch and select Auto Allocation.
Expected result: two allocation lines, 5 units from the older lot and 3 from the newer. Pending Fulfilment Allocation Quantity is 0 and Document State is Allocated. Next, create a second order for 3 units of the same item at the same branch and select Auto Allocation. Expected result: Item Lot not found for allocation., because only 2 units are left available, and nothing is reserved on the second order.
Quick reference
- Auto Allocation = xMatix picks the stock; Manual Allocation = you pick the lots.
- Only the order's branch and partner account stock counts.
- Held lots are never used; the oldest lot is used first.
- Item Lot on the line = that lot or nothing.
- Limit Expiry Days = only lots expiring within N days; undated lots are skipped.
- Short of stock on the order = error, nothing saved. On the fulfilment document = partial, no error.
- Cancelling writes a negative line; it never edits the original.
- Release only what is not yet picked, delivered or invoiced.
Permissions
Allocation actions are server actions. A user can run one only if one of their security profiles grants it — see Security profiles. The shipped profiles grant:
| Action | System Admin | Standard User | Sales Manager | Sales Executive |
|---|---|---|---|---|
| Order → Auto Allocation | Yes | Yes | No | Yes |
| Order → Manual Allocation (loading lots and releasing them) | Yes | Yes | No | No |
| Order → Cancel Allocation | Yes | Yes | No | Yes |
| Fulfilment → Allocation, Cancel Allocation | Yes | Yes | Yes | Yes |
| Fulfilment → Selective Allocation, Selective Cancel Allocation | Yes | Yes | Yes | No |
A user without the grant is refused when they run the action. Users also need access to the app that shows the document. The Warehouse app is granted to System Admin and Sales Executive; other profiles reach fulfilment documents through the Inventory app.
Configuration
There is no allocation setting in the Feature Hub. An administrator tailors allocation through metadata:
- Which buttons the order shows. The shipped order page shows Auto Allocation, Manual Allocation and Cancel Allocation. Fulfilment and Auto Allocate, Selective Fulfilment and Auto Allocate, Selective Cancel Allocation and Selective Allocation also exist on the order. The first three are not on the shipped order page. Selective Allocation is shipped switched off. To offer one, switch it on under the entity's Logic → Actions if needed, then add it to the order's page header in the layout designer. See Design a form layout.
- When buttons show. The page header shows the allocation buttons only while Pending Fulfilment Allocation Quantity is above zero and OTC Invoiced Quantity is not. Cancel Allocation shows only while Allocated Quantity is above zero and Status is Fulfilment. The fulfilment document shows Allocation while Pending Allocation Quantity is above zero, and the cancel actions while Allocated Quantity is above zero. These are layout reactions you can change in the designer.
- Who can run them. Grant or remove the server actions on each security profile. Manual Allocation needs both its own grant and the grant for Get Available Lots, which loads the dialog's lot list.
- The Manual Allocation dialog. The dialog's columns, what lots are grouped by and where Requested Qty sits are set on the dialog's widget in the layout designer.
- The Status rule. Set Sale Order Status To Fulfilment is a shipped business rule. See Business rules before changing it, because Cancel Allocation on the order depends on that status.
- Ledger effect. The Allocation bucket postings come from the inventory ledger settings for allocation lines. See Inventory ledger settings.
- Large orders. Auto Allocation and Manual Allocation can run in the background when an order has many lines. You then follow the job in the processing window instead of seeing the result at once.
Common problems
"Item Lot not found for allocation."
An order-side run found no eligible lot for a lot-tracked line. Check, in this order: the lot is at the order's branch and partner account; it is not on hold; its SKU matches the line's SKU exactly (including "no SKU"); it matches the line's Item Lot Type; it expires within Limit Expiry Days and has an expiry date; and, if the line names an Item Lot, that lot has quantity available. Fix the stock or the line, or allocate from the fulfilment document to reserve what exists.
"Available stock not found for allocation."
The same for an inventory item that is not lot-tracked, on the order: there is not enough available stock with a matching SKU at the order's branch and partner account.
"Selected Item Lot is not available for allocation."
In Manual Allocation, a lot you picked does not meet the line's rules (SKU, Item Lot Type or Limit Expiry Days), or it has no quantity left. Pick another lot, or clear the rule on the line.
"Item Lot is required for manual allocation."
A line was sent without a lot, usually because the item is not lot-tracked. Use Auto Allocation for that line.
"No pending allocation quantities found …"
Every line is already allocated, cancelled or has nothing left. Check the line counters. On the fulfilment document the message is No pending allocated quantities found in fulfillment order lines to create allocation.
"Requested quantity (n) cannot exceed the pending quantity (m)." or "Requested quantity must be greater than zero."
In a selective action, enter a quantity above zero and no larger than the line's pending quantity.
The fulfilment allocation finished but some quantity is still pending
This is by design. There was not enough eligible stock, and the fulfilment document reserves what it can without an error. Replenish, then run Allocation again.
Cancel Allocation fails with a validation error on Quantity
At least one allocation line is already fully picked, delivered or invoiced, so it cannot be released. Use Selective Cancel Allocation on the fulfilment document and choose only the lines with an Eligible Return Quantity.
I can't see Cancel Allocation on the order
It only shows while the order's Status is Fulfilment, which happens once every line is fully allocated. For a partly allocated order, cancel from the fulfilment document, or ask your administrator to add Selective Cancel Allocation to the order page.
See Sales troubleshooting for the wider checklist.
Common questions
In what order are lots used?
Oldest first, by the date each lot was created, on both the order and the fulfilment document. Expiry date and storage-location sequence do not change the order. If you want the shortest-dated stock to go first, set Limit Expiry Days on the line, or use Manual Allocation and pick the lots yourself. Manual Allocation can also list lots newest first (LIFO). Non-lot stock records are used in the order xMatix finds them, after any stock at the line's storage location when you allocate from the fulfilment document.
Can I allocate more than the ordered quantity?
No. Every allocation path is capped at the line's pending allocation quantity, which is the ordered quantity less what is already allocated or cancelled. Manual Allocation enforces the same cap across all the lots you pick for one line, and the Release button stays disabled while a line is over. To supply more, increase the order line's quantity first, while the order still allows the change, then allocate the difference.
Does allocation reduce stock on hand?
It reduces available stock, not stock in hand. The allocation line posts its quantity to the Allocation bucket of the inventory ledger as soon as it is saved, so other orders can no longer take it, but the goods are still in the warehouse. They leave when the delivery order or the invoice posts its inventory. Cancelling an allocation posts the reverse entry and the quantity becomes available again.
How do I know whether an order is fully allocated?
Read Pending Fulfilment Allocation Quantity: zero means every line is covered. Document State says Allocated or Partially Allocated after an allocation action, and the order's Status moves to Fulfilment once nothing is left to allocate. On a fulfilment document, read Pending Allocation Quantity and Allocated Quantity in the header and lines. An empty Allocation Line grid means nothing was reserved there.
Why did allocation on the order fail when the fulfilment document would have worked?
The order treats a shortfall as an error so that you notice it, and it saves nothing from that run. The fulfilment document reserves what it can and leaves the rest pending for replenishment or back-ordering. The fulfilment document also tries the line's storage location first, which the order does not. Choose the order when you want all or nothing, and the fulfilment document when partial reservation is acceptable.
