增强 Kentico 13 电子商务中的电子邮件通知

C# and Liquid

优化客户沟通

管理电子商务平台时,确保客户充分了解其订单对于维持客户满意度和信任至关重要。 Kentico 13 提供了强大的工具来自动执行此类通信,特别是围绕订单状态更新。当订单状态更改为“已发货”时发送定制电子邮件的能力可以极大地增强客户体验。

然而,开发人员有时会面临模板变量无法正确识别、将动态内容视为静态文本的挑战。此问题可能会影响自动电子邮件的有效性,因为跟踪号码等重要信息可能无法正确显示。解决这些细微差别需要更深入地了解 Kentico 的模板功能,并可能对 Liquid 模板语法进行故障排除。

命令 描述
EmailTemplateProvider.GetEmailTemplate 从 Kentico 的电子邮件模板库中按名称和站点检索电子邮件模板。
EmailMessage 构造一个新的电子邮件实例,可以填充收件人、发件人、主题和正文等详细信息。
MacroResolver.Resolve 处理文本字符串,将宏表达式替换为基于当前上下文的计算结果。
EmailSender.SendEmailWithTemplateText 使用提供的模板文本发送电子邮件,还允许在电子邮件内容中进行宏解析。
EventLogProvider.LogInformation 将信息消息记录到 Kentico 的事件日志中,对于跟踪电子邮件发送等操作非常有用。
{% capture %} 开始捕获 Liquid 模板中字符串变量的输出,该模板通常用于生成动态电子邮件内容。

Kentico CMS 自动电子邮件脚本的详细说明

在 Kentico 13 的后端解决方案中,脚本利用 Kentico API 提供的多个特定命令和类,在订单状态更改为“已发货”时自动管理和发送电子邮件。关键组件“EmailTemplateProvider.GetEmailTemplate”获取预定义的电子邮件模板,这对于保持通信的一致性和品牌至关重要。然后使用该模板构建“EmailMessage”对象,该对象用作电子邮件内容的容器,包括收件人、发件人、主题和正文。

该脚本还使用“MacroResolver.Resolve”将动态内容(例如订单的跟踪编号)直接插入电子邮件正文中。这对于个性化电子邮件和向客户提供相关信息至关重要。在构建和个性化电子邮件之后,将调用“EmailSender.SendEmailWithTemplateText”来发送电子邮件,动态处理模板内的任何宏解析。使用“EventLogProvider.LogInformation”记录操作可确保记录所有发送操作以用于审核和调试目的,从而增强系统可靠性和可追溯性。

在 Kentico 13 中实施自动电子邮件通知

Kentico 13 CMS 的 C# 后端解决方案

using CMS.EmailEngine;
using CMS.EventLog;
using CMS.DataEngine;
using CMS.SiteProvider;
using CMS.Helpers;
public void SendShipmentEmail(int orderId)
{
    OrderInfo order = OrderInfoProvider.GetOrderInfo(orderId);
    if (order != null && order.OrderStatus.StatusName == "Shipped")
    {
        EmailTemplateInfo emailTemplate = EmailTemplateProvider.GetEmailTemplate("OrderShippedEmail", SiteContext.CurrentSiteName);
        if (emailTemplate != null)
        {
            EmailMessage message = new EmailMessage();
            message.EmailFormat = EmailFormatEnum.Default;
            message.Recipients = order.OrderCustomerEmail;
            message.From = EmailHelper.GetSender(emailTemplate, EmailHelper.GetDefaultSender(SiteContext.CurrentSiteName));
            message.Subject = EmailHelper.GetSubject(emailTemplate, "Your order has been shipped");
            message.Body = MacroResolver.Resolve(
                emailTemplate.TemplateText.Replace("{{trackingNumber}}", order.GetStringValue("OrderTrackingNumber", string.Empty)));
            EmailSender.SendEmailWithTemplateText(SiteContext.CurrentSiteName, message, emailTemplate, null, true);
            EventLogProvider.LogInformation("SendShipmentEmail", "EMAILSENT", "Email sent successfully to " + order.OrderCustomerEmail);
        }
    }
}

通过宏在 Kentico 中进行动态电子邮件内容处理

Kentico CMS 宏利用

{% if (Order.OrderStatus.StatusName == "Shipped") %}
{% capture emailContent %}
Order Update
Your Order
Your shipment is on its way!
Here's your tracking number: {{ Order.CustomData.m_c_orderShippingForm_OrderTrackingNumber_txtText }}
{% endcapture %}
{% EmailSender.SendEmail("no-reply@yourdomain.com", Order.OrderCustomerEmail, "Your Order Has Shipped", emailContent) %}
{% endif %}

通过 Kentico 的动态电子邮件自动化增强客户参与度

Kentico 中的动态电子邮件自动化可以根据用户操作或数据变化(例如订单状态更新)发送特定内容的电子邮件,从而实现更加个性化的客户交互。这种自动化使用 Kentico 的先进 CMS 功能直接与电子商务模块交互,确保客户及时收到有关其购买的更新信息。使用动态内容的优点在于它增加了通信的相关性,从而提高了客户满意度和忠诚度。

此外,将动态电子邮件内容与电子商务运营集成可以显着简化通信工作流程。由于系统会自动发送通知而无需人工干预,因此可以提高流程效率并减少人为错误的可能性。通过利用 Kentico 的模板功能,企业可以定制每条消息以满足特定情况,从而提高参与率和整体更好的客户服务体验。

  1. 如何在 Kentico 中设置电子邮件自动化?
  2. 可以使用营销自动化模块在 Kentico 中设置电子邮件自动化,您可以在其中创建根据特定操作或条件触发电子邮件的流程。
  3. 我可以使用 Kentico 的外部服务来发送电子邮件吗?
  4. 是的,Kentico 支持通过其电子邮件中继设置与 SendGrid 或 Mailgun 等外部电子邮件服务集成。
  5. 是否可以在 Kentico 中自定义电子邮件模板?
  6. 当然,Kentico 提供了灵活的电子邮件模板编辑器,您可以使用所见即所得编辑器或直接 HTML 编辑来自定义布局、样式和内容。
  7. Kentico 如何处理电子邮件跟踪?
  8. Kentico 通过在发送的每封电子邮件中嵌入一个小图像像素来跟踪电子邮件,使您可以在电子邮件营销模块中查看打开率和链接点击量。
  9. 我可以安排稍后在 Kentico 发送电子邮件吗?
  10. 是的,可以直接在电子邮件小部件中或通过营销自动化流程安排电子邮件稍后发送。

在 Kentico 13 中成功实施自动化通信取决于正确利用其强大的模板和宏功能。这不仅确保在订单状态发生变化时发送电子邮件,而且还确保它们包含准确且相关的信息,例如跟踪号码。解决与动态内容识别相关的问题需要彻底了解 Kentico 的 API 和 Liquid 模板语法,掌握这些语法后,可以通过提供及时的更新和信息来显着增强客户的购买后体验。