Ejemplo: Añadir una Zona de e-Marketing basada en la ubicación a un archivo JSP

Siguiendo este ejemplo y si desea añadir una Zona de e-Marketing basada en la ubicación al archivo JSP para utilizarla con los servicios basados en la ubicación.

  1. Actualice el archivo JSP para averiguar la ubicación geográfica actual del comprador. Puede conseguirlo mediante la API de geoubicación de HTML. Por ejemplo:
    
    <form id="EFlyerSearchForm" name="EFlyerSearchForm" method="get" action="tEFlyerDisplayView">
       <input type="hidden" name="storeId" value="${storeId}"/>
       <input type="hidden" name="catalogId" value="${catalogId}"/>
       <input type="hidden" name="langId" value="${langId}"/>
       <input type="hidden" name="latitude" value=""/>
       <input type="hidden" name="longitude" value=""/>
       <a onclick="getCurrentPosition()"><fmt:message key="EFlyer_Search_Form_Use_My_Current_Location" bundle="${storeText}"/></a>
    </form>
    
    <script type="text/javascript">
       getCurrentPosition = function() {
          navigator.geolocation.getCurrentPosition(
             function(position) {
                var form = document.getElementById("EFlyerSearchForm");
                form.postalCode.value = "";
                form.latitude.value = position.coords.latitude;
                form.longitude.value = position.coords.longitude;
                form.submit();
             },
             function(error) {
                alert(error.message);
             },
             { timeout: 5000 }
          );
       };
    </script>
    
  2. Actualice el archivo JSP para encontrar el punto de interés correspondiente a la ubicación geográfica. Por ejemplo:
    
    <wcf:getData type="com.ibm.commerce.location.facade.datatypes.PointOfInterestType[]" var="pois" expressionBuilder="getPointsOfInterestByProximity">
             <wcf:param name="storeId" value="${storeId}"/>
             <wcf:param name="dataLanguageIds" value="${langId}"/>
             <wcf:param name="poiType" value="Store"/>
             <wcf:param name="latitude" value="${latitude}"/>
             <wcf:param name="longitude" value="${longitude}"/>
             <wcf:param name="radius" value="0"/>
             <wcf:param name="accessProfile" value="IBM_All"/>
          </wcf:getData>
    
  3. Añada una Zona de e-Marketing basada en la ubicación al archivo JSP con los datos de punto de interés. Cuando existe una recomendación de contenido basado en la ubicación coincidente, esta Zona de e-Marketing devuelve el URL del contenido. Por ejemplo:
    
    <c:if test="${!empty pois}">
          <c:set var="poi" value="${pois[0]}" scope="request"/>
          <wcf:getData type="com.ibm.commerce.marketing.facade.datatypes.MarketingSpotDataType" var="marketingSpotData" expressionBuilder="findByMarketingSpotName">
             <wcf:param name="DM_EmsName" value="TabletEFlyerESpot"/>
             <wcf:param name="pointOfInterest" value="${poi.pointOfInterestIdentifier.externalIdentifier.identifier}"/>
             <wcf:param name="region" value="${poi.regionID}"/>
             <wcf:param name="DM_locationContentUrlPrefix" value="${jspStoreDir}tablet/ShoppingArea/EFlyerSection/"/>
             <wcf:param name="DM_locationContentUrlSuffix" value=".jsp"/>
             <wcf:param name="DM_skipLocationContentUrlValidation" value="false"/>
             <wcf:param name="DM_locationContentValidation" value="file"/>
          </wcf:getData>
          <c:forEach var="activityData" items="${marketingSpotData.baseMarketingSpotActivityData}">
             <c:if test="${activityData.dataType == 'UrlContent'}">
                <c:set var="EFlyerURL" value="${activityData.uniqueID}"/>
             </c:if>
          </c:forEach>
       </c:if>
    

    La variable JSTL EFlyerURL debe contener el URL al archivo JSP del folleto electrónico, si se encuentra uno. A continuación, utilice marcado como <c:import url="${EFlyerURL}"/> para visualizar el archivo JSP del folleto electrónico.