Skip to main content
Procore (en-GB)

Create Purchase Orders

 Phased Release
This tutorial documents the modernised interface and optimizations for the Commitments tool. If you are still using the legacy experience, see (Legacy) Create a Purchase Order for step-by-step instructions. To learn about Procore's timeline for using the modernised and legacy experiences, see Project Financials: Modernised Experience for the Commitments Tool.

Objective

To create a purchase order in the project's Commitments tool.

Background

In Procore, a Purchase Order (PO) is a documented financial commitment that details the types, quantities and agreed-upon prices for products or services. As part of the procurement process, purchase orders are created by a 'buyer' (for example, a main contractor) and issued to a 'seller' (for example, a subcontractor) to cover the cost of a contract. Once accepted by the 'seller,' a purchase order represents an agreement between the two parties

Things to Consider

  • Required User Permissions:
    • To create a purchase order and see/enter data on the Bill of Quantities (BOQ) tab:
      • 'Admin' level permissions on the project's Commitments tool. 
        OR
      • 'Standard' level permissions on the project's Commitments tool and the 'Allow Users to See BOQ Items' setting must be enabled and your name must be selected in the 'Select a Person' drop-down list
  • For companies using the icon-erp-synced2.png ERP Integrations tool: Show/Hide  

    • In order to send the commitment to the ERP Integrations tool to be accepted for export by an accounting approver:
      • Integration by Ryvit. The commitment must have at least one (1) BOQ line item with a Integration by Ryvit phase code. In addition, the cost code must be assigned to at least one (1) category. See Assign Default Cost Types To Integration by Ryvit Cost Codes). Important! When a commitment is exported to Integration by Ryvit, it must have a unique commitment number. Procore recommends that the numbering convention you set up for the Commitments tool is preceded by the Project Number and then uses the default numbering system. For example, if your Project Number is 001, your numbering system would be 001-001, 001-002, 001-003 and so on. 
      • QuickBooks®. The commitment must have at least one (1) BOQ line item with a QuickBooks® cost code. The cost code does not need to be assigned to a category, because QuickBooks® does not support the category concept.
      • Sage 100 Contractor®. A commitment must have one (1) BOQ line item with a Sage 100 Contractor® cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Assign Default Cost Types To Cost Codes.
      • Sage 300 CRE®. The commitment must have at least one (1) BOQ line item with a Sage 300 CRE® cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Assign Default Cost Types To Cost Codes.
      • Viewpoint® Spectrum®. The commitment must have at least one (1) Bill of Quantities (BOQ) line item with a cost code from the Viewpoint® Spectrum® project. The cost code must be assigned to at least one (1) category. Category assignments must always be updated in Viewpoint® Spectrum®. 
      • Yardi Voyager®. The commitment must have at least one (1) BOQ line item with a Yardi Voyager® cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Refresh the Yardi Voyager® Cost Codes on a Project.
      • UndefinedNameError: reference to undefined name 'integrations_sageintacct' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[7]/strong/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
        . The commitment must have at least one (1) BOQ line item with a
        UndefinedNameError: reference to undefined name 'integrations_Sageintacct' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[7]/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
         cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Assign Default Cost Types To Cost Codes.
      • UndefinedNameError: reference to undefined name 'integrations_acumatica' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[8]/strong/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
        . The commitment must have at least one (1) BOQ line item with a
        UndefinedNameError: reference to undefined name 'integrations_acumatica' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[8]/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
         cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Assign Default Cost Types To Cost Codes.
      • UndefinedNameError: reference to undefined name 'integrations_mri' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[9]/strong/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
        . The commitment must have at least one (1) BOQ line item with a
        UndefinedNameError: reference to undefined name 'integrations_mri' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[9]/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
         cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Assign Default Cost Types To Cost Codes.
      • UndefinedNameError: reference to undefined name 'integrations_xero' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[10]/strong/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
        . The commitment must have at least one (1) BOQ line item with a
        UndefinedNameError: reference to undefined name 'integrations_xero' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[1]/ul/li/ul/li[10]/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
         cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Assign Default Cost Types To Cost Codes.

    For companies using the icon-erp-synced2.png ERP Integrations tool: Show/Hide  

    • In order to send the commitment to the ERP Integrations tool to be accepted for export by an accounting approver:
      • UndefinedNameError: reference to undefined name 'integrations_myob' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[2]/ul/li/ul/li/strong/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
        . The commitment must have at least one (1) BOQ line item with a
        UndefinedNameError: reference to undefined name 'integrations_myob' (click for details)
        Callstack:
            at (Media_Library/Language_Specific_Media/Reusable_Snippets/Reusable_Text_Snippets), /content/body/div[13]/div[16]/div[2]/ul/li/ul/li/span, line 1, column 1
            at wiki.page()
            at (products/online/user-guide/project-level/commitments/tutorials/create-purchase-orders), /content/body/div[6]/ul/li[2]/div/pre, line 2, column 10
        
         cost code. In addition, the cost code must be assigned to at least one (1) cost type. See Assign Default Cost Types To Cost Codes.

