我编写了一个自定义网站来制作销售订单。该网站可供门户用户登录后使用。我有一个准备好创建销售订单的控制器,但它不能像我希望的那样工作。
这就是我创建新订单的方式:
@http.route('/api/create_order', type='json', auth='user', website=True)
def create_order(self, **kw):
uid = http.request.env.context.get('uid')
partner_id = http.request.env['res.users'].search([('id','=',uid)]).partner_id.id
order_products = kw.get('order_products', [])
order_line = []
for product in order_products:
order_line.append(
(0, 0, {
'product_id': http.request.env['product.product'].search([('product_tmpl_id','=',product['product_id'])])[0].id,
'product_uom_qty': product['amount'],
}))
order_data = {
'name': 'Test Sale Order',
'partner_id': partner_id,
'order_line': order_line,
}
result_insert_record = http.request.env['sale.order'].with_user(SUPERUSER_ID).create(order_data)
return result_insert_record
如您所见,我正在使用with_user(SUPERUSER_ID).create()
. 因为门户用户没有直接创建销售订单的权限。当我使用sudo().create()
这个门户时,用户也被分配为销售人员(以及客户)到他自己的订单。
他也没有在他的网站帐户中看到它们 - 他应该。创建此类订单后,他还应该收到一封确认电子邮件。
当有人通过网站内的商店下订单时,没有分配销售人员,而是有一个与该销售订单链接的网站。
那么,如何创建此销售订单以使其与网站链接,用户在其门户中看到它并在创建后收到一封电子邮件?我需要传递一些特殊参数或使用不同的功能吗?