OdooWiki OCA HUB

Purchase Order Type

purchase_order_type folder_open OCA/purchase-workflow open_in_new
Purchase Management License: AGPL-3

Adds a configurable type on the purchase orders. This type can be used in filters and groupbys.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets you define purchase order types (such as Regular, Blanket, Contract or Planned) and assign them to vendors and purchase orders, with optional payment terms, incoterms and their own numbering sequence.

This module adds a new configuration screen for purchase order types, found under Purchase > Configuration > Purchase Order Types. Each type has a name, a description, an entry sequence (used to number orders of that type), optional payment terms and incoterm, a company, and a "Default" flag. Four types come pre-installed: Regular, Blanket, Contract and Planned.

On a vendor's contact form, in the Sales & Purchases tab, a new "Purchase Order Type" field appears for suppliers. When you pick that vendor on a purchase order, the order type is filled in automatically from the vendor; if the vendor has none, the default type of the company is used. Choosing a type then copies its payment terms and incoterm onto the order, when they are set.

On the purchase order form the type sits next to the vendor and becomes read-only once the order is confirmed, done or cancelled. It is also shown as an optional column in the order lists and can be used to filter and group orders in the search views.

Business rules: only one default type is allowed per company; an order cannot use a type belonging to another company; and in the Purchase settings you can tick "Require Purchase Order Type" so an order can only be saved with a type. If an order is created without a number and has a type with a sequence, the number is taken from that sequence. Purchase users can read types; only purchase managers can create or change them.

Depends on

purchase

Required by other modules

Menus it adds

menu_purchase_order_type
Models and fields (5)
  • res.company · extends an existing modelpurchase_order_type_required (Require Purchase Order Type)
  • res.partner · extends an existing modelpurchase_type (Purchase Order Type)
  • purchase.order · extends an existing modelorder_type (Type), order_type_required
  • purchase.order.type · new modelname, active, sequence, company_id, is_default (Default), description, incoterm_id, sequence_id (Entry Sequence), payment_term_id (Payment Terms)
  • res.config.settings · extends an existing modelpurchase_order_type_required

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 8 confirmed, 1 with no information of 9 versions.

Sources · Odoo 19.0

Confirmed on 2026-11-03 in branch 19.0 of OCA/purchase-workflow.

terminal Installation and usage

OCA documentation · Odoo 19.0

To configure this module, you need to:

  • Go to Purchases \> Configuration \> Purchase types
  • Modify / create the purchase order types
  • Enable Default on the order type a purchase order gets when its vendor has no order type. One default can be set per company, plus one for all companies.

To make an order type mandatory on purchase orders:

  • Go to Purchases \> Configuration \> Settings
  • Enable Require Purchase Order Type. The setting applies per company.

A purchase order then cannot be saved in the form without an order type. New installations do not require an order type. Upgraded installations keep requiring it for every existing company; companies created later do not require it until the setting is enabled.

To use this module, you need to:

  • Attribute a type when editing purchase orders

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.