Créez des fichiers JSP de message électronique afin que le contenu du message composé par le modèle de courrier électronique IBM Watson Campaign Automation puisse utiliser son contenu. Le modèle de courrier électronique IBM Watson Campaign Automation utilise des variables de remplacement de paire nom-valeur de personnalisation pour inclure le contenu fourni par le message électronique JSP sur le serveur HCL Commerce.
Procédure
Créez le corps JSP du message à l'aide de l'une des options suivantes :
- Option 1 : Le JSP HCL Commerce compose l'intégralité du code HTML et le transmet dans une paire nom-valeur de personnalisation
%%BODY%%.
- Option 2 : Le JSP HCL Commerce crée des paires nom-valeur de personnalisation.
-
Créez le corps JSP du message à l'aide de l'option 1 :
-
Faites une copie du fichier JSP existant pour le réutiliser et l'enregistrer dans Struts.
-
Ouvrez le fichier JSP pour l'édition. Mettez à jour pour définir des paires génériques nom-valeur de personnalisation et définissez la paire nom-valeur de personnalisation BODY qui sera créée par le fichier JSP :
- Avant la balise
<html> d'ouverture, insérez l'extrait suivant :<jsp:useBean id="personalizationMap" class="java.util.LinkedHashMap" type="java.util.Map"/>
<c:set target="${personalizationMap}" property="STORE_ID" value="${storeId}" />
<c:set target="${personalizationMap}" property="CATALOG_ID" value="${catalogId}" />
<c:set target="${personalizationMap}" property="LANG_ID" value="${langId}" />
<c:set target="${personalizationMap}" property="STORE_NAME" value="${storeName}" />
<CAMPAIGN_ID>[campaignId]</CAMPAIGN_ID>
<c:if test="${!empty personalizationMap}">
<RECIPIENT>
<%@ include file="../Common/SilverpopPersonalizationXml.jspf"%>
<PERSONALIZATION>
<TAG_NAME>BODY</TAG_NAME>
<VALUE><![CDATA[
</c:if>
- Après la balise
</html> de fin, insérez l'extrait suivant :<c:if test="${!empty personalizationMap}">
]]></VALUE></PERSONALIZATION>
</RECIPIENT>
</c:if>
- Supprimez l'élément suivant :
<!doctype HTML>
-
Enregistrez vos modifications et fermez le fichier JSP.
-
Créez le corps JSP du courrier à l'aide de l'option 2 :
-
Créez le fichier JSP qui contiendra le contenu du courrier électronique et enregistrez-le dans Struts.
-
Ouvrez le fichier JSP pour l'édition. Mettez-le à jour pour inclure le contenu suivant :
- Configurez la mappe de personnalisation et les valeurs génériques.
<jsp:useBean id="personalizationMap" class="java.util.LinkedHashMap" type="java.util.Map"/>
<c:set target="${personalizationMap}" property="STORE_ID" value="${storeId}" />
<c:set target="${personalizationMap}" property="CATALOG_ID" value="${catalogId}" />
<c:set target="${personalizationMap}" property="LANG_ID" value="${langId}" />
<c:set target="${personalizationMap}" property="STORE_NAME" value="${storeName}" />
- Ajoutez toutes les paires nom-valeur de personnalisation personnalisées supplémentaires, telles que :
<c:set target="${personalizationMap}" property="USER_NAME" value="${WCParam.logonId}" />
<c:set target="${personalizationMap}" property="PASSWORD" value="${WCParam.logonPassword}" />
-
Créez le XML Transact en incluant l'extrait suivant après l'ajout de toutes les paires nom-valeur à personalizationMap :
<CAMPAIGN_ID>[campaignId]</CAMPAIGN_ID>
<c:if test="${!empty personalizationMap}">
<RECIPIENT>
<%@ include file="../Common/SilverpopPersonalizationXml.jspf"%>
</RECIPIENT>
</c:if>
Remarque : Le fichier WC_eardir/Stores.war/storedir/EmailTemplates/Common/SilverpopPersonalizationXml.jspf définit des valeurs telles que l'adresse de messagerie du destinataire et, si nécessaire, l'objet, dans le XML. Il analyse également les paires nom-valeur de personnalisation définies dans le bean personalizationMap et les place dans le XML.
Par exemple,
<EMAIL>[recipientEmailAddress]</EMAIL>
<BODY_TYPE>HTML</BODY_TYPE>
<PERSONALIZATION>
<TAG_NAME>SUBJECT</TAG_NAME>
<VALUE><![CDATA[[emailSubject]]]></VALUE>
</PERSONALIZATION>
<c:if test="${!empty personalizationMap}">
<c:forEach items="${personalizationMap}" varStatus="pmStatus">
<PERSONALIZATION>
<TAG_NAME><c:out value="${pmStatus.current.key}"/></TAG_NAME>
<VALUE><![CDATA[<c:out value="${personalizationMap[pmStatus.current.key]}" escapeXml="false"/>]]></VALUE>
</PERSONALIZATION>
</c:forEach>
</c:if>
- Facultatif :
Incluez un emplacement e-marketing.
Après avoir inclus le fichier SilverpopPersonalizationXml.jspf, mais avant de fermer le </RECIPIENT>, incluez une section <PERSONALIZATION>. Définissez le <TAG_NAME> en tant que nom de l'emplacement e-marketing et utilisez la méthode standard d'inclusion d'un emplacement e-marketing dans la balise <VALUE>.
Par exemple,
<RECIPIENT>
<%@ include file="../Common/SilverpopPersonalizationXml.jspf"%>
<PERSONALIZATION>
<TAG_NAME>EmailWishlist_Content</TAG_NAME>
<VALUE><![CDATA[
<%out.flush();%>
<c:import url="${env_siteWidgetsDir}com.ibm.commerce.store.widgets.ContentRecommendation/ContentRecommendation.jsp">
<c:param name="emsName" value="EmailWishlist_Content" />
<c:param name="storeId" value="${storeId}" />
<c:param name="catalogId" value="${catalogId}" />
<c:param name="isEmail" value="true" />
<c:param name="substitutionName1" value="[senderName]" />
<c:param name="substitutionValue1" value="${WCParam.senderName}" />
</c:import>
<%out.flush();%>
]]></VALUE></PERSONALIZATION>
</RECIPIENT>
L'utilisateur professionnel entre ensuite %%spotname%% dans le modèle de courrier électronique IBM Watson Campaign Automation pour inclure le code HTML de l'emplacement e-marketing créé par le fichier JSP de l'emplacement e-mrketing. Dans cet exemple, l'utilisateur professionnel entre EmailWishlist_Content.
- Facultatif :
Activez la fonctionnalité IBM Watson Campaign Automation Cliquez pour afficher pour afficher le courrier électronique en HTML dans un navigateur Web.
Définissez chaque paire nom-valeur de personnalisation dans la base de données IBM Watson Campaign Automation en incluant un élément dans le XML Transact pour chaque paire nom-valeur de personnalisation <SAVE_COLUMNS>.
L'élément <SAVE_COLUMNS> contient l'élément de personnalisation. En plaçant une personnalisation d'élément dans la section <SAVE_COLUMNS>, Engage stocke la valeur de ce champ dans la base de données associée au groupe de messages automatisés Transact dans Engage avec des données de champ système pour l'enregistrement.
Par exemple,
<XTMAILING>
<CAMPAIGN_ID>[campaignId]</CAMPAIGN_ID>
<SAVE_COLUMNS>
<COLUMN_NAME>STORE_NAME</COLUMN_NAME>
<COLUMN_NAME>USERNAME</COLUMN_NAME>
</SAVE_COLUMNS>
<RECIPIENT>
-
Si vous utilisez HCL Commerce version 9.0.0.x, enregistrez les modifications de JSP Struts par e-mail en utilisant
-22 comme format de périphérique :
<forward className="com.ibm.commerce.struts.ECActionForward"
name="template_view/storeId/-22"
path="template_path">
<set-property property = "interfaceName" value = "com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
<set-property property = "implClassName" value = "com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
</forward>
Par exemple, pour enregistrer les modifications de JSP Struts par e-mail pour les commandes reçues :
<forward className="com.ibm.commerce.struts.ECActionForward"
name="OrderReceivedView/10101/-22"
path="/EmailTemplates/Order/SilverpopOrderCreateNotify.jsp">
<set-property property="implClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
<set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
</forward>
-
Enregistrez les modifications de JSP Struts par e-mail en utilisant
-22 comme format de périphérique dans la partie du résultat global de struts-wcs-stores-custom.xml :
<result name="template_view/storeId/-22" type="wcsstore">
<param name="implClassName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl</param>
<param name="interfaceName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommand</param>
<param name="location">template_path</param>
</result>
For example, to register the email JSP Struts changes for received orders:
<result name="OrderReceivedView/10101/-22" type="wcsstore">
<param name="implClassName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl</param>
<param name="interfaceName">com.ibm.commerce.messaging.viewcommands.MessagingViewCommand</param>
<param name="location">/EmailTemplates/Order/SilverpopOrderCreateNotify.jsp</param>
</result>