Skip to content

Purchase Orders

Purchase Orders

Purchase orders allow to track which parts are bought from suppliers and manufacturers, therefore converting externally bought items into stock items / inventory.

To access the purchase order page, click on the Buy navigation tab and click on Purchase Orders option in the dropdown list.

Purchase Order List Purchase Order List

Purchase Order Status Codes

Each Purchase Order has a specific status code which indicates the current state of the order:

Status Description
Pending The purchase order has been created, but has not been submitted to the supplier
In Progress The purchase order has been issued to the supplier, and is in progress
On Hold The purchase order has been placed on hold, but is still active
Complete The purchase order has been completed, and is now closed
Cancelled The purchase order was cancelled, and is now closed
Lost The purchase order was lost, and is now closed
Returned The purchase order was returned, and is now closed

Source Code

Refer to the source code for the Purchase Order status codes:

Defines a set of status codes for a PurchaseOrder.

Source code in src/backend/InvenTree/order/status_codes.py
 8
 9
10
11
12
13
14
15
16
17
18
class PurchaseOrderStatus(StatusCode):
    """Defines a set of status codes for a PurchaseOrder."""

    # Order status codes
    PENDING = 10, _('Pending'), ColorEnum.secondary  # Order is pending (not yet placed)
    PLACED = 20, _('Placed'), ColorEnum.primary  # Order has been placed with supplier
    ON_HOLD = 25, _('On Hold'), ColorEnum.warning  # Order is on hold
    COMPLETE = 30, _('Complete'), ColorEnum.success  # Order has been completed
    CANCELLED = 40, _('Cancelled'), ColorEnum.danger  # Order was cancelled
    LOST = 50, _('Lost'), ColorEnum.warning  # Order was lost
    RETURNED = 60, _('Returned'), ColorEnum.warning  # Order was returned

Purchase Order Status supports custom states.

Purchase Order Currency

The currency code can be specified for an individual purchase order. If not specified, the default currency specified against the supplier will be used.

Create Purchase Order

Once the purchase order page is loaded, click on New Purchase Order which opens the "Create Purchase Order" form.

A purchase order is linked to a specific supplier, select one in the list of existing suppliers.

Warning

Only companies with the "Supplier" attribute enabled will be shown and can be selected

Fill out the rest of the form with the purchase order information then click on Submit

Purchase Order Reference

Each Purchase Order is uniquely identified by its Reference field. Read more about reference fields.

Add Line Items

On the purchase order detail page, user can link parts to the purchase order selecting the Order Items tab then clicking on the Add Line Item button.

Once the "Add Line Item" form opens, select a supplier part in the list.

Warning

Only parts from the supplier selected for the purchase order will be shown and can be selected

Fill out the rest of the form then click on Submit

Upload File

It is possible to upload an exported purchase order from the supplier instead of manually entering each line item. To start the process, click on Upload File button next to the Add Line Item button and follow the steps.

Supported Formats

This process only supports tabular data and the following formats are supported: CSV, TSV, XLS, XLSX, JSON and YAML

Issue Order

Once all the line items were added, click on the button on the main purchase order detail panel and confirm the order has been submitted.

Receive Line Items

After receiving all the items from the order, the purchase order will convert the line items into stock items / inventory.

There are two options to mark items as "received":

  • either individually: click on button on each line item
  • or globally: click on the button on the main purchase order detail panel and confirm all items in the order have been received.

Permissions

Marking line items as received requires the "Purchase order" ADD permission.

Item Location

When receiving items from a purchase order, the location of the items must be specified. There are multiple ways to specify the location:

  • Order Destination: The destination field of the purchase order can be set to a specific location. When receiving items, the location will default to the destination location.

  • Line Item Location: Each line item can have a specific location set. When receiving items, the location will default to the line item location. Note: A destination specified at the line item level will override the destination specified at the order level.

Received Items

Each item marked as "received" is automatically converted into a stock item.

To see the list of stock items created from the purchase order, click on the Received Items tab.

Complete Order

Once the quantity of all received items is equal or above the quantity of all line items, the order will be automatically marked as complete.

It is also possible to complete the order before all items were received (or if there were missing items). To do so, click on the button on the main purchase order detail panel and confirm the order was completed.

Cancel Order

In the event that the order won't be processed, user has the option of cancelling the order instead. To do so, simply click on the button on the main purchase order detail panel and confirm the purchase order has been cancelled.

Duplicate Purchase Order

Duplicating a Purchase Order allows the user to quickly create a new copy of an existing order, using the same supplier and line item information.

To duplicate an existing order, select the Duplicate Order action from the menu in the top-right of the screen (as shown below):

Duplicate Purchase Order Duplicate Purchase Order

This opens the following dialog, where you can adjust the parameters of the new order before proceeding to actually create the new order. You can see in the screenshot below that some extra options are provided in this form, to control duplication of individual line items.

Duplicate Purchase Order Duplicate Purchase Order

A new purchase order is then created based on the currently selected order:

Duplicate Purchase Order Duplicate Purchase Order

Calendar view

Using the button to the top right of the list of Purchase Orders, the view can be switched to a calendar view using the button . This view shows orders with a defined target date only.

This view can be accessed externally as an ICS calendar using a URL like the following: http://inventree.example.org/api/order/calendar/purchase-order/calendar.ics

by default, completed orders are not exported. These can be included by appending ?include_completed=True to the URL.

Purchase Order Settings

The following global settings are available for purchase orders:

Name Description Default Units
Purchase Order Reference Pattern
Required pattern for generating Purchase Order reference field PO-{ref:04d}
Require Responsible Owner
A responsible owner must be assigned to each order False
Edit Completed Purchase Orders
Allow editing of purchase orders after they have been shipped or completed False
Auto Complete Purchase Orders
Automatically mark purchase orders as complete when all line items are received True