Exemple : Ajout d'un emplacement e-marketing basé sur l'emplacement dans un fichier JSP
Suivez cet exemple si vous souhaitez ajouter un emplacement e-marketing basé sur l'emplacement dans le fichier JSP, à utiliser avec les services basés sur l'emplacement.
- Mettez à jour le fichier JSP pour connaître l'emplacement géographique actuel du client. Vous pouvez y parvenir à l'aide de l'API de géolocalisation HTML. Par exemple :
<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> - Mettez à jour le fichier JSP pour trouver le point d'intérêt correspondant à l'emplacement géographique. Par exemple :
<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> - Ajoutez un emplacement e-marketing basé sur l'emplacement au fichier JSP avec les données de point d'intérêt. Lorsqu'une recommandation de contenu basée sur l'emplacement correspondante existe, cet emplacement e-marketing renvoie l'URL du contenu. Par exemple :
<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
EFlyerURLdoit contenir l'URL du fichier JSP du prospectus électronique, s'il y en a une. Ensuite, utilisez le marquage tel que<c:import url="${EFlyerURL}"/>pour afficher le fichier JSP du prospectus électronique.