PurchaseOrderItem
IMPORTANT The SOAP API entered a limited enhancement phase in Q4 2020. Access to version 1.6 will be deactivated.
This entity associates a Product entity with a PurchaseOrder entity. Purchase Orders are associated with a specific vendor Account. Products added to a purchase order as a PurchaseOrderItem can be "received" into Inventory, that is, added to an InventoryLocation as an InventoryItem. This allows users to track and manage the ordering and receipt of Inventory Items, for example, hardware, software, and supplies. You add products to purchase orders in the Inventory module.
The PurchaseOrderReceive entity describes the transactions that impact the quantities of PurchaseOrderItems received and "un-received" . Refer PurchaseOrderReceive.
IMPORTANT The Autotask UI now allows the Quantity to change for purchase order items associated with a PurchaseOrder with status = ReceivedFull and ReceivedPartial. The Receive Purchase Order page is now Receive/CancelReceipt of Purchase Order. From that page you can now "cancel" the receipt of items for Purchase Orders whose status equals ReceivedFull and ReceivedPartial. This new option will impact the PurchaseOrder and PurchaseOrderItem entities as indicated under Conditions and Requirements.
Entity details
You can also retrieve this information with the Web Services API call The getEntityInfo() SOAP API call.
Entity Name: | PurchaseOrderItem |
Can Create: | |
Can Update: | |
Can Query: | |
Can Delete: | |
Can Have UDFs: |
Conditions and requirements
General
- In Autotask, Inventory Add/Edit Items permission is required to create or update a purchase order item.
- To query, you must have View permission and Inventory access (site installed module access and security level feature/section access)
- To create/update, you must have View and Create permission and Inventory access (site installed module access and security level feature/section access)
- The combination of ProductId, InventoryLocationId, and OrderID does not have to be unique.
- PurchaseOrderItems can only be created for PurchaseOrders with a status of New.
- Updates to the PurchaseOrderItem are allowed when the PurchaseOrder has a status of New, Submitted, Or ReceivedPartial.
Special field attributes
Field | Conditions and Requirements |
---|---|
CostID | The ticket/project/contract CostID must reference a valid cost with a status = NeedToOrder/Fulfill. The CostID cannot already belong to another purchase order. |
InternalCurrencyUnitCost | This entity field will return no information if the user account making the query does not have sufficient privileges to view cost data in the Autotask UI. Additionally, if an update request does not have the necessary permissions, the API will ignore the call's values for the field even if they are blank or would be otherwise required. |
InventoryLocationID | InventoryLocationID must reference an active InventoryLocation. |
OrderID | On create(), OrderID must reference a PurchaseOrder with Status = New. On update(), OrderID must reference a PurchaseOrder with Status = New, Received Partial, or ReceivedFull. |
ProductID | If no CostID is supplied, ProductID is required. If only a CostID is supplied, then we will set the ProductID equal to the ProductID associated with the ticket/project/contract cost. If both a CostID and a ProductID are supplied, then the ProductID must match the ProductID associated to the ticket/project/contract cost. If they do not match, the API will return an error message. |
Quantity |
Quantity must be >= 1. When a CostID is supplied, the Quantity cannot exceed the quantity of the Ticket/Project/ContractCost during a create and update, and cannot exceed the previously saved amount during an update. PurchaseOrder now allows associated PurchaseOrderItem.Quantity to be updated when PurchaseOrder status equals ReceivedFull or ReceivedPartial, as follows:
|
UnitCost |
UnitCost must be >= 0.00. This entity field will return no information if the user account making the query does not have sufficient privileges to view cost data in the Autotask UI. Additionally, if an update request does not have the necessary permissions, the API will ignore the call's values for the field even if they are blank or would be otherwise required. |
Field definitions
The following table describes the standard Autotask field objects for this entity.
- To retrieve more detailed information specific to a particular Autotask implementation, use the Web Services API call The getFieldInfo() SOAP API call.
- For information on entity UDFs, use getUDFInfo().
- For String datatypes, the number in parentheses ( ) indicates the maximum number of characters allowed.
- LT indicates Local Term.
For more information about fields marked as picklists, review our Understanding picklists article.
Field Name | Label | Datatype | Read Only | Is Required | Reference Name | Picklist |
---|---|---|---|---|---|---|
ContractID | Contract ID | long | Contract | |||
CostID | Cost ID | integer | ||||
EstimatedArrivalDate | Estimated Arrival Date | datetime | ||||
id | Inventory Item ID | long | ||||
InventoryLocationID | Inventory Location ID | integer | InventoryLocation | |||
InternalCurrencyUnitCost | Internal Currency Product Unit Cost | double | ||||
Memo | Memo | string (4000) | ||||
OrderID | Inventory Order ID | integer | PurchaseOrder | |||
ProductID | Product ID | integer | Product | |||
ProjectID | Project ID | long | Project | |||
Quantity | Quantity Ordered | integer | ||||
SalesOrderID | Sales Order ID | long | SalesOrder | |||
TicketID | Ticket ID | long | Ticket | |||
UnitCost | Product Unit Cost | double |