Steps

  1. Navigate to the project's Commitments tool.
  2. On the Contracts tab, click the Create button and choose Purchase Order from the drop-down list. 
     Note
    • The Create button is available when you are viewing the Contracts and Recycle Bin tabs. New purchase orders are always added to the Contracts tab. 
    • The Export button is only available on the Contracts tab. To learn more, see Export a Commitments List.
      clipboard_e679c2961083dc4b222f7a76004a53615.png
     
  3. Continue with the next steps:

Add the Basic Information

Update the basic information as follows:

clipboard_e030978fceda67cd0a0354dde11ab515b.png

 Notes
  • There are no required fields when adding the basic information. 
  • If you click the Create button without completing any data entry, Procore saves the contract, lists you as the creator and automatically places it in the Draft status.
  • Number
    To number your contract(s), choose from these options:
    • If you number your contracts using a sequential numbering system, you can enter any combination of alpha-numeric characters in this box. For subsequent contracts, Procore automatically applies consecutive numbering in ascending order.
      Example

      The examples below show you how Procore's ascending consecutive numbering works:

      • If the previous contract was 1, the next contracts are 23 and so on.
      • If the previous contract was PC-0001, the next contracts are PC-0002PC-0003 and so on.
      • If the previous contract was DCA00010-12-G-0001, the next contracts are DCA00010-12-G-0002DCA00010-12-G-0003 and so on.
    • If you do NOT number your contracts using sequential numbering, you can manually enter a unique number for each purchase order. To do this, type over the existing entry in the Number box. Duplicate contract numbers are NOT permitted.
       Notes
  • Contract Company
    Select the name of the project owner's or the project client's company from the drop-down list. This is the company that either owns the construction project or the client who has hired your company to oversee the project work. To appear as a list option, Add a Company to the Project Directory
  • Title
    Type a descriptive name for the contract.
     Notes

Update the General Information

Update the contract with more general information:

clipboard_e3aaf8378daf1c7084a085c175d107ccd.png

  • Status
    Procore automatically assigns contracts the 'Default' status. To select a different status, choose one of the status labels from the drop-down list. Options include 
     Note
    To create variations and payment applications, your contract's status must be set to Approved or Complete.
  • Executed
    Place a mark in this tickbox if the contract has been fully executed. A fully executed contract is a legally effective agreement that has been signed by authorized representatives for each party.
     Notes
    • Many Procore users choose to place a tick in the 'Executed' box when placing the purchase order into the  'Approved' or 'Complete' status.
    • The time at which your project team places a tick in the 'Executed' box should always be aligned with your project's unique business process 
  • Default Retention
    Enter a number to represent the percentage that will be withheld as retention on the line items of the contract's Bill of Quantities. For example, if you plan to withhold ten (10) percent of the line item's value, enter 10%.
     Notes
  • Bill To
    Enter the business contact information for the party paying for the order. Procore uses this information to auto-populate the 'Bill To' address on any payment applications created for this order. 
  • Payment Terms
    Enter the payment terms. For example, Net 30, Net 45 and so on.
  • Ship To
    Enter the business contact information for the shipping destination. Procore uses this information to auto-populate the 'Ship To' address on any payment applications created for this order. Keep in mind this address may be different from the 'Bill To' address. For example, you may choose to have the order delivered directly to the job site or to an off-site staging location.  
  • Ship Via
    Enter the shipping method for the order. For example, Air, International, Ocean, Truckload, Train and so on. 
     Note
    The 'Ship Via' field is a free-form text field, so you can enter the appropriate shipping method, carrier, and/or tracking number for the order. 
  • Description
    Enter a more detailed description of the main contract. You can apply the options in the formatting toolbar to your text. 

