xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Allocation Line — entity reference
REFERENCE · Last reviewed

Allocation Line — entity reference

One reservation against a single concrete stock source: an ItemLot when the item is lot-tracked, otherwise an InventoryStock bucket. Creating it posts an Allocation ledger row that increments InventoryStock.Allocation, so the reservation is visible to the rest of the platform immediately on save rather than at a later posting step. Polarity carries meaning: positive rows reserve, negative rows are cancellations that link back through ParentFulfillmentAllocationLineId (note the double-l spelling) — original rows are never edited, and the cancellable amount is the calculated EligibleReturnQuantity, not AllocatedQuantity. Most of its many quantity columns are roll-ups written by other documents: picking lines feed the Picking* and PickedQuantity columns, delivery lines feed DeliveryQuantity and PickedDeliveredQuantity, invoice lines feed the three invoiced columns.

Fields

FieldLabelTypeRequiredWhat it does
AllocatedByIdAllocated ByLookup
AllocatedByResourceIdAllocated ByLookup → ResourceOnly picking captures who did the work, through PickedByResourceId on the picking line.
AllocatedQuantityAllocated QuantityCalculated (calculated)Calculated as Quantity minus ReturnedQuantity, so it is what is still reserved after cancellations; the raw reservation booked to the ledger is Quantity.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DeliveredInvoicedQuantityDelivered Invoiced QuantityDecimal
DeliveryQuantityDelivery QuantityDecimal
DeliveryReturnQuantityDelivery Return QuantityDecimalDeclared and stored but written by no code path — the delivery roll-ups maintain DeliveryQuantity and PickedDeliveredQuantity instead. It only ever appears in the never-negative validation list.
DocumentDateDocument DateDate
EligibleReturnQuantityEligible Return QuantityCalculated (calculated)
ExternalIdExternalText
FulfillmentNumberFulfillment NumberNumber, uniqueNote also the American double-l spelling, which differs from the 'Fulfilment' used across the rest of the module.
IdIdGuidYes
InventoryFulfilmentIdInventory FulfilmentLookup → InventoryFulfilment
InventoryFulfilmentOrderLineIdFulfillment Order LineLookup → InventoryFulfilmentOrderLineLink back to the demand line this reservation consumes. One demand line commonly has several of these, because allocation keeps taking the next eligible lot or stock row until the pending demand is used up.
InventoryLedgerIdInventory LedgerLookup → InventoryLedgerStamped by the ledger engine with the immutable Allocation row it wrote. Its presence is what tells the platform the quantity has already been added to the InventoryStock Allocation bucket.
InventoryStockIdStockLookup → InventoryStockThe stock bucket a non-lot reservation is booked against — the seeded Allocation rule increments the Allocation column of exactly this row.
InvoiceQuantityInvoice QuantityDecimalThe directly invoiced portion: invoice-line quantity less its delivered and picked parts, so it counts only what was invoiced without a delivery or a pick in between.
IsClosedClosedBoolean
IsILPostedIL PostedBoolean
IsILPostingApprovedIL Posting ApprovedBooleanSet true on every line the engine creates, cancellation reversals included, so the Allocation ledger rule fires on save.
ItemIdItemLookup → Item
ItemLotIdItem LotLookup → ItemLotThe concrete lot the reservation is drawn from for lot-tracked items; when it is empty the reservation is against the InventoryStock bucket instead. It is locked once the line has transacted.
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
LastModifiedByIdLastModifiedByGuid
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
OrderIdOrderLookup → Order
OrderLineIdSale Order LineLookup → OrderLineThe sales demand this reservation answers. After allocation runs, a link that is missing or points at a deleted line is automatically repaired to the single matching order line for the same item and SKU (preferring a scheme-generated one); a link that is already valid is left untouched.
OwnerIdOwnerLookup → UserAccountYes
ParentFulfillmentAllocationLineIdParent Inventory Fulfillment Allocation LineLookup → InventoryFulfilmentAllocationLineSelf-reference used by allocation cancellation: the reversal row created by a cancel points back at the allocation line it undoes, keeping the original row intact.
PendingDeliveryQuantityPending Delivery QuantityCalculated (calculated)What allocation-based delivery can still deliver from this line; the AllocationDelivery actions require it above zero.
PendingInvoiceQuantityPending Invoice QuantityCalculated (calculated)Calculated as AllocatedQuantity minus all three invoiced buckets (direct, delivered-invoiced, picked-invoiced).
PendingPickingQuantityPending Picking QuantityCalculated (calculated)Allocated quantity not yet moved to picking. Gates PerformPicking/SelectivePicking, and an allocation line at zero here must be delivered through the picked-delivery path - allocation delivery refuses it.
PickedDeliveredQuantityPicked Delivered QuantityNumberRoll-up of delivery-order lines that were raised from a picking line. Delivery raised straight off this reservation lands in DeliveryQuantity instead, and both are subtracted in PendingDeliveryQuantity.
PickedInvoiceQuantityPicked Invoice QuantityNumber
PickedQuantityPicked QuantityDecimalRoll-up of the child picking lines' Quantity, not this line's own reservation; it feeds both EligibleReturnQuantity and PendingPickingQuantity.
PickingCancelQuantityPicking Cancel QuantityNumberRoll-up of the picking lines' CancelQuantity — the shortfall recorded when a pick was confirmed for less than was requested. It is added back into PendingPickingQuantity so the difference can be picked again.
PickingRequestedQuantityPicking Requested QuantityNumberAggregate of the child picking lines' requested quantities, maintained alongside pickingCancelQuantity by the picking-line rollup.
PickingReturnQuantityPicking Return QuantityNumberRecomputed aggregate: the sum of quantities returned by this allocation's cancelled child picking lines, refreshed whenever picking cancellations post.
QuantityQuantityNumber
RecordTypeIdRecord TypeGuid, hidden
RequestedQuantityRequested QuantityNumberCarried only in a selective action's payload, never stored demand: it is the amount that call wants to pick or cancel on this line, validated against PendingPickingQuantity or EligibleReturnQuantity depending on the action.
ReturnedQuantityReturned QuantityNumberMaintained as the negated sum of the child cancellation lines' Quantity, so it grows as reversals are booked against this reservation.
ServiceOrderIdService OrderLookup → ServiceOrder
ServiceOrderLineIdService Order LineLookup → ServiceOrderLine
SKUIdSKULookup → SKU
SoftCommittedQuantitySoft Committed QuantityCalculated (calculated)Calculated: equal to Quantity when the line is tied to an order or service-order line and zero otherwise, so it marks reservations that answer real customer demand rather than speculative ones.
StorageLocationIdStorage LocationLookup → StorageLocation
UIPropsUI PropsText
UnitCostUnit CostCurrencyTaken from the chosen ItemLot when allocating a lot, but from the demand line's UnitPrice when allocating from an InventoryStock bucket — so for non-lot items it carries a selling price rather than a cost.
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDelete, inactiveDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteBlocked once the line has a non-zero quantity — reservations are reversed with CancelAllocation on the fulfilment, which writes a negative line, rather than deleted.
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditInLineEditEditInlineEdit
EditListRowEditEditEditListRow
HeaderEditEditEditInline, inactiveHeaderEdit
NewNewNew, inactive

Validations

ValidationApplies toError messageNotes
Quantity Rule ValidationQuantity, Error, inactiveQuantity shouldn't be less than zero.Quantity shouldn't be less than zero.
Unit Cost Rule ValidationUnitCost, Error, inactiveUnit Cost can't be less than zero.Unit Cost can't be less than zero.