TIP: You can type at any time to perform a new search.
Sale Order Line Price Source Tracking
sale_order_line_price_source · OCA/sale-workflow
- Repository
- OCA/sale-workflow · module folder · Try on Runboat
- Module version
- 2.0.0
- Category
- Sales
- Folder size
- 0.05 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/sale-workflow
- Last tracking update
- 2026-08-07 09:06:23
- Authors
- Camptocamp, Odoo Community Association (OCA)
- Maintainers
- Camptocamp, Odoo Community Association (OCA)
- Committers
- Ricardoalso, Weblate, OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module tracks from where each sale order line unit price comes from. It extends `sale.order.line` with: - `price_source` (`pricelist`, `product`, `manual`) - `price_source_pricelist_item_id` (the applied `product.pricelist.item` when source is `pricelist`) Price source is computed from core pricing behavior, including manual-price detection based on `technical_price_unit` versus `price_unit`.
Code Analysis ⓘ
Views touched (3)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_order_form_inherit_price_source |
sale.order.form.inherit.price.source | sale.order | form | Inherits sale.view_order_form |
view_order_line_form_inherit_price_source |
sale.order.line.form.inherit.price.source | sale.order.line | form | Inherits sale.sale_order_line_view_form_readonly |
view_order_line_tree_inherit_price_source |
sale.order.line.tree.inherit.price.source | sale.order.line | tree | Inherits sale.view_order_line_tree |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (1)
New fields (3)
-
price_sourceSelectiondefault='product'help='Indicates the source of the unit price: Pricelist rule, product base price, or manual override.' args: [('pricelist', 'Pricelist Rule'), ('product', 'Product Sales Price'), ('manual', 'Manual Override')] -
price_source_pricelist_item_idMany2one → product.pricelist.itemhelp="The pricelist rule that determined this line's price (if source is Pricelist)." args: 'product.pricelist.item' -
pricelist_idMany2one → product.pricelisthelp="The pricelist that determined this line's price (if source is Pricelist)."related='price_source_pricelist_item_id.pricelist_id'string='Price Source Pricelist' args: 'product.pricelist'
-
create(self, vals_list)@api.model_create_multi -
write(self, values)