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/Delivery Order Line — entity reference
REFERENCE · Last reviewed

Delivery Order Line — entity reference

One item line of a delivery order, and the row that actually moves stock: when the parent's PerformInventoryPosting runs, four mutually exclusive seeded ledger rules discriminate on InventoryFulfilmentPickingLineId, InventoryFulfilmentAllocationLineId and InvoiceLineId to post an Outward movement and relieve the matching reservation bucket (Picked, Allocation or PendingDeliveries). DeliveredInvoiceQuantity and ReturnedQuantity are genuine roll-ups from InvoiceLine and CreditNoteLine rows keyed on DeliveryOrderLineId, which is what makes PendingInvoiceQuantity and EligibleReturnQuantity trustworthy; ShippedQuantity is not maintained by any code path. Lot and serial identity travel on ItemLotId with ItemLotTypeId, and posting fails outright when the item tracks lots but no lot was chosen.

Fields

FieldLabelTypeRequiredWhat it does
AllocatedQuantityAllocated QuantityDecimal
AmountAmountCalculated (calculated)The net line value: BaseAmount when discounts are applied post-tax, otherwise BaseAmount less NetSchemeDiscount and NetDiscount. The document's TotalLineAmount is the sum of this field.
ApplyPostTaxDiscountApply Post Tax DiscountBooleanSwitches the whole discount calculation from pre-tax to post-tax: when true every discount percentage is applied to BaseAmount plus tax rather than BaseAmount alone, and Amount stops deducting discounts (they are taken out at GrossAmount instead). It changes the meaning of Amount, NetDiscount and GrossAmount together.
AssetIdAssetLookup → AssetA link to a serialised Asset record for the unit being delivered.
BaseAmountBase AmountCalculated (calculated)Calculated as Quantity multiplied by UnitPrice2 when that is above zero, otherwise by UnitPrice. It is the pre-discount, pre-tax line value that every discount formula is applied to.
BillReturnLineIdBill Return LineLookup → BillReturnLine
ContractDiscountContract DiscountPercent
ContractDiscountAmountContract Discount AmountCurrency
ConversionRatioConversion RatioDecimalThe multiplier from the line's unit of measure to the item's base unit, stamped from the item's unit-of-measure configuration when the quantity is derived.
ConversionRatio1Conversion Ratio 1Decimal
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DeliveredInvoiceQuantityDelivered Invoice QuantityDecimalA live roll-up: the sum of InvoiceLine.Quantity over the invoice lines keyed to this delivery line, refreshed whenever those invoice lines are added, edited or deleted. PendingInvoiceQuantity is Quantity minus this value, and PerformCreateInvoice gates on it.
DeliveredQuantityDelivered QuantityDecimal
DeliveryOrderDiscountDelivery Order DiscountCalculated (calculated)
DeliveryOrderIdDelivery OrderLookup → DeliveryOrder
DiscountDiscountPercent
Discount2Cash DiscountPercent
DiscountAmountDiscount AmountCurrency
DiscountAmount2Cash Discount AmountCurrency
EligibleReturnQuantityEligible Return QuantityCalculated (calculated)Calculated as Quantity minus ReturnedQuantity: how much of this delivered line can still be credited back. It is validated never to go negative, so an over-return is rejected at save time.
ExternalIdExternalText
GrossAmountGross AmountCalculated (calculated)Amount plus TaxAmount, less scheme and net discounts when the line is flagged post-tax discount. It is the figure the document's TotalLineGrossAmount rolls up, which is what PerformGLPosting books.
IdIdGuidYes
InventoryFulfilmentAllocationLineIdInventory Fulfillment Allocation LineLookup → InventoryFulfilmentAllocationLineSet when the delivery line was generated from a fulfilment allocation line (allocation-delivery path); the picking path sets inventoryFulfilmentPickingLineId instead. Which one is filled tells you how the goods were staged.
InventoryFulfilmentPickingLineIdInventory Fulfillment Picking LineLookup → InventoryFulfilmentPickingLineSet when the delivery line was generated from a fulfilment picking line. It is the discriminator for the ledger rule that posts Outward and decrements the Picked bucket, as opposed to the allocation path, which decrements Allocation instead.
InventoryLedgerIdInventory LedgerLookup → InventoryLedgerThe posted marker for this line: PerformInventoryPosting only picks up lines where it is empty, and stamps the created ledger row's id here afterwards. It is set by the engine as a system-modified field, so it is not user-editable.
InvoicedQuantityInvoiced QuantityDecimalA provenance copy taken at creation from the source invoice or order line, capped at that line's quantity. It is the quantity the invoice-sourced Outward ledger rule posts against the PendingDeliveries bucket, and it is not the same thing as DeliveredInvoiceQuantity, which is the live roll-up.
InvoiceLineIdSale Invoice LineLookup → InvoiceLineSet when the line was generated from an invoice line (invoice-first delivery). It selects the ledger rule that decrements the PendingDeliveries bucket using InvoicedQuantity rather than posting a plain Outward movement, so its presence changes what dispatching does to stock.
IsGLPostingApprovedGL Posting ApprovedBoolean
IsILPostedIL PostedBooleanA per-line inventory-posted flag that no code writes; InventoryLedgerId is the marker the posting action actually filters and stamps. Do not use this flag to decide whether a line has moved stock.
IsILPostingApprovedIL Posting ApprovedBooleanA per-line approval gate for inventory posting that the posting path never consults - the line is posted purely on InventoryLedgerId being empty. Setting it grants no authorisation on its own.
IsInspectionDoneInspection DoneBooleanIntended to record that the pre-delivery inspection was completed, but no code path sets it. Actual inspection evidence lives in the checklist lines that Populate Checklist creates, not here.
IsInspectionRequiredInspection RequiredBoolean
IsInsuranceDoneInsurance DoneBoolean, unique
IsRegistrationDoneRegistration DoneBoolean
IsRegistrationRequiredRegistration RequiredBoolean
ItemAliasIdItem AliasLookup → ItemAliasThe customer- or supplier-specific alias for the item, resolved on insert by the item alias service. It lets the printed delivery note show the counterparty's own product code while ItemId stays the internal item.
ItemIdItemLookup → Item
ItemLotIdItem LotLookup → ItemLotThe specific lot or serialised unit being dispatched; the lot record is where serial and registration numbers live. Inventory posting fails with 'Product Lot was not selected for the transaction' when the item tracks lots and this is empty, and posting also updates the lot's own bucket counters, not just branch stock.
ItemLotTypeIdItem Lot TypeLookup → ItemLotTypeThe lot classification (for example new, demo or refurbished) copied from the source line. It is carried onto the inventory ledger row so stock can be analysed by lot type, but it does not itself select a lot.
ItemNameItem NameText
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
NetDiscountNet DiscountCalculated (calculated)The single blended discount figure for the line: it sums three independent legs (line discount, second discount and contract discount), each of which takes its explicit amount field when one is set and otherwise applies its percentage to BaseAmount, or to BaseAmount plus tax under post-tax discounting.
NetSchemeDiscountNet Scheme DiscountCalculated (calculated)The scheme (promotion) leg of the discount, computed the same way as NetDiscount but from SchemeDiscountAmount or the SchemeDiscount percentage. It is kept separate from NetDiscount so promotional give-away can be reported apart from commercial discount.
OrderLineIdSale Order LineLookup → OrderLineThe sales order line being delivered. It is the key the order-side roll-up uses to decrement the order line's pending delivery quantity when this line is created, edited or deleted, and it is also the anchor for the source-populated field lock on item, lot and SKU.
OriginalItemIdOriginal ItemLookup → Item
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartnerAccountText
PendingInvoiceQuantityPending Invoice QuantityCalculated (calculated)
PendingShippedQuantityPending Shipped QuantityCalculated (calculated)Calculated as Quantity minus ShippedQuantity.
PickedQuantityPicked QuantityDecimalIts counterpart on allocation-sourced lines is AllocatedQuantity; neither is a live measure of picking progress.
PolicyNumberPolicy NumberText
PriceAsOnDatePrice As On DateDate
PriceListIdPrice ListLookup → PriceList
PriceListRuleIdPrice List RuleLookup → PriceListRule
PurchaseOrderLineIdPurchase Order LineLookup → PurchaseOrderLine
QuantityQuantityDecimalThe delivered amount for this line, and the single quantity that matters: every creation path sets it, the Outward ledger rules read it, and it feeds the roll-ups back onto the order line, allocation line and picking line. Editing it re-posts the line's inventory movement.
RecordTypeIdRecord TypeGuid, hidden
RegistrationNumberRegistration NumberTextThe registration number of the delivered unit, for vehicle-style goods. No code writes it on the delivery line - the equivalent value that the system actually maintains is on the ItemLot record, which is copied lot to lot on transfers.
RequestedQuantityRequested QuantityNumberA virtual, non-stored field used only as an argument: the selective release-shipment and selective delivery flows pass a per-line requested quantity through it, validated against the line's quantity. It is never persisted and is meaningless when read back from a saved row.
ReturnedQuantityReturned QuantityDecimalA live roll-up of CreditNoteLine.Quantity over the credit note lines keyed to this delivery line, maintained on credit note line insert, update and delete. EligibleReturnQuantity is Quantity minus this value.
SchemeDiscountScheme DiscountPercent
SchemeDiscountAmountScheme Discount AmountCurrency
SchemeLineIdScheme LineLookup → SchemeLine
SchemeRewardPointsScheme Reward PointsLargeNumberReward points the scheme engine attached to this line when a points-based benefit applied. The scheme ledger reads it to post the points, so it is engine-written rather than user-entered.
ServiceOrderLineIdWork Orde LineLookup → ServiceOrderLine
ShippedQuantityShipped QuantityDecimalIntended as the cumulative quantity placed on Shipments, but nothing maintains it: the roll-up that would sum shipment lines by DeliveryOrderLineId is defined and never called, and shipment lines created from a delivery are not stamped with DeliveryOrderLineId in the first place. It therefore stays at zero, which also makes the calculated PendingShippedQuantity always equal Quantity.
SKUIdSKULookup → SKU
StorageLocationIdStorage LocationLookup → StorageLocationThe bin or storage location the goods leave from, copied from the source invoice, allocation or picking line. It is part of the key that identifies which InventoryStock row the Outward movement relieves, so a different location means a different stock bucket.
Tax1Tax1Currency
Tax1NameTax Name 1Text
Tax1RateTax Rate 1Currency
Tax1TypeTax Type 1Text
Tax2Tax2Currency
Tax2NameTax Name 2Text
Tax2RateTax Rate 2Currency
Tax2TypeTax Type 2Text
Tax3Tax3Currency
Tax3NameTax Name 3Text
Tax3RateTax Rate 3Currency
Tax3TypeTax Type 3Text
Tax4Tax4Currency
Tax4NameTax Name 4Text
Tax4RateTax Rate 4Currency
Tax4TypeTax Type 4Text
Tax5Tax5Currency
Tax5NameTax Name 5Text
Tax5RateTax Rate 5Currency
Tax5TypeTax Type 5Text
Tax6Tax6Currency
Tax6NameTax Name 6Text
Tax6RateTax Rate 6Currency
Tax6TypeTax Type 6Text
TaxAmountTax AmountCurrency
TaxGroupIdTax GroupLookup → TaxGroup
UIPropsUI PropsText
UnitCostUnit CostCurrencyThe cost per unit carried through from the source allocation line when the delivery raises an invoice. Inventory posting reads UnitPrice first and falls back to this value for the ledger row's unit cost.
UnitPriceUnit PriceDecimalThe selling price per base unit, defaulted from the applicable price-list rule on insert and refreshed when PriceListRuleId changes. Inventory posting also stamps it onto the ledger row as the movement's unit cost when no UnitCost is present.
UnitPrice2Unit Price 2CurrencyThe second price from the applicable price-list rule, set alongside UnitPrice.
UOMUOMText
UOM1UOM1Text
UOMQuantityUOM QuantityDecimalThe quantity as entered in the line's chosen unit of measure. It is multiplied by ConversionRatio (and the second UOM leg by ConversionRatio1) to derive the base-unit Quantity, so this is what the user types and Quantity is what the system stores and posts.
UOMQuantity1UOM Quantity 1Decimal
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditInLineEditEditInlineEdit
HeaderEditEditEditEdit
NewInLineNewNewInlineNew In Line

Validations

ValidationApplies toError messageNotes
Quantity Rule ValidationQuantity, ErrorQuantity cannot be 0Quantity cannot be 0

Lookup filters

FilterLookup fieldNotes
Lot For SKUItemLotId
Lot Type for ItemItemLotTypeId
Sku For ItemSKUId