Sale Order Product Picker

sale_order_product_picker
REPOSITORY
REPOSITORYOCA/sale-workflow
GIT
GIThttps://github.com/OCA/sale-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-workflow/tree/16.0/sale_order_product_picker
VERSION
VERSION 1.2.2
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSJairo Llopis, Miquel Raïch, Weblate, OCA-git-bot, oca-ci, Carlos Roca, Laurent Mignonn (ACSONE)
WEBSITE
WEBSITEhttps://github.com/OCA/sale-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:45
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
product_product_tree_picker_filter_view product.product.tree.picker.filter product.product xpath Inherits product.product_product_tree_view
view_order_form sale.order xpath Inherits sale.view_order_form
Models touched (4)

New fields (0)

No new fields.

Public methods (1)
  • get_picker_delay(self)
    @api.model

New fields (9)
  • picker_filter Selection
    selection='_list_product_picker_filters' store=False string='Filter'
  • picker_ids One2many → sale.order.picker
    comodel_name='sale.order.picker' compute='_compute_picker_ids' compute_sudo=True inverse_name='order_id'
  • picker_only_available Boolean
    store=False string='Available'
  • picker_order Selection
    selection=[('categ_id', 'Category')] store=False
  • picker_origin_data Selection
    selection=[('sale_order', 'Last sales')] store=False
  • picker_price_origin Selection
    selection=[('last_sale_price', 'Last price')] store=False
  • picker_product_attribute_value_id Many2one → product.attribute.value
    comodel_name='product.attribute.value' help='Filter products by attribute value' store=False string='Attribute value'
  • product_name_search Char
    store=False string='Search product'
  • use_delivery_address Boolean
    default=False store=False
Public methods (1)
  • filter_picker_so_lines(self, picker_data)

New fields (3)
  • categ_id Many2one → product.category
    related='product_id.categ_id' store=True args: 'product.category'
  • is_different_price Boolean
    compute='_compute_is_different_price'
  • list_price Float
    related='product_id.list_price'
Public methods (0)

No public methods.

New fields (25)
  • category_id Many2one → product.category
    related='product_id.categ_id' args: 'product.category'
  • compute_price_unit Boolean
    store=False
  • currency_id Many2one
    depends=['order_id'] related='order_id.currency_id'
  • discount Float
    digits='Discount' string='Discount (%)'
  • is_different_price Boolean
    compute='_compute_is_different_price'
  • is_in_order Boolean
  • line_price_reduce Float
  • list_price Float
    related='product_id.list_price'
  • multiple_discounts Boolean
  • order_id Many2one → sale.order
    comodel_name='sale.order'
  • price_unit Float
    compute='_compute_price_unit' digits='Product Price' string='Unit Price'
  • pricelist_item_id Many2one → product.pricelist.item
    compute='_compute_pricelist_item_id' args: 'product.pricelist.item'
  • product_id Many2one → product.product
    comodel_name='product.product'
  • product_image Image
    related='product_id.image_256'
  • product_no_variant_attribute_value_ids Many2many → product.template.attribute.value
    comodel_name='product.template.attribute.value' compute='_compute_no_variant_attribute_values' ondelete='restrict' precompute=True readonly=False store=True string='Extra Values'
  • product_uom_qty Float
    digits='Product Unit of Measure' string='Quantity'
  • qty_available Float
    compute='_compute_qty_available' digits='Product Unit of Measure' string='On Hand'
  • qty_delivered Float
    digits='Product Unit of Measure' string='Delivered'
  • sale_line_id Many2one → sale.order.line
    comodel_name='sale.order.line'
  • times_delivered Integer
  • to_process Boolean
  • unit_factor Float
    compute='_compute_unit_factor'
  • unit_name Char
    compute='_compute_unit_name'
  • uom_id Many2one → uom.uom
    comodel_name='uom.uom' related='product_id.uom_id'
  • warehouse_id Many2one → stock.warehouse
    compute='_compute_warehouse_id' args: 'stock.warehouse'
Public methods (2)
  • add_to_cart(self)
  • get_display_price(self)