Configuration de la mise en cache de fragment JSP basée sur le comportement d'une activité
Vous pouvez améliorer les performances par la mise en cache d'un emplacement e-Marketing de la vitrine sur la base du comportement d'une activité, y compris les activités Web et le contenu marketing.
Avant de commencer
- Activez la fonction d'amélioration de magasin.
Pourquoi et quand exécuter cette tâche
Procédure
-
Ouvrez le fichier de configuration
cachespec.xmldans le répertoire suivant :- workspace_dir/crs-web/WebContent/WEB-INF/
-
Pour chaque fragment de code JSP d'emplacement e-Marketing, incluez une entrée de cache similaire au code suivant.
Assurez-vous que les éléments suivants sont spécifiés :
- La propriété
do-not-consumeesttrue. - La propriété
do-not-cacheesttrue. metadatageneratorest spécifié commecom.ibm.commerce.marketing.cache.EMarketingSpotMetaDataGenerator.
<cache-entry> <class>servlet</class> <name>/Madisons/Snippets/Marketing/ESpot/ContentAreaESpot.jsp</name> <property name="do-not-consume">true</property> <property name="do-not-cache">true</property> <property name="save-attributes">false</property> <cache-id> <component id="emsName" type="parameter"> <required>false</required> </component> <component id="DC_storeId" type="attribute"> <required>false</required> </component> <component id="DC_lang" type="attribute"> <required>false</required> </component> <metadatagenerator>com.ibm.commerce.marketing.cache.EMarketingSpotMetaDataGenerator</metadatagenerator> </cache-id> </cache-entry> - La propriété
-
Incluez les entrées de cache définies dans le fichier
cachespec.xmlqui se trouve dans le répertoire suivant :
WCDE_installdir\samples\dynacache\marketing\
Remarque : Ces informations s'appliquent uniquement aux versions antérieures à HCL Commerce version 9.1.13.0. A partir de HCL Commerce version 9.1.13.0, les règles de cache de la commande marketing sont déplacées vers le fichier cachespec.xml contenu dans le fichier InitializationServlet.war utilisé par le serveur de transactions. Si les règles de cache marketing ont été introduites précédemment à l'aide d'une personnalisation manuelle, elles doivent être supprimées afin que les règles InitializationServlet soient prioritaires.
Remarque : Si vous avez préalablement inclus ces entrées de cache, la seule modification requise est l'inclusion de la méthodegetMarketingSpotBehavioren tant que composant cache dans les entrées de cache de la commandeFilterXXXCmdImpl.<!-- NEW: for e-Marketing Spot caching --> <component id="getMarketingSpotBehavior" type="method"> <value>1</value> </component> -
Enregistrez et fermez le fichier
cachespec.xml. -
Dans chaque fragment de code JSP d'un emplacement e-Marketing, recherchez le code suivant :
<% /* Get the e-Marketing Spot name from the request parameters, and decode it in case it has been encoded. */ String emsName = request.getParameter("emsName"); if (emsName != null) { emsName = java.net.URLDecoder.decode(emsName, "UTF-8"); request.setAttribute("emsName", emsName); }Ajoutez le code suivant après ce code.Object DM_marketingSpotBehavior = request.getAttribute("DM_emsBehavior-" + emsName); if (DM_marketingSpotBehavior != null) {request.setAttribute("DM_marketingSpotBehavior", DM_marketingSpotBehavior.toString());} -
Dans chaque fragment de code JSP d'un emplacement e-Marketing, recherchez le code suivant :
<wcf:getData type="com.ibm.commerce.marketing.facade.datatypes.MarketingSpotDataType" var="marketingSpotDatas" expressionBuilder="findByMarketingSpotName"> <%-- the name of the e-Marketing Spot --%> <wcf:param name="DM_EmsName" value="${emsName}" />Ajoutez le code suivant après ce code.<wcf:param name="DM_marketingSpotBehavior" value="${requestScope.DM_marketingSpotBehavior}"/> -
Dans chaque fragment de code JSP d'un emplacement e-marketing, recherchez la fin de la balise
<getData>:</wcf:getData> </c:otherwise> </c:choose>Ajoutez le code suivant après ce code.
En ajoutant ce code, le fragment JSP peut utiliser la balise<wcf:eMarketingSpotCache marketingSpotData="${marketingSpotDatas}" contentDependencyName="contentId" catalogEntryDependencyName="productId" categoryDependencyName="categoryId" />eMarketingSpotCachepour déterminer dynamiquement si le fragment JSP peut être mis en cache. Pour plus d'informations sur cette balise, voir Balise : eMarketingSpotCache.Remarque : Définissez les valeurs decatalogEntryDependencyNameetcategoryDependencyNameen fonction des noms utilisés dans les règles d'invalidation du fichiercachespec.xmlpour invalider les produits et les catégories. - Enregistrez et fermez le fichier de fragment de code JSP de chaque emplacement e-Marketing.
-
Si le filtrage est activé afin de rendre une action dynamique, il est nécessaire de configurer le fichier
wc-admin-component.xmlpour définir l'action en tant que dynamique. Pour plus d'informations sur la configuration du fichierwc-admin-component.xml, voir Modification des propriétés dans le fichier de configuration du composant marketing (wc-admin-component.xml).<!-- E-MARKETING SPOT CACHING BEHAVIOR --> <!-- Setting to specify that the Display Catalog Entry Action should be considered dynamic. This means the marketing engine should evaluate if the catalog entry can be displayed to each individual customer. For example, you would set this if the catalog entry filter is enabled to remove recommendations in the customer's shopping cart, purchase history, or based on inventory level. Set the value to 1 if the action behavior is dynamic. --> <_config:property name="catalogEntryActionBehavior" value="0"/> <!-- Setting to specify that the Display Category Action should be considered dynamic. This means the marketing engine should evaluate if the category can be displayed to each individual customer. Set the value to 1 if the action behavior is dynamic. --> <_config:property name="categoryActionBehavior" value="0"/> <!-- Setting to specify that the Display Content Action should be considered dynamic. This means the marketing engine should evaluate if the catalog entry can be displayed to each individual customer. For example, you would set this if the content filter is enabled to remove recommendations if the customer is not in a segment associated with a promotion, or is not entitled to the promoted products. Set the value to 1 if the action behavior is dynamic. --> <_config:property name="contentActionBehavior" value="0"/>Le comportement des filtres correspondants est spécifié dans le tableau ci-après :Objet Filtre Comportement Entrée de catalogue removeIfNoInventory Dépend du besoin métier – définir sur dynamic s'il évalue chaque demande. Sinon, ce filtre peut dépendre d'un dépassement du délai d'attente de page. Entrée de catalogue removeIfExistInShopcart Dynamic – à évaluer pour chaque client Entrée de catalogue removeIfExistInPurchaseHistory Dynamic – à évaluer pour chaque client Entrée de catalogue removeIfPastEndDate Dépend du besoin métier – définir sur dynamic s'il évalue chaque demande. Sinon, ce filtre peut dépendre d'un dépassement du délai d'attente de page. Entrée de catalogue removeIfNotInCurrentCatalog Static Catégorie removeIfNotInCurrentCatalog Static Contenu removeIfPromotionNotAvailable Dépend du besoin métier – définir sur dynamic s'il évalue chaque demande. Sinon, ce filtre peut dépendre d'un dépassement du délai d'attente de page. Le contenu removeIfPromotionBeforeStartDate Dépend du besoin métier – définir sur dynamic s'il évalue chaque demande. Sinon, ce filtre peut dépendre d'un dépassement du délai d'attente de page. Contenu removeIfMemberNotInPromotionSegment Dynamic – à évaluer pour chaque client Contenu removeIfPromotionNotEntitledCatalogEntryOrCategory Dynamic – à évaluer pour chaque client - Facultatif :
Certains paramètres facultatifs pour un emplacement e-Marketing peuvent être configurés comme suit :
- Par défaut, si le fichier JSP d'un emplacement e-Marketing inclus dans une page mise en cache par un servlet, le fichier JSP de l'emplacement e-Marketing de type statique est consommé par la page parente. Si vous voulez toujours mettre en cache le fichier JSO d'emplacement e-marketing séparément, définissez un paramètre
cacheWithParentsur la valeurfalse. - Si un emplacement e-marketing spécifique doit être spécifié en tant que static ou dynamic sans reposer sur la détermination automatique, transmettez le paramètre
marketingSpotBehaviorlors de l'importation du fragment de code JSP de l'emplacement e-marketing. Spécifiez la valeur0pour le comportement statique et la valeur1pour le comportement dynamique. Le Responsable marketing peut aussi préciser si le contenu du marketing est statique ou dynamique dans le Centre de gestion. Pour plus d'informations, voir Création d'un contenu marketing à afficher sur des pages de magasin. - Le délai d'attente défini pour le fragment mis en cache est la date/heure la plus proche des dates de début ou de fin d'une activité planifiée pour l'emplacement e-Marketing après la date/heure en cours. Ce délai n'est défini que si la date/heure est antérieure au délai en cours de la page. Généralement, le délai est défini dans le fichier
cachespec.xml, mais il peut aussi être spécifié lors de l'inclusion du fichier JSP de l'emplacement e-marketing.
Voici un exemple de définition des paramètres facultatifs pour un emplacement e-Marketing. Le paramètre
cacheWithParentest défini en cache pour le fichierContentAreaESpot.jspséparément de la page d'accueil. Le paramètremarketingSpotBehaviorest configuré de sorte que l'emplacement est toujours en cache et il ne vérifie pas le comportement des activités au niveau de l'emplacement e-marketing. Le paramètrepageTimeLimitest configuré de sorte que la limite de temps par défaut est définie sur une heure.<c:import url="${jspStoreDir}Snippets/Marketing/ESpot/ContentAreaESpot.jsp"> <c:param name="emsName" value="HomePageRow1Ads" /> <c:param name="cacheWithParent" value="false" /> <c:param name="marketingSpotBehavior" value="0" /> <c:param name="pageTimeLimit" value="3600" /> </c:import> - Par défaut, si le fichier JSP d'un emplacement e-Marketing inclus dans une page mise en cache par un servlet, le fichier JSP de l'emplacement e-Marketing de type statique est consommé par la page parente. Si vous voulez toujours mettre en cache le fichier JSO d'emplacement e-marketing séparément, définissez un paramètre
-
Si vous avez ajouté des déclencheurs de base de données pour regénérer automatiquement le registre Marketing après la propagation des données, supprimez les déclencheurs avec l'invalidation
WCR+CampaignInitiativeCache. L'effacement du registreCampaignInitiativeCachen'est plus requis.