Update the Contract Access

By default, contracts are only visible to users who have been granted 'Read Only' level permissions or higher on the project's Commitments tool. To change the contract's access permissions, do the following:

  1. Optional: Move the Restrict This Contract's Visibility to Only Project Admins and Select Non-Admin Users toggle to the left or right to turn the restriction OFF and ON. Procore turns this setting ON by default. 
     Notes
    • The toggle is BLUE when restrictions are turned ON.
    • The toggle is GREY when restrictions are turned OFF.
  2. Select an employee of the 'Contract Company' from the Payment application Contact drop-down list. 

Update the Contract Dates

To update the contract with important dates, do the following:

clipboard_ed8479a3ea68e96e93bb459aa6a08b9ab.png

 Notes
  • Signed Purchase Order Received
    Select the date the executed purchase order was received.
  • Contract
    Select the contract date for the order. 
  • Delivery
    Select the expected or actual delivery date for the order.
  • Issued On
    Select the date the order was issued by your company.

Set the Accounting Method

The first step when updating a Bill of Quantities is to define the accounting method for the contract. The method you choose also applies to all variations and/or payment applications for that contract. The accounting method can only be changed BEFORE you add line items to a BOQ. Procore does NOT permit you to change a contract's accounting method after line items are added. 

 Tip
What's the difference between the Amount Based and Unit/Quantity Based contract? For details, see How do I set the accounting method for a contract or funding?
  • To change the accounting method to Unit/Quantity, click the Change to Unit/Quantity button. 
  • To change the accounting method back to Amount-Based, click the Change to Amount Based button. 

Update the Bill of Quantities

There are two (2) method for updating the purchase order's BOQ:

Add Line Items to the Bill of Quantities

By default, you can input line items on the purchase order's BOQ at any time, as long as it is NOT in the 'Approved' status.

 Note
If your project team has turned the 'Enable Always Editable Bill of Quantities' configuration setting ON in this tool, users with the required user permission to Edit Purchase Orders can add line items to the Bill of Quantities when a purchase order is in any status. To learn specific information this setting, see What is the 'Enable Always Editable Bill of Quantities' setting?

To manually add line items to the Bill of Quantities:

clipboard_e23067c88bc1294f4fdd1e98233467420.png

  1. Choose from these options:
    • If the BOQ is blank, click Add Line under 'You Have No Line Items Yet'. 
      OR
    • If you have existing line items, click Add Line
      Procore creates new line items starting with the number '1'. Subsequent lines are created in numerical order. 
  2. Designate a budget code for the new line item. You have these options:
    • To assign an existing budget code to the line item, start typing a code in the Search box and select the matching code from the list. 
      OR
    • To create a new budget code for the line item, click the Create Budget Code button. Next, select the appropriate segment items from the drop-down list(s) to satisfy your project's budget code pattern requirements. Then, click Create.
  3. Depending on the accounting method you are using, choose the appropriate steps for adding a line item:
    • For an Amount-Based contract: 
      An Amount-Based BOQ requires this data entry:
      • #
        Procore automatically enters a line item number in sequential order. 
      • Change Event Line Item
        If you have change events enabled, you can select a change event line item if the commitment needs to be linked to a change event.
      • Budget Code
        Select a budget code from the list or click Create Budget Code to create a new one. See What is a budget code in Procore's WBS? 
      • Description
        Enter a description for the line item. For example, type: Monthly Service Fee
      • Amount
        Enter the amount of the cost.
      • Billed to Date
        The system automatically calculates the amount billed on the commitment up to the current date.  
      • Amount Remaining
        Enter the amount that has NOT been billed to the current date. 
      • Tax Code
        Enter a tax code to use for this line item. This field only appears if you have enabled the tax codes feature. See How can I use tax codes on a project?
    • For a Unit/Quantity Based contract:
      A Unit/Quantity Based BOQ requires this data entry: 
      • #
        Procore automatically enters a line item number in sequential order. 
      • Change Event Line Item
        If you have change events enabled, you can select a change event line item if the commitment needs to be linked to a change event.
      • Budget Code
        Select a budget code from the list or click Create Budget Code to create a new one. See What is a budget code in Procore's WBS? 
      • Description
        Enter a description for the line item. For example, type: Monthly Service Fee
      • Qty
        Enter the number of units.
      • UoM
        Enter the Unit of Measure (UoM).
         Note
      • Unit Cost
        Enter the Unit Cost in the box provided.
      • Amount
        The system automatically calculates the subtotal for you, based on the QtyUoM, and Unit Cost entries. 
      • Billed to Date
        The system automatically calculates the amount billed on the commitment up to the current date. 
      • Amount Remaining
        Enter the amount that has NOT been billed to the current date. 
      • Tax Code
        Enter a tax code to use for this line item. This field only appears if you have enabled the tax codes feature. See How can I use tax codes on a project?
  4. Optional: Repeat the steps above to add as many line items as needed. 
  5. Click Save
    Procore saves the line items on the contract's BOQ. 
