from datetime import datetime from odoo.http import request, route from odoo.addons.payment.controllers.portal import PaymentProcessing from odoo.addons.website_sale.controllers.main import WebsiteSale class WebsiteSaleInherit(WebsiteSale): def update_affiliate_visit_cookies(self, sale_order_id, result): """update affiliate.visit from cokkies data i.e created in product and shop method""" res = super().update_affiliate_visit_cookies(sale_order_id, result) cookies = dict(request.httprequest.cookies) visit = request.env['affiliate.visit'].sudo() affiliate_key = cookies.get('affkey') if affiliate_key: partner_id = request.env['res.partner'].sudo().search([('res_affiliate_key', '=', affiliate_key), ('is_affiliate', '=', True)]) sale_order_id.partner_id.sudo().write({'affiliate_id': partner_id.id}) elif sale_order_id.partner_id.sudo().affiliate_id: partner_id = sale_order_id.partner_id.sudo().affiliate_id for s in sale_order_id.order_line: visit.create({ 'affiliate_method': 'pps', 'affiliate_key': affiliate_key or partner_id.res_affiliate_key, 'affiliate_partner_id': partner_id.id, 'url': "", 'ip_address': request.httprequest.environ['REMOTE_ADDR'], 'type_id': s.product_id.product_tmpl_id.id, 'affiliate_type': 'product', 'type_name': s.product_id.id, 'sales_order_line_id': s.id, 'convert_date': datetime.now(), 'affiliate_program_id': partner_id.affiliate_program_id.id, 'product_quantity': s.product_uom_qty, 'is_converted': True }) return res