53 lines
1.6 KiB
Python

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']}")