Fermer

janvier 3, 2025

Commerce configuré de manière optimale – Administration de la messagerie électronique et plus / Blogs / Perficient

Commerce configuré de manière optimale – Administration de la messagerie électronique et plus / Blogs / Perficient


Commerce configuré de manière optimisée offre une manière unique de gérer les e-mails. Cela permet aux administrateurs de configurer et de gérer les modèles et paramètres de courrier électronique utilisés pour les communications automatisées par courrier électronique avec les utilisateurs. Cette fonctionnalité est essentielle pour garantir une image de marque cohérente et une efficacité opérationnelle dans un environnement de commerce électronique B2B. Et plus important encore, ces e-mails sont configurés automatiquement et ne devraient pas nécessiter de nombreuses mises à jour.

Cependant, dans certains scénarios, vous aurez peut-être besoin de davantage de personnalisations lorsque vous travaillez avec des e-mails. Cet article fournira plus d’informations sur les e-mails configurés de manière optimisée qui n’ont pas été abordés dans la documentation. Vous obtiendrez quelques idées sur la façon de personnaliser en profondeur les modèles d’e-mails et également d’envoyer des e-mails à l’aide du framework B2B d’Optimizely.

Conditions préalables

Avant de vous lancer dans la personnalisation, vous devez avoir des connaissances fondamentales sur l’administration des e-mails dans Configured Commerce.

Comment envoyer des e-mails avec Commerce configuré de manière optimisée

Dans Commerce configuré de manière optimisée, les e-mails sont envoyés automatiquement lorsqu’un certain événement se produit sur une page Web (par exemple, un e-mail de confirmation de commande est envoyé lors de la soumission d’une commande). Cependant, certaines actions ne sont pas associées à l’envoi de mails. Si vous souhaitez faire cela, comme envoyer un e-mail de notification au nouveau inscrit, vous devez mettre du code dans vos gestionnaires personnalisés ou contrôleurs d’API Web. Utiliser .NET SmtpClient est un bon choix, mais dans le cadre de cet article, je suggérerais d’utiliser EmailService dans le framework B2B que nous utilisons. La raison est vous pouvez bénéficier de la fonctionnalité d’administration de messagerie intégrée à Commerce configuré, de la gestion des modèles d’e-mails à la surveillance des journaux d’e-mails, etc. Chaque e-mail envoyé via EmailService sera suivi dans cet écran :

Journaux de messagerie Opti B2b

Comme cela a été dit, voici comment vous pouvez envoyer l’e-mail à tout moment avec le service de messagerie B2B (avec explication) :

// getting email template from IEmailTemplateUtilities (you need to inject this interface in your controller)
var emailTemplate = emailTemplateUtilities.GetOrCreateByName("MyCustomEmailTemplate");

// retrieving the content manager from the email template
var emailTemplateContentManager = emailTemplate.ContentManager;

// using IContentManagerUtilities to get the current version of the email body (you also need to inject this interface in your controller)
var htmlBody = contentManagerUtilities.CurrentContent(emailTemplateContentManager).Html;

// now create the email model to store the dynamic data. It's basically an ExpandoObject
dynamic emailModel = new ExpandoObject();
emailModel.Name = "John Doe";

// Parsing the template. For example, the placeholder [[Model.Name]] in the html body will be replaced with the actual data of emailModel, which is "John Doe".
// You need to inject the IEmailService before using it
string strEmailBody = emailService.Value.ParseTemplate(htmlBody, emailModel);

// Send the email with Configured Commerce's IEmailService
var sendEmailParameter = new SendEmailParameter();
sendEmailParameter.ToAddresses = new List<string>(){ "john.doe@test.com" };
sendEmailParameter.FromAddress = "defaultemail@test.com";
sendEmailParameter.Subject = "Welcome to our site";
sendEmailParameter.Body = strEmailBody;
try
{
    emailService.Value.SendEmail(sendEmailParameter, unitOfWork);
}
catch (Exception e)
{
    // Error handling
}

Vous pouvez créer un nouveau modèle ou en modifier un existant. IEmailService enverra avec succès tant qu’il est capable de trouver le nom du modèle et que les espaces réservés correspondent à la structure de votre modèle de courrier électronique ExpandoObject :

Mon modèle de courrier électronique personnalisé

Personnaliser les modèles d’e-mails

DotLiquid est utilisé pour restituer les vues de tous les modèles d’e-mails. Cependant, il semble que ce ne soit pas la syntaxe DotLiquid standard. La syntaxe n’a pas été documentée, voici ce que j’ai trouvé en inspectant les modèles par défaut :

Syntaxe des espaces réservés

Le moteur de création de modèles utilise cette syntaxe [[Model.PropertyName]] pour restituer les données dynamiques du modèle. Étant donné que le modèle est un ExpandoObject, vous êtes libre de définir n’importe quelle propriété à l’intérieur. Il existe également de nombreuses variables intégrées pour les modèles existants, veuillez vous référer ici : https://support.optimizely.com/hc/en-us/articles/4413199986957-HTML-variables-for-email-templates

Déclaration If-Else

Utilisez ce bloc logique lorsque vous souhaitez rendre quelque chose de manière conditionnelle.

Si:

[% if Model.MyProperty != null and Model.MyProperty != "" -%]
    <p>[[Model.MyProperty]]</p>
[% endif -%]

Si-sinon :

<strong>
    [% if Model.FirstName!= null and Model.FirstName!= "" -%] [[Model.FirstName]] [% else -%] [[Model.LastName]] [% endif -%]
</strong>

Itération

Utilisez ce bloc pour parcourir une liste :

[% for orderGroup in Model.OrderGroups -%]
    <div>
          <p>[[orderGroup.Heading]]</p>
    </div>
[% endfor -%]

Remarque : Pour l’instant (janvier 2025), le moteur de création de modèles ne prend pas encore en charge les boucles imbriquées.

Messages du site

Vous pouvez même utiliser les messages du site dans vos modèles. Par exemple:

<span>[% siteMessage 'Welcome_Message' %]:</span>

Ce qui est cool, c’est que les messages du site peuvent être localisables. Ainsi, basé sur SiteContext.Current.LanguageDto (de Insite.Core.Context), il peut détecter la langue actuelle et traduire automatiquement le message pour vous.

Message de bienvenue

J’espère que ces informations vous seront utiles lorsque vous devrez travailler sur l’administration des e-mails dans Commerce configuré de manière optimisée. Bon codage !






Source link