36 lines
1.8 KiB
Python
36 lines
1.8 KiB
Python
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 |