from celery import shared_task from celery.utils.log import get_task_logger from django.core.mail import EmailMessage, send_mail from templated_email import send_templated_mail from .models import Order, SiteSettings logger = get_task_logger(__name__) CONFIRM_ORDER_TEMPLATE = 'storefront/order_confirmation' SHIP_ORDER_TEMPLATE = 'storefront/order_shipped' ORDER_CANCEL_TEMPLATE = 'storefront/order_cancel' ORDER_REFUND_TEMPLATE = 'storefront/order_refund' CONFIRM_WHOLESALE_ORDER_TEMPLATE = 'storefront/wholesale_order_confirmation' @shared_task(name='send_order_confirmation_email') def send_order_confirmation_email(order): send_templated_mail( template_name=CONFIRM_ORDER_TEMPLATE, from_email=SiteSettings.load().order_from_email, recipient_list=[order['email']], context=order ) logger.info(f"Order confirmation email sent to {order['email']}") @shared_task(name='send_wholesale_order_confirmation_email') def send_wholesale_order_confirmation_email(order): send_templated_mail( template_name=CONFIRM_WHOLESALE_ORDER_TEMPLATE, from_email=SiteSettings.load().order_from_email, recipient_list=[order['email']], context=order ) logger.info(f"WholesaleOrder confirmation email sent to {order['email']}") @shared_task(name='send_order_shipped_email') def send_order_shipped_email(data): send_templated_mail( template_name=SHIP_ORDER_TEMPLATE, from_email=SiteSettings.load().order_from_email, recipient_list=[data['email']], context=data ) logger.info(f"Order shipped email sent to {data['email']}")