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

Purchase Order Line — entity reference

One item position on a purchase order: PurchaseOrderId plus ItemId, SKUId and Quantity, carrying the resolved buy price (UnitCost, with UnitCost2 overriding it in the amount formula), the discount ladder, a per-line snapshot of up to six taxes in the Tax1..Tax6 name/rate/type/amount slots, and the counters that drive the chain. Three independent pending counters track three different downstream stages against the same ordered quantity: PendingQuantity is what is still to be received, PendingInvoiceQuantity what is still to be billed, PendingOrderQuantity what is still to be pushed out as a dealer sale order. A line can be sourced from a requisition line (RequisitionLineId) or from an auto-order proposal line (AutoPurchaseOrderLineId), and quantity edits are blocked below whatever has already been received or returned.

Fields

FieldLabelTypeRequiredWhat it does
AmountAmountCalculated (calculated)
ApplyPostTaxDiscountApply Post Tax DiscountBooleanYes
AutoPurchaseOrderLineIdAuto Purchase Order LineLookup → AutoPurchaseOrderLineLinks the line back to the AutoPurchaseOrderLine proposal it was generated from. It is also the key the planner reads back through: the proposal line's PurchaseOrderQuantity is rolled up from the quantity of the purchase-order lines pointing at it, which is what makes a partly accepted suggestion show a remaining pending quantity.
BaseAmountBase AmountCalculated (calculated)
BenefitIndexBenefit IndexNumber
BranchIdBranchCalculated (calculated)A denormalised text copy of the parent order's branch identifier, calculated as the parent's BranchId converted to a string so the line can be filtered and grouped without a join. It is text, not a branch lookup, so it cannot be navigated.
CancelledQuantityCancelled QuantityDecimalQuantity struck off the line without being received or billed. It is subtracted in both the pending-receipt and pending-invoice formulas and is also deducted from the ordered quantity that the over-receipt guard compares against, so cancelling reduces how much may still be received.
ContractDiscountContract DiscountPercent
ContractDiscountAmountContract Discount AmountCurrency
ConversionRatioConversion RatioNumber
ConversionRatio1Conversion Ratio 1Number
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DiscountDiscountPercent
Discount2Cash DiscountPercent
DiscountAmountDiscount AmountCurrency
DiscountAmount2Cash Discount AmountCurrency
ExcludeInAutoOrderExclude In Auto OrderBooleanYesOpts this line out of the replenishment pipeline: the procurement pipeline queries that feed the Forecasting engine skip lines carrying it, so an excluded line's outstanding quantity is not counted as inbound supply when projecting stock. The same opt-out exists on requisition and sale-order lines.
ExternalIdExternalText, unique
GrossAmountGross AmountCalculated (calculated)
IdIdGuidYes
InventoryFulfilmentOrderLineIdInventory Fulfillment Order LineLookup → InventoryFulfilmentOrderLine
InventoryStockIdStockLookup → InventoryStockAn optional pointer to the specific stock bucket row (item, SKU, branch and storage location) this line is meant to replenish. Nothing in the procurement code writes or reads it; the actual stock effect of the order comes from the goods-receipt lines' ledger postings.
InvoiceQuantityInvoice QuantityNumberHow much of this line has been billed, rolled up from the quantity on the linked bill lines. It drives PendingInvoiceQuantity (quantity minus billed minus cancelled), which is the gate the release-invoice actions check.
IsSchemeGeneratedIs Scheme GeneratedBooleanYesMarks a line the promotional scheme engine created as a benefit (typically a free or discounted give-away item) rather than one a buyer keyed. Resetting the document's schemes removes these lines, so do not treat them as buyer intent.
ItemAliasIdItem AliasLookup → ItemAlias
ItemAlternateIdItem AlternateLookup → ItemAlternate
ItemComponentIdItem ComponentLookup → ItemComponent
ItemIdItemLookup → Item
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
ItemNameItemNameText
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
NetDiscountNet DiscountCalculated (calculated)
NetSchemeDiscountNet Scheme DiscountCalculated (calculated)
OrderQuantityOrder QuantityNumberHow much of this line has been pushed out as a dealer sale order, rolled up from the sale order lines that point back at it. It drives PendingOrderQuantity and is unrelated to receiving or billing; do not read it as the ordered quantity, which is Quantity.
OriginalItemIdOriginal ItemLookup → ItemThe item originally requested, kept when the line was later substituted (through an alternate or alias item) so the substitution stays visible. ItemId is what is actually being bought and what everything downstream receives and bills.
OwnerIdOwnerLookup → UserAccountYes
PackagePurchaseOrderLineIdPurchase Order LineLookup → PurchaseOrderLineSelf-reference from a component line to the package (kit) line it was expanded under, written by the apply-package-configuration action. Component lines are ordinary purchase lines and are received and billed in their own right, so summing a package line and its components double-counts.
PartnerAccountIdPartner AccountCalculatedDeclared on the line as text rather than as a lookup to Account, unlike the header field of the same name, so it holds a stringified identifier at best and has no referential integrity. Resolve the counterparty from the parent order's PartnerAccountId instead.
PendingInvoiceQuantityPending Invoice QuantityCalculated (calculated)
PendingOrderQuantityPending Order QuantityCalculated (calculated)
PendingQuantityPending QuantityCalculated (calculated)
PriceAsOnDatePrice As On DateDate
PriceListIdPrice ListLookup → PriceList
PriceListRuleIdPrice List RuleLookup → PriceListRule
PurchaseOrderIdPurchase OrderLookup → PurchaseOrder
PurchaseOrderLineNumberPurchaseOrderLineNumberNumber
PurchaseRequisitionIdPurchase RequisitionLookup → Requisition
QuantityQuantityNumberYes
ReceiptQuantityReceipt QuantityNumberHow much of this line has been drawn into goods receipts, and the counter that closes the line down: PendingQuantity is quantity minus this minus cancelled quantity. It is rolled up from the linked goods-receipt lines' OrderedQuantity - the quantity released to the receipt - not from what was physically counted in, so a receipt that was released but not yet received still reduces the pending quantity.
RecordTypeIdRecord TypeGuid, hidden
RequestedQuantityRequested QuantityNumber
RequisitionLineIdRequisition LineLookup → RequisitionLine
ReturnedQuantityReturned QuantityNumberQuantity returned to the supplier against this line, rolled up from credit-note lines whose parent credit note is a bill return. Together with ReceiptQuantity it forms the transacted quantity that the line's ordered quantity may not be reduced below.
SchemeBenefitIdScheme BenefitLookup → SchemeBenfit
SchemeDiscountScheme DiscountPercent
SchemeDiscount1Scheme DiscountPercent
SchemeDiscountAmountScheme Discount AmountCurrency
SchemeLineIdScheme LineLookup → SchemeLine
SchemeRewardPointsScheme Reward PointsNumber
ServiceOrderLineIdService Order LineLookup → ServiceOrderLine
SkipSchemeSkip SchemeBooleanYes
SKUIdSKULookup → SKU
Tax1Tax 1Currency
Tax1NameTax Name 1Text
Tax1RateTax Rate 1Currency
Tax1TypeTax Type 1Text
Tax2Tax 2Currency
Tax2NameTax Name 2Text
Tax2RateTax Rate 2Currency
Tax2TypeTax Type 2Text
Tax3Tax 3Currency
Tax3NameTax Name 3Text
Tax3RateTax Rate 3Currency
Tax3TypeTax Type 3Text
Tax4Tax 4Currency
Tax4NameTax Name 4Text
Tax4RateTax Rate 4Currency
Tax4TypeTax Type 4Text
Tax5Tax 5Currency
Tax5NameTax Name 5Text
Tax5RateTax Rate 5Currency
Tax5TypeTax Type 5Text
Tax6Tax 6Currency
Tax6NameTax Name 6Text
Tax6RateTax Rate 6Currency
Tax6TypeTax Type 6Text
TaxAmountTax AmountCurrency
TaxGroupIdTax GroupLookup → TaxGroup
UIPropsUI PropsText
UnitCostUnit CostCurrency
UnitCost2Unit Cost 2Currency
UOMUOMPickList
UOM1UOM 1PickListValues: Each, kWh.
UOMQuantityUOM QuantityNumber
UOMQuantity1UOM Quantity1Number
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditEntityEditEditEditEntity
EditInLineEditEditInlineEdit
HeaderEditHeaderEditEditInlineEdit
ImportImportUIActionA layout-driven bulk load of order lines from a file rather than a server action; the lines it produces go through the ordinary line save pipeline, so minimum, maximum and lot-multiple order-quantity rules and price resolution all still apply to each imported row.
MainNewNewNewNew
NewQuick AddNewInlineNew
ProductCatalogueProduct CatalogueUIActionProductCatalogue

Validations

ValidationApplies toError messageNotes
Item Required ValidationItemId, ErrorItem is Required.Item is Required.
Tax Group ValidationError, inactiveTax Group Type must be "Line Level".Ensures tax group type is 'Line Level' for purchase order lines

Lookup filters

FilterLookup fieldNotes
Active ItemItemId
Sku For ItemSKUId