from odoo import fields, models class WebsiteUserCart(models.Model): _name = 'website.user.cart' _rec_name = 'user_id' user_id = fields.Many2one('res.users', string='User') product_id = fields.Many2one('product.product', string='Product') program_line_id = fields.Many2one('promotion.program.line', string='Program', help="Apply program") qty = fields.Float(string='Quantity', digits='Product Unit of Measure') is_selected = fields.Boolean(string='Selected?', digits='Is selected to process checkout') def get_product(self): product_product = self.env['product.product'] product = product_product.v2_api_single_response(self.product_id) product['quantity'] = self.qty product['subtotal'] = self.qty * product['price']['price_discount'] product['selected'] = self.is_selected return product def get_product_by_user(self, user_id, selected = False): user_id = int(user_id) parameters = [('user_id', '=', user_id)] if selected: parameters.append(('is_selected', '=', True)) carts = self.search(parameters) products = [] for cart in carts: products.append(cart.get_product()) return products