Based on your requirement to inherit product object and create functional field to store product_code in product table. And add the field in tree view and search view.
Python Code:-
class product_product(osv.osv):
_inherit = "product.product"
def _sup_product_code(self, cr, uid, ids, name, arg, context=None):
res = {}
if context is None:
context = {}
sup_code_list = []
for product in self.browse(cr, uid, ids, context=context):
for supinfo in product.seller_ids:
if isinstance(supinfo.product_code, str) or isinstance(supinfo.product_code, unicode):
sup_code_list.append(supinfo.product_code)
sup_code_res = ', '.join(sup_code_list)
res[product.id] = sup_code_res
return res
_columns = {
'sup_product_code': fields.function(_sup_product_code, string="Supplier Product Code", type='char', store=True),
}
Xml File:-
<record id="product_search_view_suppcode" model="ir.ui.view">
<field name="name">product.search.suppcode</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_search_form_view"/>
<field name="arch" type="xml">
<field name="name" position="after">
<field name="sup_product_code"/>
</field>
</field>
</record>
<record id="product_tree_view_suppcode" model="ir.ui.view">
<field name="name">product.tree.suppcode</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_product_tree_view"/>
<field name="arch" type="xml">
<field name="state" position="after">
<field name="sup_product_code"/>
</field>
</field>
</record>
Note: In the Functional Field use Store=False in the first time (then only it generate all the Product Code in tree view for old records). After that update the code Store=True and it execute the Product Code after saving the record and also we can use the field in Filter Options.