django oscar:如何向商店管理员发送电子邮件以获取订单放置通知

时间:2016-05-07 13:34:49

标签: django django-oscar

我想收到通知

  

电子邮件

当我的django-oscar商店有新订单时,我自己(作为管理员)。

2 个答案:

答案 0 :(得分:0)

我认为您可以使用django signals

Django-Oscar为多个动作定义了一些信号,其中一个与order placed.

的动作相关联

此信号提供有关订单和订单用户的信息。您可以使用此信息发送电子邮件。

我希望它对你有用!

答案 1 :(得分:0)

我有一种方法可以将电子邮件发送给管理员,我所做的是将订单应用程序分叉,然后转到utils.py,转到OrderCreator()类下的place_order函数,oscar为从oscar的github上订购代码是here,所以我所做的就是在此之后放置了发送电子邮件代码。 因此,我在管理端使用代码ADMIN_ORDER_MAIL创建了一个通信事件类型,并在此处用于发送邮件。

我的代码在这里:

# Send an email to admin on placing of order
        ctx = {'order': order, 'user': order.user}
        commtype_code = 'ADMIN_ORDER_MAIL'
        try:
            event_type = CommunicationEventType.objects.get(code=commtype_code)
            # print("Event type typr: ", type(event_type))
            # self.create_communication_event(order, event_type)

        except Exception as e:
            messages = CommunicationEventType.objects.get_and_render(code=commtype_code, context=ctx)
            # print(e)
        else:
            messages = event_type.get_messages(ctx)

            send_mail(
                subject=messages['subject'],
                message='',
                html_message=messages['html'],
                from_email='from email address',
                recipient_list=['to email address'],
                fail_silently=False,
            )