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/Item Lot — entity reference
REFERENCE · Last reviewed

Item Lot — entity reference

One traceable batch or serial instance of an item at one partner + branch + storage location, with its own costs, dates and per-lot quantity counters that the ledger posting engine moves in step with InventoryStock. A lot is location-scoped rather than globally unique per batch number: goods receipt creates one per receipt line for items with TrackLots, and transfer posting clones a fresh lot at the destination whose RelatedItemLotId points back at the source. Lot selection for invoicing and fulfilment allocation only considers lots with no HoldCode, ordered oldest-created first. IsTransactionLocked blocks further saves while set, and cycle counting sets and clears it when the count has inventory locking enabled.

Fields

FieldLabelTypeRequiredWhat it does
AdjustmentAdjustmentNumberNet signed quantity from untyped adjustment lines against this batch - this, not the adjusted-in counter, is where positive adjustments land. Counts fully into both the lot's available and in-hand balances.
BatchNoBatch NoTextFree-text batch identifier. It is not populated when a lot is created from a goods receipt line - only the transfer and field-sales paths set it, by copying it from the lot being cloned - so receipt-created lots carry it only if a user types one.
BranchIdBranchLookup → Branch
ComponentNumberComponent NumberTextManufacturer or component reference captured on the goods receipt line and carried onto the lot; transfer cloning copies it to the destination lot so traceability survives a move.
CostCostCurrencyA separate cost field that goods receipt does not populate - it is only carried across when transfer posting clones a lot. For the receipted cost use the unit cost field.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTime
DateOfDispatchDate Of DispatchDate
DateOfExpiryDate Of ExpiryDateExpiry date of the batch. Not populated by goods receipt lot creation - only carried across when a transfer clones a lot - so it must be captured manually or by an integration on the originating lot.
DateOfInwardDate Of InwardDate
DateOfMfgDate Of MfgDateManufacturing date of the batch. Not populated by goods receipt lot creation; it is only copied forward when a transfer clones a lot.
DateOfReceiptDate Of ReceiptDateSet from the goods receipt document's date when the lot is created, so it reflects the receipt, not the line's own timestamp.
DateOfRegistrationDate Of RegistrationDate
DateOfSupplierDispatchDate Of Supplier DispatchDateCopied from the goods receipt header's supplier dispatch date at lot creation and carried onto cloned lots by transfer posting.
DateOfSupplierInvoiceDate Of Supplier InvoiceDateCopied from the goods receipt header's supplier invoice date at lot creation and carried onto cloned lots by transfer posting.
DisassembleDisassembleNumber
ExternalIdExternalText
ExternalNameExternal NameText
HashCodeHash CodeNumberAn opaque token assigned once at insert from the current millisecond clock plus a random component. It is not a checksum of the record and nothing in the platform matches, deduplicates or orders on it.
HoldCodeHold CodeTextAny non-null value quarantines the lot: invoicing and fulfilment allocation only ever consider lots where this is null, so setting it removes the lot from automatic selection without changing its quantities. The value itself is not interpreted - only its presence.
IdIdGuidYes
IsClosedIs ClosedBooleanNo code path reads or writes it, so it has no effect on lot selection, posting or valuation today.
IsClosedForSaleIs Closed For SaleBooleanNo code path reads or writes it. To stop a lot being sold, set a hold code instead - that is the flag the selection queries actually honour.
IsTransactionLockedIs Transaction LockedBooleanSet while a cycle count with inventory locking is underway on this lot - start counting locks, finish counting unlocks - to freeze movements during the count.
ItemIdItemLookup → Item
ItemLotCodeLot CodeTextIt is only read back for display in the allocation and manual-picking screens, so it stays blank unless captured manually.
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
LandedCostLanded CostCurrency
ModifiedByIdModified ByLookup → UserAccountYes
MRPMRPCurrencyMaximum retail price copied from the goods receipt line when the lot is created, and copied again onto the destination lot when a transfer clones it.
NameNameText
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → Account
PurchaseDatePurchase DateDate
QuantityAdjustedInPostitive AdjustedNumberUse the adjustment counter for adjusted-in quantity.
QuantityAdjustedOutNegative AdjustedNumberBatch quantity written off by negative untyped adjustment lines, accumulated as a positive magnitude because the engine applies it as a decrement of a negative quantity.
QuantityAssembledInQuantity Assembled In (Future Use)NumberBatch quantity produced by assembly adjustments; despite the label marking it for future use it is actively written, because the seeded assemble rule's field name resolves to this property. It also absorbs disassembly adjustments, since the seeded disassemble rule points at the same assemble field.
QuantityAssembledOutQuantity Assembled Out (Future Use)Number
QuantityAvailableAvailableCalculated (calculated)
QuantityDamagedDamagedNumber
QuantityExcessQuantity ExcessNumber
QuantityExpiredExpiredNumber
QuantityInHandIn HandCalculated (calculated)
QuantityInPendingDeliveriesPending DeliveriesNumberBatch quantity invoiced but not yet delivered, incremented alongside the sold counter and released again when the delivery posts.
QuantityInTransitTransitNumberThe lot-level in-transit balance for two-step transfers: outward release adds the moving quantity on the destination clone, and inward receipt removes it.
QuantityOnAllocationAllocatedNumberQuantity of this batch reserved by fulfilment allocation lines; picking drains it as it fills the picked counter. Subtracted from the lot's available balance and ignored by its in-hand balance.
QuantityOnFulfillmentQuantity On Fulfillment (Future Use)NumberReserved quantity is tracked on the allocation and picked counters instead.
QuantityOnHoldQuantity On Hold (Future Use)NumberBatch quantity blocked by OnHold adjustment lines; despite the label marking it for future use it is actively maintained by posting, and is subtracted from the lot's available balance.
QuantityOnInspectionInspectionNumberBatch quantity held for incoming inspection, posted from inspection lines on a goods receipt. Subtracted from the lot's available balance and ignored by its in-hand balance.
QuantityOnInwardUnbilled ReceiptsNumberPer-lot mirror of the received-but-unbilled stock bucket, moved by the same posting call that moves the stock row. Adds to the lot's calculated available and in-hand balances.
QuantityOnLoanQuantity On Loan (Future Use)NumberBatch quantity lent out by OnLoan adjustment lines; despite the label marking it for future use it is actively maintained by posting, and is subtracted from the lot's available balance.
QuantityOnOutwardUnbilled DispatchesNumberPer-lot mirror of the dispatched-but-uninvoiced bucket. Subtracted by the lot's available balance and absent from its in-hand balance.
QuantityPickedPickedNumberQuantity of this batch on picked fulfilment lines, incremented as allocation is drained. Subtracted from the lot's available balance only.
QuantityPurchasedPurchasedNumber
QuantityPurchaseReturnedPurchase ReturnedNumber
QuantitySaleReturnedSale ReturnedNumber
QuantityShortageShortageNumber
QuantitySoldSoldNumber
QuantityTransferInTransfer InNumber
QuantityTransferOutQuantity Transfer OutDecimal
RecordTypeIdRecord TypeGuid, hidden
RegistrationNumberRegistration NumberTextRegistration identity for registrable goods; not set at goods receipt, only copied forward when transfer posting clones a lot, and read when a receipt produces an asset record.
RelatedItemLotIdRelated Item LotLookup → ItemLot
SaleDateSale DateDate
SerialNumberSerial NumberTextSerial identity of a single-unit lot, taken from the goods receipt line and copied onto the destination lot when a transfer clones it.
SKUIdSKULookup → SKU
StorageLocationIdStorage LocationLookup → StorageLocationThe bin/location the lot currently sits in. Receiving a transfer inward line rewrites it to the receiving line's location, which is how put-away moves a lot.
SupplierInvoiceNumberSupplier Invoice NumberTextCopied from the goods receipt header at lot creation and carried onto cloned lots by transfer posting, giving each batch its purchase paperwork reference.
TotalCostTotal CostCurrency
TransferInwardTransfer InwardDecimalCumulative quantity transferred into this batch's location, incremented by the inward leg of a transfer posting. Counts positively into the lot's available and in-hand balances.
TransferOutTransferOutDecimalYes
TransferOutwardTransfer OutwardDecimalCumulative quantity transferred out of this batch, incremented by the outward leg of a transfer posting. Subtracted by the lot's available and in-hand balances.
UIPropsUI PropsText
UnitCostUnit CostCurrencyPer-unit cost copied from the goods receipt line when the lot is created, and copied again onto ledger rows as the movement's unit cost when this lot posts.
UpdatedDateTimeModified DateDateAndTime

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete the selected records.
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete in a list page
EditEditEditEdit
EditInLineEditEditInlineEdit
EditListHeaderEditEditInlineEditListHeader
EditListRowEditEditEditListRow
NewNewNewNew

Validations

ValidationApplies toError messageNotes
Allow Product Lots Only with One QtyErrorThis Product Lot do not allow quantities in excess of one.Prevents serialised products from having more than one quantity in a lot

Lookup filters

FilterLookup fieldNotes
Branch For Partner AccountBranchId