Crear archivos JSP de mensaje de correo electrónico

Cree archivos JSP de mensaje de mensaje de correo electrónico para que el contenido de correo electrónico compuesto por la plantilla de correo electrónico de IBM Watson Campaign Automation pueda utilizar el contenido. La plantilla de correo electrónico de IBM Watson Campaign Automation utiliza variables de sustitución de par nombre-valor de personalización para incluir el contenido proporcionado por la JSP de mensaje de correo electrónico en el servidor de HCL Commerce.

Procedimiento

Cree el cuerpo de JSP de correo electrónico utilizando una de las opciones siguientes:
  • Opción 1: La JSP de HCL Commerce compone el HTML entero y pasa el HTML en un par nombre-valor de personalización de %%BODY%%.
  • Opción 2: La JSP de HCL Commerce crea pares nombre-valor de personalización.
  1. Cree el cuerpo de JSP de correo electrónico utilizando la Opción 1:
    1. Realice una copia del archivo JSP existente para utilizarlo y registrarlo en Struts.
    2. Abra el archivo JSP para editarlo. Actualícelo para establecer pares nombre-valor de personalización genéricos y configure el par nombre valor de personalización de BODY que el archivo JSP debe crear:
      1. Antes del código <html> de apertura, inserte el fragmento de código siguiente:
        <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>
      2. Después del código </html> de cierre, inserte el fragmento de código siguiente:
        <c:if test="${!empty personalizationMap}">
        ]]></VALUE></PERSONALIZATION>
        </RECIPIENT>
        </c:if>
      3. Elimine el elemento siguiente:
        <!doctype HTML>
    3. Guarde los cambios y cierre el archivo JSP.
  2. Cree el cuerpo de JSP de correo electrónico utilizando la Opción 1:
    1. Cree el archivo JSP para que incluya el contenido de correo electrónico y regístrelo en Struts.
    2. Abra el archivo JSP para editarlo. Actualícelo para incluir el contenido siguiente:
      1. Configure los valores genéricos y de correlación de personalización:
        <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}" />
      2. Añada los pares nombre-valor de personalización personalizados adicionales, por ejemplo:
        <c:set target="${personalizationMap}" property="USER_NAME" value="${WCParam.logonId}" />    
        <c:set target="${personalizationMap}" property="PASSWORD" value="${WCParam.logonPassword}" />  
    3. Cree el XML de Transact incluyendo el siguiente fragmento de código después de todos los pares nombre-valor que se han añadido a personalizationMap:
      <CAMPAIGN_ID>[campaignId]</CAMPAIGN_ID>
      <c:if test="${!empty personalizationMap}">
      <RECIPIENT>
      <%@ include file="../Common/SilverpopPersonalizationXml.jspf"%>
      </RECIPIENT>
      </c:if>
      Nota: El archivo WC_eardir/Stores.war/storedir/EmailTemplates/Common/SilverpopPersonalizationXml.jspf configura valores como la dirección de correo electrónico del destinatario y, si es necesario el asunto, en el XML. También analiza los pares nombre-valor de personalización establecidos en el bean personalizationMap y los coloca en el XML.
      Por ejemplo,
      <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>
    4. Opcional: Incluya una zona de e-Marketing.

      Después de incluir el archivo SilverpopPersonalizationXml.jspf, pero antes de cerrar el </RECIPIENT>, incluya una sección <PERSONALIZATION>. Establezca <TAG_NAME> para que sea el nombre de la zona de e-Marketing y utilice el método estándar para incluir una zona de e-Marketing en el código <VALUE>.

      Por ejemplo,
      <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>

      A continuación, el usuario de empresa entra %%spotname%% en la plantilla de correo electrónico de IBM Watson Campaign Automation para incluir el HTML de zona de e-Marketing creado por el archivo JSP de zona de e-Marketing. En este ejemplo, el usuario de empresa entra EmailWishlist_Content.

  3. Opcional: Habilite la característica IBM Watson Campaign Automation Pulsar para ver para visualizar el correo electrónico como HTML en un navegador web.

    Defina cada par nombre-valor de personalización en la base de datos de IBM Watson Campaign Automation incluyendo un elemento <SAVE_COLUMNS> en el XML de Transact para cada par nombre-valor de personalización.

    El elemento <SAVE_COLUMNS> contiene el elemento de personalización. Al poner una personalización de elemento en la sección <SAVE_COLUMNS>, Engage almacena el valor de este campo en la base de datos asociada con el grupo de mensajes automatizados de Transact en Engage con datos de campo de sistema para el registro.

    Por ejemplo,
    <XTMAILING>
    <CAMPAIGN_ID>[campaignId]</CAMPAIGN_ID>
    <SAVE_COLUMNS>
    <COLUMN_NAME>STORE_NAME</COLUMN_NAME>
    <COLUMN_NAME>USERNAME</COLUMN_NAME>
    </SAVE_COLUMNS>
    <RECIPIENT>
  4. Si utiliza la versión 9.0.0.x de HCL Commerce registre los campos de Struts de JSP de correo electrónico utilizando -22 como formato de dispositivo:
    
    <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>
    Por ejemplo, para registrar los campos de Struts de JSP de correo electrónico para los pedidos recibidos:
    
    <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>
    
  5. Registre los campos de Struts de JSP de correo electrónico utilizando -22 como formato de dispositivo en la parte de resultado 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>