Import Line Items to the Bill of Quantities from a CSV File
  1. In the 'Bill of Quantities' card, click the Import BOQ from CSV button. 


     
  2. Click the Download CSV Template button and choose one of these options:
    • Blank Template. Click this option to download a blank template. 
      OR
    • Template with Existing Line Items.  Click this option to download a template that includes any existing line item data from your project's budget. 
       Note
      • Procore downloads a CSV template file to your web browser's file download location.
      • The name of the file is: TBD
  3. Open the template that you downloaded on your computer. 
  4. Enter the data that you want to upload directly into the template. 
     Important
    Do NOT change or rearrange the Column Headings in the template file. 
  5. After entering your line item data, make sure to save your file updates in the 'Comma Separated Values' file format. 
  6. Navigate back to Procore. Then, in the 'CSV File' section, choose one of these options:
    • Click Upload File
      OR
    • Use a drag-and-drop operation to move the template you just updated into the 'CSV File' section. 
  7. Choose one of these options:
    • Add Additional Line Items. Choose this option if you want to create new line items using the data in your template.
      OR
    • Replace Existing Line Items. Choose this option if you want to erase any existing line items from the main contract and replace them with data in your template. 
       Note
       If the 'Enable Always Editable Bill of Quantities' configuration setting is turned ON in the project's Commitments tool, the 'Replace Existing Line Items' option is greyed out and unavailable for use once a payment application is created and line items are billed. To learn more, see What is the 'Enable Always Editable Bill of Quantities' setting?
  8. Click Import

Attach Files 

To add file attachments to the contract:

  1. On the 'Attachments' card, click Edit.
  2. Click Attach Files
  3. In the 'Attach Files' dialogue box, highlight the location where the files to upload are stored. Options include:
    • My Computer. Click Upload Files to open your computer's finder. Select the files to upload and click Open
    • Photos. If the Photos tool is active on the project, choose the location from the Select Album list and then search for the file(s) to upload. 
    • Drawings. If the Drawings tool is active on the project, choose the area from the Select Area list and then search for the file(s) to upload. 
    • Forms. If the Forms tool is active on the project, choose the template from the Select Template list and then search for the file(s) to upload. 
    • Documents. If the Documents tool is active on the project, navigate to the folder storing the file(s) to upload and then highlight them. 
  4. Click Attach

    clipboard_e25b6d2f5dc52e208f088a7ba6fbc2a59.png

    A progress indicator shows you the status of the upload. 
  5. Click the Close (X) icon on the Attach Files dialogue box.  

Save the Contract

To save the contract, click one (1) of these buttons:

  • Save. Click this button to save the new contract and return to the 'General' tab in view mode. 
    OR
  • Complete with DocuSign®. Click this button to launch the Procore + DocuSign® integration and prepare the envelope for signature. To learn more, see DocuSign®.

 

If you would like to learn more about Procore's commitments software and how it can help your business, please visit our construction financials tool product page icon-external-link.png.