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/Inventory Fulfillment Picking Line — entity reference
REFERENCE · Last reviewed

Inventory Fulfillment Picking Line — entity reference

A physical pick raised one-for-one from an allocation line, capped at that line's PendingPickingQuantity; it can only exist with an allocation-line parent, which the handler enforces on insert. Saving it posts a Picked ledger row that moves the quantity out of the InventoryStock Allocation bucket into Picked — stock is reclassified, not shipped. ConfirmPicking is the step that makes it real: it overwrites Quantity with what was actually picked, records the shortfall in CancelQuantity, sets IsPickingConfirmed, and may re-point the lot, bin or stock bucket from the operator's payload. Confirmation gates both CancelPicking and PickedDelivery, and cancellations are negative rows linked through ParentInventoryFulfilmentPickingLineId.

Fields

FieldLabelTypeRequiredWhat it does
CancelQuantityCancel QuantityNumberWritten by ConfirmPicking as the shortfall between what the pick was raised for and what was confirmed. It flows back into the parent reservation's PendingPickingQuantity so the missing amount can be picked again.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DeliveryQuantityDelivery QuantityDecimalRoll-up of the delivery-order lines raised from this pick; the pending delivery figure is Quantity less this less what was returned.
DocumentDateDocument DateDateDefaults to the UTC construction time of the record rather than being stamped by a handler, so it is a system timestamp, not a warehouse business date.
ExternalIdExternalText, unique
IdIdGuidYes
InventoryFulfilmentAllocationLineIdFulfillment Allocation LineLookup → InventoryFulfilmentAllocationLineThe allocation line this pick draws from; the allocation/picking/delivery quantity state machine reconciles through this link.
InventoryFulfilmentIdInventory FulfilmentLookup → InventoryFulfilment
InventoryLedgerIdInventory LedgerLookup → InventoryLedgerStamped with the Picked ledger row, which decrements the InventoryStock Allocation bucket and increments Picked. Its presence is how the platform knows the reclassification already happened.
InventoryStockIdStockLookup → InventoryStock
IsILPostedIL PostedBooleanYes
IsILPostingApprovedIL Posting ApprovedBooleanYes
IsPickingConfirmedPicking ConfirmedBooleanYes
ItemIdItemLookup → Item
ItemLotIdItem LotLookup → ItemLotInherited from the reservation, but ConfirmPicking may overwrite it from the operator's payload — that is how a picker records that the goods physically came from a different lot.
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
LastModifiedByIdLastModifiedByGuid
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
OrderIdOrderLookup → Order
OrderLineIdSale Order LineLookup → OrderLine
OwnerIdOwnerLookup → UserAccountYes
ParentInventoryFulfilmentPickingLineIdInventory Fulfillment Picking LineLookup → InventoryFulfilmentPickingLineCancel-picking creates return lines pointing at the picked line they undo via this self-reference; those children are then aggregated back onto the allocation line's picking-return rollup.
PendingDeliveryQuantityPending Delivery QuantityCalculated (calculated)Undelivered picked quantity; the picked-delivery actions require it above zero on the (selected) lines before a delivery order is created.
PickedByResourceIdPicked ByLookup → ResourceCaptured only when the ConfirmPicking payload names an operator, so it is blank on picks confirmed in bulk. The JSON property is upper-cased unlike its neighbours, which matters for API payloads.
PickedQuantityPicked QuantityCalculated (calculated)
QuantityQuantityDecimalThe pick amount that actually posts to stock. It starts equal to the requested amount and is then overwritten by ConfirmPicking with what was really picked, so before confirmation it is an intention rather than a fact.
RecordTypeIdRecord TypeGuid, hidden
RequestedQuantityRequested QuantityDecimalA genuinely stored column here, unlike the transient namesakes on the sibling line entities: the amount the pick was raised for, taken from the reservation's pending picking quantity. ConfirmPicking compares against it to derive the cancelled shortfall.
ReturnedQuantityReturned QuantityDecimalQuantity returned from picking on this line; rolls up onto the parent allocation line's pickingReturnQuantity.
ServiceOrderIdService OrderLookup → ServiceOrder
ServiceOrderLineIdService Order LineLookup → ServiceOrderLine
SKUIdSKULookup → SKU
StorageLocationIdStorage LocationLookup → StorageLocationInherited from the reservation and overridable at confirmation, recording the bin the goods were actually taken from rather than the one planned.
UIPropsUI PropsText
UnitPriceUnit PriceCurrencyCopied from the parent reservation's UnitCost despite the name — for lot allocations that is a lot cost and for stock allocations it is the order line's selling price.
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteBlocked once the pick has a non-zero quantity; use CancelPicking on the fulfilment, which writes a reversing negative pick and posts the ledger back.
DeleteInListDeleteDeleteDelete
EditEntityEditEditEdit
EditInLineEditEditInlineEdit
EditListRowEditEditEditListRow
NewNewNew, inactiveDeactivated on purpose. Picks are produced only by the fulfilment's picking actions, and the handler rejects any positive-quantity pick that has no allocation-line parent.

Validations

ValidationApplies toError messageNotes
Quantity Rule ValidationQuantity, Error, inactiveQuantity shouldn't be less than zeroQuantity shouldn't be less than zero
Unit Price Rule ValidationUnitPrice, Error, inactiveUnit Price can't be less than zeroUnit Price can't be less than zero