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.
- 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>
- 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>
- 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.