2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-01-11 05:37:54 +00:00

Docs refactor (#9545)

* Refactor / reognaize docs structure

* Refactor plugin docs structure

* More refactoring / cleanup

* Update build images

* Gallery updates

* Order images

* Update part docs

* Settings images

* Stock images

* Reitntroduce gallery

* Add custom icon macro

* Update icons

* Cleanup

* Fix link

* Fix internal links

* Revert some page moves

* Fix links

* Fix links
This commit is contained in:
Oliver
2025-04-22 08:18:32 +10:00
committed by GitHub
parent 9b489911e5
commit 6b08e45eac
240 changed files with 964 additions and 831 deletions

View File

@@ -0,0 +1,25 @@
---
title: Purchasing
---
## Purchasing
InvenTree provides a comprehensive purchasing system designed to streamline the procurement process, manage suppliers, and track purchase orders. The purchasing system is designed to seamlessly control the ingestion of stock items into the InvenTree database, ensuring that all parts are properly accounted for and tracked throughout their lifecycle.
### Purchase Orders
The core of the InvenTree purchasing system is the purchase order (PO). A purchase order is a formal request to a supplier to provide specific parts or materials. Each purchase order is linked to one or more supplier parts, allowing users to easily track the procurement process and manage supplier relationships.
Read more about purchase orders in the [Purchase Order documentation](./purchase_order.md).
### Supplier Parts
InvenTree allows users to define supplier parts, which represent individual pieces or units that are procured from an external vendor. Supplier parts can be linked to specific parts in the InvenTree database, enabling users to easily track the procurement process and manage supplier relationships.
Read more about supplier parts in the [Supplier Parts documentation](./supplier.md).
### Manufacturer Parts
InvenTree also supports manufacturer parts, which represent parts that are manufactured by a specific vendor. Manufacturer parts may be available from multiple suppliers, and users can easily manage these relationships within the InvenTree system.
Read more about manufacturer parts in the [Manufacturer Parts documentation](./manufacturer.md).

View File

@@ -0,0 +1,55 @@
---
title: Manufacturers
---
## Manufacturers
A manufacturer is an external **producer** of parts and raw materials.
!!! info
**Viewing**, **adding**, **editing** and **deleting** manufacturers require the corresponding [Purchase Orders user permissions](../settings/permissions.md)
To access the list of manufacturers , click on the <span class="badge inventree nav main">{{ icon("shopping-cart") }} Buy</span> navigation tab and click on <span class="badge inventree nav main">{{ icon("building-factory-2") }} Manufacturers</span> option in the dropdown list.
{% with id="manufacturer_list", url="order/manufacturer_list.png", description="Manufacturer List" %}
{% include "img.html" %}
{% endwith %}
### Add Manufacturer
Once the manufacturer page is loaded, click on the <span class="badge inventree add">{{ icon("plus-circle") }} New Manufacturer</span> button: the "Create new Manufacturer" form opens. Fill-in the manufacturer information (`Company name` and `Company description` are required) then click on <span class="badge inventree confirm">Submit</span>
!!! info "Manufacturer vs Supplier"
In the case the manufacturer sells directly to customers, you may want to enable the checkbox `is supplier` before submitting the form (you can also enable it later on). Purchase orders rely exclusively on [supplier parts](./supplier.md#supplier-parts), therefore the manufacturer will need to be set as a supplier too.
### Manufacturer Parts
Manufacturer parts are linked to a manufacturer and defined as manufacturable items.
!!! warning
**Viewing**, **adding**, **editing** and **deleting** manufacturer parts require the corresponding [Purchase Orders user permissions](../settings/permissions.md)
#### Add Manufacturer Part
To create a manufacturer part, you have the following options:
* either navigate to a Part detail page then click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab
* or navigate to a Manufacturer detail page then click on the <span class="badge inventree nav side">{{ icon("building-factory-2") }} Manufactured Parts</span> tab.
Whichever you pick, click on the <span class="badge inventree add">{{ icon("plus-circle") }} New Manufacturer Part</span> button to load the "Create New Manufacturer Part" form. Fill out the form with the manufacturer part information then click on <span class="badge inventree confirm">Submit</span>
#### Edit Manufacturer Part
To edit a manufacturer part, first access the manufacturer part detail page with one of the following options:
* either navigate to a Part detail page, click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab then, in the <span class="badge inventree nav main">Part Manufacturers</span> table, click on the _MPN_ link
* or navigate to a Manufacturer detail page, click on the <span class="badge inventree nav side">{{ icon("building-factory-2") }} Manufactured Parts</span> tab then click on the _MPN_ link.
After the manufacturer part details are loaded, click on the {{ icon("edit", color="blue", title="Edit") }} icon next to the manufacturer part image. Edit the manufacturer part information then click on <span class="badge inventree confirm">Submit</span>
#### Delete Manufacturer Part
To delete a manufacturer part, first access the manufacturer part detail page like in the [Edit Manufacturer Part](#edit-manufacturer-part) section.
After the manufacturer part details are loaded, click on the {{ icon("trash", color="red", title="Delete") }} icon next to the manufacturer part image. Review the the information for the manufacturer part to be deleted, confirm the deletion using the checkbox then click on <span class="badge inventree confirm">Submit</span>

View File

@@ -0,0 +1,213 @@
---
title: Purchase Order
---
## Purchase Orders
Purchase orders allow to track which parts are bought from suppliers and manufacturers, therefore converting externally bought items into stock items / inventory.
### View Purchase Orders
To navigate to the Purchase Order display, select *Purchasing* from the main navigation menu, and *Build Orders* from the sidebar:
{% with id="purchase_order_display", url="order/po_display.png", description="Purchase Order Display" %}
{% include "img.html" %}
{% endwith %}
The following view modes are available:
#### Table View
*Table View* provides a list of Purchase Orders, which can be filtered to display a subset of orders according to user supplied parameters.
{% with id="purchase_order_list", url="order/po_list.png", description="Purchase Order List" %}
{% include "img.html" %}
{% endwith %}
#### Calendar View
*Calendar View* shows a calendar display with outstanding purchase orders, based on the various dates specified for each order.
{% with id="purchase_order_calendar", url="order/po_calendar.png", description="Purchase Order Calendar" %}
{% include "img.html" %}
{% endwith %}
### 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:
::: order.status_codes.PurchaseOrderStatus
options:
show_bases: False
show_root_heading: False
show_root_toc_entry: False
show_source: True
members: []
Purchase Order Status supports [custom states](../concepts/custom_states.md).
### Purchase Order Currency
The currency code can be specified for an individual purchase order. If not specified, the default currency specified against the [supplier](./supplier.md) will be used. Additionally, the currency can be specified separately for each line item.
So, when determining the cost of each line item in the purchase order, the following order of precedence is used:
1. Line item currency
2. Purchase order currency
3. Supplier currency
4. Default (base) currency
## Create Purchase Order
Once the purchase order page is loaded, click on <span class="badge inventree add">{{ icon("plus-circle") }} New Purchase Order</span> 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 <span class="badge inventree confirm">Submit</span>
### Purchase Order Reference
Each Purchase Order is uniquely identified by its *Reference* field. Read more about [reference fields](../settings/reference.md).
### Add Line Items
On the purchase order detail page, user can link parts to the purchase order selecting the <span class="badge inventree nav side">{{ icon("list") }} Order Items</span> tab then clicking on the <span class="badge inventree add">{{ icon("plus-circle") }} Add Line Item</span> 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 <span class="badge inventree confirm">Submit</span>
#### 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 <span class="badge inventree confirm">{{ icon("upload") }} Upload File</span> button next to the <span class="badge inventree add">{{ icon("plus-circle") }} Add Line Item</span> button and follow the steps.
!!! info "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 {{ icon("send", title="Issue") }} 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 {{ icon("clipboard-check") }} button on each line item
* or globally: click on the {{ icon("clipboard-check") }} button on the main purchase order detail panel and confirm all items in the order have been received.
!!! note "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 <span class="badge inventree nav side">{{ icon("arrow-right") }} Received Items</span> tab.
### Item Value Currency
The unit cost of the purchase order line item is transferred across to the created stock item. By default, the same currency is used for the stock item as was used for the purchase order line item.
However, if the [Convert Currency](#purchase-order-settings) setting is enabled, the currency of the stock item will be converted to the [default currency](../concepts/pricing.md#default-currency) of the system. This may be useful when ordering stock in a different currency, to ensure that the unit cost of the stock item is converted to the base currency at the time of receipt.
## 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 {{ icon("circle-check", color="green") }} 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 {{ icon("circle-x", color="red") }} 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):
{% with id="purchase_order_duplicate", url="order/po_duplicate.png", description="Duplicate Purchase Order" %}
{% include "img.html" %}
{% endwith %}
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.
{% with id="purchase_order_duplicate_2", url="order/po_duplicate_2.png", description="Duplicate Purchase Order" %}
{% include "img.html" %}
{% endwith %}
A new purchase order is then created based on the currently selected order:
{% with id="purchase_order_duplicate_3", url="order/po_duplicate_3.png", description="Duplicate Purchase Order" %}
{% include "img.html" %}
{% endwith %}
## Order Scheduling
Purchase orders can be scheduled for a future date, to allow for planning of future orders.
### Start Date
The *Start Date* of the purchase order is the date on which the order is scheduled to be issued to the supplier.
### Target Date
The *Target Date* of the purchase order is the date on which the order is expected to be completed / received from the supplier.
### Overdue Orders
If the *Target Date* of the purchase order is reached but the order has not been completed, the order will be marked as *overdue*.
## 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 {{ icon("calendar") }}. 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](../settings/global.md) are available for purchase orders:
| Name | Description | Default | Units |
| ---- | ----------- | ------- | ----- |
{{ globalsetting("PURCHASEORDER_REFERENCE_PATTERN") }}
{{ globalsetting("PURCHASEORDER_REQUIRE_RESPONSIBLE") }}
{{ globalsetting("PURCHASEORDER_CONVERT_CURRENCY") }}
{{ globalsetting("PURCHASEORDER_EDIT_COMPLETED_ORDERS") }}
{{ globalsetting("PURCHASEORDER_AUTO_COMPLETE") }}

View File

@@ -0,0 +1,101 @@
---
title: Suppliers
---
## Suppliers
A supplier is an external **vendor** of parts and raw materials.
To access the supplier page, click on the <span class="badge inventree nav main">{{ icon("shopping-cart") }} Buy</span> navigation tab and click on <span class="badge inventree nav main">{{ icon("building") }} Suppliers</span> option in the dropdown list.
{% with id="supplier_list", url="order/supplier_list.png", description="Supplier List" %}
{% include "img.html" %}
{% endwith %}
!!! info
**Viewing**, **adding**, **editing** and **deleting** suppliers require the corresponding [Purchase Orders user permissions](../settings/permissions.md)
### Add Supplier
Once the supplier page is loaded, click on the <span class="badge inventree add">{{ icon("plus-circle") }} New Supplier</span> button: the "Create new Supplier" form opens. Fill-in the supplier information (`Company name` and `Company description` are required) then click on <span class="badge inventree confirm">Submit</span>
!!! info "Supplier vs Manufacturer"
In the case the supplier is a manufacturer who sells directly to customers, you may want to enable the checkbox `is manufacturer` before submitting the form (you can also enable it later on).
### Supplier Parts
Supplier parts are linked to a supplier and defined as purchasable items.
!!! warning
**Viewing**, **adding**, **editing** and **deleting** supplier parts require the corresponding [Purchase Orders user permissions](../settings/permissions.md)
#### Add Supplier Part
To create a supplier part, you have the following options:
1. navigate to a Part detail page then click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab
0. navigate to a Supplier detail page then click on the <span class="badge inventree nav side">{{ icon("building") }} Supplied Parts</span> tab
0. navigate to a Manufacturer detail page then click on the <span class="badge inventree nav side">{{ icon("building") }} Supplied Parts</span> tab.
Whichever you pick, click on the <span class="badge inventree add">{{ icon("plus-circle") }} New Supplier Part</span> button to load the "Create new Supplier Part" form. Fill out the form with the supplier part information then click on <span class="badge inventree confirm">Submit</span>
#### Edit Supplier Part
To edit a supplier part, first access the supplier part detail page with one of the following options:
1. navigate to a Part detail page, click on the <span class="badge inventree nav side">{{ icon("building") }} Suppliers</span> tab then, in the <span class="badge inventree nav main">Part Suppliers</span> table, click on the corresponding _Supplier Part_ link
0. navigate to a Supplier detail page, click on the <span class="badge inventree nav side">{{ icon("building") }} Supplied Parts</span> tab then click on the corresponding _Supplier Part_ link
0. navigate to a Manufacturer detail page, click on the <span class="badge inventree nav side">{{ icon("building") }} Supplied Parts</span> tab then click on the corresponding _Supplier Part_ link.
After the supplier part details are loaded, click on the {{ icon("edit", color="blue", title="Edit") }} icon next to the supplier part image. Edit the supplier part information then click on <span class="badge inventree confirm">Submit</span>
#### Disable Supplier Part
Supplier parts can be individually disabled - for example, if a supplier part is no longer available for purchase. By disabling the part in the InvenTree system, it will no longer be available for selection in new purchase orders. However, any existing purchase orders which reference the supplier part will remain intact.
The "active" status of a supplier part is clearly visible within the user interface:
{% with id="supplier_part_disable", url="order/disable_supplier_part.png", description="Disable Supplier Part" %}
{% include "img.html" %}
{% endwith %}
To change the "active" status of a supplier part, simply edit the supplier part details and set the `active` attribute:
{% with id="supplier_part_disable_edit", url="order/disable_supplier_part_edit.png", description="Disable Supplier Part" %}
{% include "img.html" %}
{% endwith %}
It is recommended to disable a supplier part rather than deleting it, as this will preserve the integrity of historical data.
#### Delete Supplier Part
To delete a supplier part, first access the supplier part detail page like in the [Edit Supplier Part](#edit-supplier-part) section.
After the supplier part details are loaded, click on the {{ icon("trash", color="red", title="Delete") }} icon next to the supplier part image. Review the the information for the supplier part to be deleted, confirm the deletion using the checkbox then click on <span class="badge inventree confirm">Submit</span>
#### Supplier Part Availability
InvenTree supports tracking 'availability' information for supplier parts. While this information can be updated manually, it is more useful when used in conjunction with the InvenTree plugin system.
A custom can periodically request availability information (via a supplier API), and update this availability information for each supplier part.
If provided, availability information is displayed on the Supplier Part detail page.
{% with id="supplier_part_availability", url="order/supplier_part_availability.png", maxheight="240px", description="Supplier part availability" %}
{% include "img.html" %}
{% endwith %}
Availability information can be manually updated via the user interface:
{% with id="update_availability", url="order/update_availability.png", maxheight="240px", description="Update availability" %}
{% include "img.html" %}
{% endwith %}
## Supplier Part Pack Size
Supplier parts can have a pack size defined. This value is defined when creating or editing a part. By default, the pack size is 1.
When buying parts, they are bought in packs. This is taken into account in Purchase Orders: if a supplier part with a pack size of 5 is bought in a quantity of 4, 20 parts will be added to stock when the parts are received.
When adding stock manually, the supplier part can be added in packs or in individual parts. This is to allow the addition of items in opened packages. Set the flag "Use pack size" (`use_pack_size` in the API) to True in order to add parts in packs.