OdooWiki OCA HUB

Purchase Sub State

purchase_substate folder_open OCA/purchase-workflow open_in_new
Tools License: AGPL-3

This module allows to add a substate to purchase order. For each purchase order state you can define a substate. With this module you can define substate which allow you to extend purchase workflow. For example, you can add substate "waiting for legal documents" if the order can not be validated without this document (purchase a car for example).

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds a second-level status (substate) to purchase orders and requests for quotation, so you can track extra steps like "Waiting for legal documents" or "In receipt" on top of the standard status.

This module lets you define extra statuses, called substates, for purchase orders and requests for quotation (RFQ). Each substate belongs to one of the standard purchase statuses, so you can show more detail without changing the normal workflow.

On the purchase order form, a new status bar appears in the header next to the standard one. You can click it to move the order to another substate. Only substates that match the current standard status are offered.

A configuration entry "Purchase Order Substate" is created, linked to the purchase order status field. Two base statuses are provided: RFQ (draft) and Purchase. Substates are attached to one of these.

Two ready-to-use email templates are included: "Waiting for legal documents" and "In delevery". A substate can be linked to a template, so when the order reaches that substate an email can be prepared for the vendor.

Demo data shows example substates such as In negotiation, Won, Lost, Waiting for legal documents, To validate legal documents, In receipt and Receipted, each with a sequence order.

The module touches purchase.order and the substate configuration models (base.substate.type, base.substate, target.state.value).

Depends on

Models and fields (2)
  • purchase.order · new model
  • base.substate.type · extends an existing modelmodel

Text generated by AI (DeepSeek) from reading the Odoo 18.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: 4 confirmed, 5 with no information of 9 versions.

Sources · Odoo 15.0

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

terminal Installation and usage

OCA documentation · Odoo 18.0
  • Go to Settings \> Technical \> Database Structure and Add "Base substate". If necessery you can add "target State values" (ex define a substate for "cancel" state). Substate sequence is very important.
  • Create a purchae order and check if the substate are displayed on the header of form view. Check if you can't set substate defined for purchase if sate is a RFQ.

No verified information in OCA: Installation, Configuration.

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.