Terminez cette tâche pour migrer votre magasin Aurora IBM Websphere Commerce Version 7 Feature Pack 6 vers HCL Commerce Version 9.1. Après la migration, votre magasin restera un magasin local.
Le processus de migration de magasin implique d'exporter les ressources suivantes sous forme de fichiers d'archivage, puis d'importer ces derniers :
- Les ressources de magasin statiques personnalisées
- Le code Java personnalisé
- Fichiers JSP personnalisés
Les magasins qui sont migrés de
IBM Websphere Commerce Version 7 ou de
IBM Websphere Commerce Version 8 à
HCL Commerce Version 9.1 sont déployés sur le
Transaction server, où ils traitent le trafic en direct. Les magasins créés sur
HCL Commerce Version 9.1 suivent le nouveau modèle de programmation et sont déployés sur un
Store server distinct. Pour plus d'informations sur la migration ou la création d'un magasin sur
HCL Commerce Version 9.1, voir :
Procédure
-
Exportez le projet Web dynamique de magasins à partir d'un espace de travail d'environnement de développement Feature Pack 6.
-
Ouvrez l'espace de travail d'environnement de développement Feature Pack 6 puis la perspective J2EE.
-
Dans la vue Explorateur d'entreprise, cliquez avec le bouton droit sur le projet Stores, puis cliquez sur .
La fenêtre Exporter s'affiche.
- Développez le dossier General, puis cliquez sur .
- Sous le répertoire Stores, décochez les options relatives aux magasins puis sélectionnez les sous-répertoires suivants.
- Vérifiez que l'option Créer uniquement les répertoires sélectionnés est sélectionnée.
- Cliquez sur Parcourir et définissez un chemin où le fichier d'archive doit être exporté.
Par exemple, c:\stores.zip.
- Sous Options, assurez-vous que l'option d'exportation suivante est définie.
- Créer uniquement les répertoires sélectionnés
-
Cliquez sur Terminer.
Un fichier
Stores.zip est créé et est prêt à être importé dans votre environnement de développement
HCL Commerce Version 9.
Important : Créez une sauvegarde de cette archive, car vous aurez besoin de certains fichiers de configuration dans la migration Struts 2 ultérieurement.
- Copiez le fichier Stores.zip exporté dans votre environnement de développement HCL Commerce Version 9.
-
Importez votre projet personnalisé.
-
Ouvrez l'espace de travail d'environnement de développement HCL Commerce Version 9 puis la perspective Java EE.
-
Dans la vue Explorateur d'entreprise, cliquez avec le bouton droit sur le projet Stores, puis cliquez sur .
La fenêtre Importer s'affiche.
-
Développez le dossier General, puis cliquez sur .
-
Cliquez sur Parcourir, puis sélectionnez le fichier Stores.zip que vous avez exporté depuis votre environnement de développement Feature Pack 6.
-
Cochez la case Ecraser les ressources existantes sans avertissement.
-
Cliquez sur Terminer.
-
Copiez manuellement tous les répertoires et fichiers dans le chemin suivant depuis votre environnement de développement Feature Pack 6 vers le même chemin de l'environnement de développement HCL Commerce Version 9.1 :
workspace_dir/WC/properties/tools/stores/store_dir/
Où store_dir est le nom de répertoire du magasin.
- Examinez les fichiers suivants pour vous assurer que la configuration de votre base de données est correcte. Modifiez chaque fichier si nécessaire.
- WCDE_installdir/workspace/WC/META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/deployments/defaultApp/resources.xml
- Liberty_installdir/usr/servers/searchServer/configDropins/overrides/datasources.xml
- WCDE_installdir/workspace/WC/META-INF/ibmconfig/cells/defaultCell/security.xml
- Supprimez le filtre inexistant de votre fichier web.xml.
- Ouvrez le fichier suivant en mode édition.
- WCDE_installdir/workspace/Stores/WebContent/WEB-INF/web.xml
- Supprimez le bloc de code suivant.
<filter>
</icon>
<filter-name>LikeMindsFilter</filter-name>
<filter-class>com.ibm.commerce.likeminds.filter.LikeMindsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LikeMindsFilter</filter-name>
<servlet-name>Stores Request Servlet</servlet-name>
</filter-mapping>
- Enregistrez et fermez le fichier.
-
Supprimez la configuration de magasin à distance de votre fichier de fondation wc-component.xml.
-
Ouvrez le fichier suivant en mode édition.
- workspace_dir/WC/xml/config/com.ibm.commerce.foundation/wc-component.xml
-
Recherchez et supprimez le
configgrouping nommé RemoteStoreConfiguration.
Par exemple, supprimez le bloc de code suivant :
<_config:configgrouping name="RemoteStoreConfiguration">
<!-- value to remote store web host name -->
<_config:property name="wc.store.remote.webHostName" value="store"/>
<!-- value to remote store web host HTTP port number -->
<_config:property name="wc.store.remote.webNonSSLPort" value="8080"/>
<!-- value to remote store web host HTTPS port number -->
<_config:property name="wc.store.remote.webSSLPort" value="8443"/>
<!-- value to remote store context root -->
<_config:property name="wc.store.remote.webContextPath" value="/shop"/>
<!-- value to remote store preview context root -->
<_config:property name="wc.store.remote.previewContextPath" value="/webapp/remote/preview/servlet"/>
<!-- value to kafka servers connection string -->
<_config:property name="wc.store.remote.kafka" value=""/>
<!-- value to kafka servers topic prefix -->
<_config:property name="wc.store.remote.kafka.topicPrefix" value="sampleprefix"/>
<!-- value to remote store web alias -->
<_config:property name="wc.store.remote.webAlias" value="/wcsstore"/>
<!-- value to remote store app host name (used for invoking email JSPs in remote store) -->
<_config:property name="wc.store.remote.appHostName" value="localhost"/>
<!-- value to remote store app host HTTPS port number (used for invoking email JSPs in remote store) -->
<_config:property name="wc.store.remote.appSSLPort" value="8443"/>
</_config:configgrouping>
-
Enregistrez et fermez le fichier.
Avertissement : Cette modification devra être effectuée une nouvelle fois après la mise à niveau de l'environnement de développement vers un groupe de correctifs plus élevé, car cette procédure va écraser le fichier wc-component.xml. Le fichier qui vient d'être modifié devra alors être déployé dans l'environnement de production mis à niveau.
-
Mettez à jour votre fichier struts-config.xml.
Dans HCL Commerce Version 9.1, les URL basées sur le protocole HTTP ne sont plus prises en charge, ce qui peut causer des problèmes à certains utilisateurs pour lesquels les pages de catégorie ne chargent pas après leur connexion à votre magasin.
-
Ouvrez le fichier /Stores/WebContent/WEB-INF/struts-config.xml pour l'éditer.
-
Localisez la propriété suivante :
<set-property property="https" value="0:0"/>
-
Mettez à jour
value de "0:0" à "0:1".
Votre code mis à jour apparaît comme suit.
<set-property property="https" value="0:1"/>
-
Enregistrez et fermez le fichier.
-
Dans HCL Commerce Version 9.1, tous les services utilisent HTTPS. Le projet de magasins que vous avez importé dans HCL Commerce Version 9.1 peut toujours utiliser des valeurs HTTP. Passez en revue les fichiers suivants et remplacez les valeurs
value="http: par value="https:.
Remarque : Ignorez tous les fichiers de la liste qui n'existent pas dans votre environnement.
- /Stores/WebContent/SitemapIndex.jsp
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/Common/EnvironmentSetup.jspf
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/EmailTemplates/Common/eMarketingSpotDisplay.jsp
- /Stores/WebContent/AuroraStorefrontAssetStore/Common/EnvironmentSetup.jspf
- /Stores/WebContent/AuroraStorefrontAssetStore/EmailTemplates/Common/eMarketingSpotDisplay.jsp
- /Stores/WebContent/Widgets_701/Common/EnvironmentSetup.jspf
- /Stores/WebContent/Widgets_801/Common/EnvironmentSetup.jspf
- Convertissez les valeurs numériques en valeurs de chaîne en utilisant la fonction
fn:trim () dans vos balises JSP <c:if test>.
Les classes de base dans la bibliothèque de balises JSP diffèrent entre Feature Pack 6 et HCL Commerce Version 9.1. Si vos fichiers JSP Feature Pack 6 utilisent la balise <c:if test> pour évaluer les expressions, vous devez mettre à jour ces fichiers JSP dans HCL Commerce Version 9.1 pour utiliser la fonction fn:trim (). Dans certains de vos fichiers JSP, vous pouvez comparer une chaîne à un nombre. La logique sous-jacente de HCL Commerce Version 9.1 tente de convertir la chaîne en un nombre avant de les comparer. S'il existe des caractères non numériques dans la chaîne, une erreur de conversion est signalée. La fonction fn:trim () convertit de force des chaînes en nombres avant qu'elles ne soient comparées par la logique de HCL Commerce Version 9.1.
L'exemple de code suivant montre la balise
<c:if test> sans la fonction
fn:trim () dans le fichier
/Stores/WebContent/AuroraStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp :
<c:if test="${childWidget.slot.internalSlotId == slotNumber && !foundCurrentSlot}">
L'exemple de code suivant montre la balise
<c:if test> avec la fonction
fn:trim () ajoutée dans le fichier
/Stores/WebContent/AuroraStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp :
<c:if test="${childWidget.slot.internalSlotId == fn:trim(slotNumber) && !foundCurrentSlot}">
Remarquez comment la fonction
fn:trim () est appliquée à la valeur
slotNumber.
-
A partir de votre environnement de développement HCL Commerce Version 9.1, ouvrez les fichiers JSP Page de résultats de recherche suivants.
- /Stores/WebContent/Aurora/Container/SubCategoryPageContainerWithTabs.jsp
- /Stores/WebContent/AuroraStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp
- Localisez la ligne de code suivante dans chaque fichier :
<c:if test="${childWidget.slot.internalSlotId == slotNumber && !foundCurrentSlot}">
- Mettez à jour les lignes de code en ajoutant la fonction
fn:trim () aux valeurs slotNumber, comme illustré dans l'exemple de code suivant.
<c:if test="${childWidget.slot.internalSlotId == fn:trim(slotNumber) && !foundCurrentSlot}">
- Sauvegardez et fermez les fichiers.
- Ouvrez les fichiers JSP Page de détails de produit suivants.
- /Stores/WebContent/Aurora/Container/ProductPageContainer.jsp
- /Stores/WebContent/Aurora/Container/ProductPageContainerFullWidth.jsp
- /Stores/WebContent/AuroraStorefrontAssetStore/Container/ProductPageContainer.jsp
- /Stores/WebContent/AuroraStorefrontAssetStore/Container/ProductPageContainerFullWidth.jsp
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/Container/ProductPageContainer.jsp
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/Container/ProductPageContainerFullWidth.jsp
- Localisez la ligne de code suivante dans chaque fichier :
<c:if test="${childWidget.slot.internalSlotId == slotNumber && !foundCurrentSlot}">
- Mettez à jour les lignes de code en ajoutant la fonction
fn:trim () aux valeurs slotNumber, comme illustré dans l'exemple de code suivant.
<c:if test="${childWidget.slot.internalSlotId == fn:trim(slotNumber) && !foundCurrentSlot}">
- Sauvegardez et fermez les fichiers.
- Ouvrez le fichier JSP suivant Page Enregistrement.
- /Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.AddressForm/AddressForm_UI.jspf
- /Stores/WebContent/Widgets_801/com.ibm.commerce.store.widgets.AddressForm/AddressForm_UI.jspf
- /Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.OrganizationUserInfo/UserInfoUI/UserDetailsForm_UI.jspf
- /Stores/WebContent/Widgets_801/com.ibm.commerce.store.widgets.OrganizationUserInfo/UserInfoUI/UserDetailsForm_UI.jspf
- /Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.OrganizationUserInfo/UserInfoUI/UserDetailsDisplay_Data.jspf
- /Stores/WebContent/Widgets_801/com.ibm.commerce.store.widgets.OrganizationUserInfo/UserInfoUI/UserDetailsDisplay_Data.jspf
- Localisez la ligne de code suivante.
<c:if test="${language.localeName == preferredLanguage || language.languageId == preferredLanguage }">
- Mettez à jour la ligne de code en ajoutant la fonction
fn:trim () à la valeur slotNumber, comme illustré dans l'exemple de code suivant.
<c:if test="${language.localeName == fn:trim(preferredLanguage) || language.languageId == preferredLanguage }">
- Enregistrez et fermez le fichier.
- Mettez à jour les définitions associées à l'EJB dans votre fichier GlobalLoginOrganizationAndContract_UI.jspf.
- Ouvrez le fichier suivant en mode édition.
- /Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.GlobalLogin/GlobalLoginOrganizationAndContract_UI.jspf
- Remplacez toutes les instances de
organizationIdInEJBType par organizationId.
- Enregistrez et fermez le fichier.
-
Feature Pack 6 et HCL Commerce Version 9.1 diffèrent dans la façon dont ils génèrent et analysent les listes de SKU dans les données JSON. Pour tenir compte de cette différence, vous devez mettre à jour des fichiers Java Server Page (JSP) et Java Server Page Fragment (JSPF) spécifiques.
-
Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/Aurora/ShoppingArea/CatalogSection/CatalogEntrySubsection/ProductDisplay.jsp
- /Stores/WebContent/AuroraStorefrontAssetStore/ShoppingArea/CatalogSection/CatalogEntrySubsection/ProductDisplay.jsp
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/ShoppingArea/CatalogSection/CatalogEntrySubsection/ProductDisplay.jsp
- /Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.PDP_DefiningAttributes/DefiningAttributes_Data.jspf
- /Stores/WebContent/Aurora/Widgets/CompareProduct/CompareProduct_UI.jspf
- /Stores/WebContent/AuroraStorefrontAssetStore/Widgets/CompareProduct/CompareProduct_UI.jspf
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/Widgets/CompareProduct/CompareProduct_UI.jspf
-
Dans chaque fichier, localisez les lignes suivantes.
<c:set var="replaceStr" value='\\\\"'/>
<c:set var="replaceStr01" value="\\\\'"/>
-
Mettez à jour la valeur de
value='\\\\"' à value='\\"'.
L'exemple suivant montre comment le code se présente après votre mise à jour.
<c:set var="replaceStr" value='\\"'/>
<c:set var="replaceStr01" value="\\'"/>
-
Sauvegardez et fermez les fichiers.
-
Mettez à jour votre fichier RegistrationUpdateCommonPage.jsp pour résoudre une erreur d'analyse HCL Commerce Version 9.1 potentielle qui se produit lorsque la page Informations personnelles charge.
-
Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/Aurora/UserArea/AccountSection/RegistrationSubsection/RegistrationUpdateCommonPage.jsp
- /Stores/WebContent/AuroraStorefrontAssetStore/UserArea/AccountSection/RegistrationSubsection/RegistrationUpdateCommonPage.jsp
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/UserArea/AccountSection/RegistrationSubsection/RegistrationUpdateCommonPage.jsp
-
Autour de la ligne 40, ajoutez le bloc de code suivant à la section variable.
<c:set var="personSession" value="${requestScope.personSession}"/>
<c:if test="${empty personSession || personSession==null}">
<wcf:rest var="personSession" url="store/{storeId}/person/{personId}" scope="request">
<wcf:var name="storeId" value="${WCParam.storeId}" encode="true"/>
<wcf:var name="personId" value="${userId}" encode="true"/>
</wcf:rest>
</c:if>
-
Autour de la ligne 120, recherchez la ligne de code suivante.
<fmt:param><fmt:formatDate type="both" dateStyle="long" value="${CommandContext.user.lastSessionInEJBType}"/></fmt:param
-
Mettez à jour la ligne de code avec ce qui suit.
<fmt:param><c:out value="${personSession.lastSession}"/></fmt:param>
-
Sauvegardez et fermez les fichiers.
- Mettez à jour des fichiers JavaScript (JS) et feuille de style en cascade (CSS) spécifiques pour justifier les erreurs lorsqu'un utilisateur annule les commandes récurrentes et les commandes d'abonnements.
- Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/Aurora/javascript/UserArea/MyAccountDisplay.js
- /Stores/WebContent/AuroraStorefrontAssetStore/javascript/UserArea/MyAccountDisplay.js
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/javascript/UserArea/MyAccountDisplay.js
- Autour de la ligne 719, ajoutez la ligne de code suivante.
params["orderId"] = "null";
L'exemple suivant montre comment le code se présente après votre mise à jour.
/*For Handling multiple clicks. */
if(!submitRequest()){
return;
}
cursor_wait();
var params = [];
params["orderId"] = "null";
params["subscriptionId"] = subscriptionId;
params["URL"] = "";
params["storeId"] = MyAccountServicesDeclarationJS.storeId;
params["catalogId"] = MyAccountServicesDeclarationJS.catalogId;
params["langId"] = MyAccountServicesDeclarationJS.langId;
wc.service.invoke("AjaxCancelSubscription", params);
- Sauvegardez et fermez les fichiers.
- Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/Aurora/css/legacy1_1.css
- /Stores/WebContent/Aurora/css/legacy1_1_rtl.css
- /Stores/WebContent/AuroraStorefrontAssetStore/css/legacy1_1.css
- /Stores/WebContent/AuroraStorefrontAssetStore/css/legacy1_1_rtl.css
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/css/legacy1_1.css
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/css/legacy1_1_rtl.css
- Autour de la ligne 3750, recherchez la ligne de code suivante.
background-image: url('../images/colors/color1/popup_center_tile_sm.png');
- Modifiez le code comme suit.
background-image: url('../images/colors/color1/popup_center_tile_mini.png');
- Sauvegardez et fermez les fichiers.
- Mettez à jour des fichiers JavaScript (JS), Java Server Page (JSP) et JavaScript Page Fragment (JSPF) pour prendre en compte les erreurs qui peuvent être rencontrées lors de l'utilisation de la fonction Aperçu du magasin ou dans la vitrine.
- Corrigez un problème où les descriptions de produits de marchandisage associées ne s'affichent pas correctement dans la vitrine.
- Ouvrez le fichier suivant en mode édition.
- /Stores/WebContent/Widgets_701/Common/ProductDescription/ProductDescription_Data.jspf
- Identifiez la section de code suivante.
<c:choose> <c:when test="${!empty param.hasAssociations}"> <c:set var="hasAssociations" value="${param.hasAssociations}"/> </c:when> </c:choose>
- Ajoutez les lignes suivantes avant et après cette section.
<c:set var="hasAssociations" value="false"/>
<c:choose>
<c:when test="${!empty param.hasAssociations}">
<c:set var="hasAssociations" value="${param.hasAssociations}"/>
</c:when>
</c:choose>
<c:if test="${hasAssociations == 'true'}">
<c:remove var="catalogEntryDetails" />
</c:if>
- Enregistrez et fermez le fichier.
- Corrigez un dysfonctionnement du site rencontré après l'application d'une promotion lors de l'utilisation de la fonction Aperçu du magasin.
- Ouvrez le fichier suivant en mode édition.
- /Stores/WebContent/AuroraStorefrontAssetStore/javascript/CommonControllersDeclaration.js
- Localisez la ligne de code suivante.
dojo.eval(dojo.byId('addToRequisitionListScript_' + orderItem.value).innerHTML);
- Encapsuler la ligne dans l'instruction de condition suivante.
if(dojo.byId('addToRequisitionListScript_' + orderItem.value) != null)
{ dojo.eval(dojo.byId('addToRequisitionListScript_' + orderItem.value).innerHTML); }
- Localisez la ligne de code suivante.
dojo.eval('addReqListsJS' + orderItem.value + '.setCatEntryId("' + dojo.byId('catalogId_' + (orderItem.id.substring(orderItem.id.indexOf('_') + 1))).value + '");');
- Encapsuler la ligne dans l'instruction de condition suivante.
if(dojo.byId('addReqListsJS_' + orderItem.value) != null)
{ dojo.eval('addReqListsJS' + orderItem.value + '.setCatEntryId("' + dojo.byId('catalogId_' + (orderItem.id.substring(orderItem.id.indexOf('_') + 1))).value + '");'); }
- Enregistrez et fermez le fichier.
- Corrigez un cas extrême de fusion du panier qui peut entraîner une page vide après la connexion et le paiement d'un panier.
- Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/AuroraStorefrontAssetStore/Snippets/Order/Cart/CheckoutLogon.jsp
- /Stores/WebContent/AuroraStorefrontAssetStore/javascript/CheckoutArea/ShipmodeSelectionExt.js
- Localisez la ligne de code suivante dans CheckoutLogon.jsp.
<form method="post" name="AjaxLogon" id="AjaxLogon" action="Logon">
- Ajoutez la ligne suivante sous la ligne.
<form method="post" name="AjaxLogon" id="AjaxLogon" action="Logon">
<input type="hidden" name="mergeCart" value="true" id="WC_RememberMeLogonForm_FormInput_mergeCart_In_AjaxLogon_1"/>
- Dans ShipmodeSelectionExt.js, localisez la ligne de code suivante dans la méthode
guestShopperLogon.document.AjaxLogon.URL.value = completeOrderMoveURL;
- Remplacez la ligne par ce qui suit.
document.AjaxLogon.URL.value = "&URL="+afterOrderCalculateURL;
- Sauvegardez et fermez les fichiers.
- Facultatif : Corrigez les fichiers de propriétés de message d'erreur par défaut pour vous assurer que des messages d'erreur incorrects ne s'affichent pas dans la vitrine.
Cette procédure n'est requise que si votre site n'utilise pas de messages d'erreur personnalisés.
- Ouvrez les fichiers suivants et toutes les langues supplémentaires que votre magasin utilise pour les modifier.
- WCDE_installdir/workspace/Stores/WebContent/WEB-INF/classes/AuroraStorefrontAssetStore/storeErrorMessages.properties
- WCDE_installdir/workspace/Stores/WebContent/WEB-INF/classes/AuroraStorefrontAssetStore/storeErrorMessages_en_US.properties
- WCDE_installdir/workspace/Stores/WebContent/WEB-INF/classes/AuroraB2BStorefrontAssetStore/storeErrorMessages.properties
- WCDE_installdir/workspace/Stores/WebContent/WEB-INF/classes/AuroraB2BStorefrontAssetStore/storeErrorMessages_en_US.properties
- Supprimez le message suivant des fichiers de propriétés des messages d'erreur B2B.
_ERR_CMD_INVALID_PARAM = An error occurred during registration. Please try again later or contact the store for assistance.
- Recherchez et remplacez les messages incorrects.
- Localisez les deux messages suivants dans tous les fichiers.
_ERR_CMD_INVALID_PARAM.5030 = Type a name in the Nickname field.
_ERR_NICKNAME_ALREDY_EXIST.5040 = The nickname you entered already exists. Type another name in the Nickname field and try again.
- Remplacez les messages pour échanger les références à
nickname dans les messages par recipient._ERR_CMD_INVALID_PARAM.5030 = Type a name in the Recipient field.
_ERR_NICKNAME_ALREDY_EXIST.5040 = The recipient you entered already exists. Type another name in the Recipient field and try again.
- Sauvegardez et fermez tous les fichiers.
- Mettez à jour vos fichiers Java Server Page Fragment (JSPF) spécifiques afin que les utilisateurs puissent cliquer sur le lien d'abonnement sur votre vitrine.
- Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/Aurora/Common/JSTLEnvironmentSetupExtForRemoteWidgets.jspf
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/Common/JSTLEnvironmentSetupExtForRemoteWidgets.jspf
- /Stores/WebContent/AuroraStorefrontAssetStore/Common/JSTLEnvironmentSetupExtForRemoteWidgets.jspf
- /Stores/WebContent/Widgets_701/Common/JSTLEnvironmentSetupExtForRemoteWidgets.jspf
- Dans chacun des fichiers, recherchez et supprimez le code suivant.
<c:when test="${!empty restNonSSLPort}">
<c:set var="restURLPort" value="${restNonSSLPort}" scope="request"/>
<c:set var="restURLScheme" value="http" scope="request"/>
</c:when>
- Sauvegardez et fermez les fichiers.
- Mettez à jour les fichiers JavaScript (JS) pour résoudre un problème de notification par courrier électronique pour la création de la liste de présélection.
- Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/javascript/UserArea/MultipleWishLists.js
- /Stores_v7/WebContent/AuroraStorefrontAssetStore/javascript/UserArea/MultipleWishLists.js
- Dans chaque fichier, localisez les lignes suivantes.
// maps email input to param required by AjaxGiftListAnnouncement
form.recipientEmail.value = form.recipient.value;
form.senderName.value = form.sender_name.value;
- Ajoutez la ligne suivante à cette section de chaque fichier.
// maps email input to param required by AjaxGiftListAnnouncement
form.recipientEmail.value = form.recipient.value;
form.recipient.value = "";
form.senderName.value = form.sender_name.value;
- Enregistrez et fermez les deux fichiers.
- Mettez à jour vos fichiers Java Server Page Fragment (JSPF) de paiement et de facturation pour gérer le mode de paiement Apple Pay.
- Ouvrez les fichiers suivants en mode édition.
- /Stores/WebContent/Aurora/ShoppingArea/CheckoutSection/CheckoutPaymentsAndBillingAddress.jspf
- /Stores/WebContent/AuroraStorefrontAssetStore/ShoppingArea/CheckoutSection/CheckoutPaymentsAndBillingAddress.jspf
- /Stores/WebContent/AuroraB2BStorefrontAssetStore/ShoppingArea/CheckoutSection/CheckoutPaymentsAndBillingAddress.jspf
- Autour de la ligne 500, recherchez le code suivant.
<c:if test="${currentPaymentMethodName != 'PayInStore' && currentPaymentMethodName
!= 'CompatiblePayment' && (currentPaymentMethodName ne 'SimplePunchout' or (currentPaymentMethodName
eq 'SimplePunchout' and punchoutPaymentAllowed))}">
- Mettez à jour le code en ajoutant la méthode
currentPaymentMethodName != 'ApplePay'.
L'exemple suivant montre comment le code se présente après votre mise à jour.
<c:if test="${currentPaymentMethodName != 'ApplePay' && currentPaymentMethodName
!= 'PayInStore' && currentPaymentMethodName != 'CompatiblePayment' &&
(currentPaymentMethodName ne 'SimplePunchout' or (currentPaymentMethodName eq 'SimplePunchout'
and punchoutPaymentAllowed))}">
- Sauvegardez et fermez les fichiers.
-
Mettez à jour votre table STORECONF avec vos ID de magasin de sites étendus. Répétez ce processus sur vos bases de données d'environnement de développement et de production.
-
Ouvrez une invite de commande vers votre base de données HCL Commerce Version 9.1.
-
Exécutez la requête de sélection SQL suivante pour récupérer les ID de magasin pour votre type de magasin spécifique :
select store_id from store where directory in ('store_name');
Où
- store_name
- Le nom de base de votre magasin, par exemple,
AuroraESite.
-
Pour chaque ID de magasin de site étendu récupéré, insérez un enregistrement correspondant dans votre table STORECONF en exécutant la requête d'insertion suivante :
Insert into storeconf values(STOREENT_ID, 'wc.store.isRemote','0',0);
Où :
- STOREENT_ID
- ID du magasin que vous avez extrait de la commande SQL précédente.
-
Si vous migrez vers HCL Commerce Version 9.1, vous devez mettre à niveau votre configuration Struts. Voir Migration d'applications Web IBM Websphere Commerce version 7 Feature Pack 6 personnalisées vers Struts 2.
- Mettez à jour votre fichier ListTable_UI.jspf pour travailler avec la fonction de téléchargement des listes préconfigurées.
- Ouvrez le fichier suivant en mode édition.
- /Stores/WebContent/Widgets_701/Common/MyAccountList/ListTable_UI.jspf
- Localisez le code suivant.
<input type="file" id="UpLoadedFile" name="UpLoadedFile" class="button_text"
- Mettre à jour
Update name="UpLoadedFile" vers name="filename".
- Enregistrez et fermez le fichier.
- Supprimez l'EJB de l'en-tête d'aperçu du magasin.
-
Ouvrez le fichier \Stores\WebContent\tools\preview\StorePreviewerHeader.jsp pour l'éditer.
- Recherchez le fragment de code suivant.
pageContext.setAttribute("workspaceId", abWorkspace.getWorkspaceIdInEJBType().toString());
- Remplacez le fragment de code par ce qui suit.
pageContext.setAttribute("workspaceId", abWorkspace.getWorkspaceId().toString());
-
Enregistrez et fermez le fichier.
-
Mettez à jour les pages JSP liées à l'adresse pour afficher correctement l'adresse d'expédition et de facturation sur la page de paiement.
-
Ouvrez les fichiers suivants en mode édition.
- Stores\WebContent\AuroraB2BStorefrontAssetStore\ShoppingArea\CheckoutSection\SingleShipment\ShippingAddressSelect.jsp
- Stores\WebContent\AuroraStorefrontAssetStore\ShoppingArea\CheckoutSection\SingleShipment\ShippingAddressSelect.jsp
-
Localisez le fragment de code suivant.
<c:set var="selectedAddressId" value="${param.addressId}"/>
-
Remplacez-le par le fragment de code suivant.
<c:set var="selectedAddressId" value="${orderShipInfo.usableShippingAddress[0].addressId}"/>
-
Sauvegardez et fermez les fichiers.
-
Ouvrez les fichiers suivants en mode édition.
- Stores\WebContent\AuroraStorefrontAssetStore\Snippets\Member\Address\AddressDisplay.jsp
- Stores\WebContent\AuroraB2BStorefrontAssetStore\Snippets\Member\Address\AddressDisplay.jsp
-
Localisez le fragment de code suivant.
<c:if test="${empty WCParam.addressId}" >
-
Remplacez-le par le fragment de code suivant.
<c:if test="${empty WCParam.addressId || WCParam.addressId ne param.addressId }" >
-
Sauvegardez et fermez les fichiers.
-
Mettez Content_UI.jspf à jour pour afficher correctement l'icône qui représente des pièces jointes à une URL pour du contenu marketing.
-
Ouvrez les fichiers suivants en mode édition.
- \Stores\WebContent\Widgets_701\com.ibm.commerce.store.widgets.ContentRecommendation\Content_UI.jspf
- \Stores\WebContent\Widgets_801\com.ibm.commerce.store.widgets.ContentRecommendation\Content_UI.jspf
-
Localisez le fragment de code suivant.
<c:if test="${not empty fileType}">
-
Sous ce fragment, ajoutez le code suivant :
<c:if test="${fileType eq 'html' || fileType eq 'htm' || mimeType eq 'text/html'}">
<c:set var="attachmentType" value="html"/>
</c:if>
-
Sauvegardez et fermez les fichiers.
-
Mettez à jour les fichiers JSP associés au filtre Prix qui sont utilisés pour générer des URL.
-
Ouvrez le fichier Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.CatalogEntryList/CatalogEntryList_UI.jspf pour l'éditer.
-
Ouvrez le fichier Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.CatalogEntryList/javascript/SearchBasedNavigationDisplay.js pour l'éditer.
- Localisez la ligne de code suivante.
checkPriceInput:function(event)
- Remplacez la ligne par ce qui suit.
checkPriceInput:function(event, currencySymbol)
- Localisez la ligne de code suivante.
this.appendFilterPriceRange();
- Remplacez la ligne par ce qui suit.
this.appendFilterPriceRange(currencySymbol);
- Localisez la ligne de code suivante.
appendFilterPriceRange:function()
- Remplacez la ligne par ce qui suit.
appendFilterPriceRange:function(currencySymbol)
- Localisez la ligne de code suivante.
var label = this.currencySymbol + byId("low_price_input").value + " - " + this.currencySymbol + byId("high_price_input").value;
- Remplacez la ligne par ce qui suit.
var label = currencySymbol + byId("low_price_input").value + " - " + currencySymbol + byId("high_price_input").value;
- Localisez la ligne de code suivante.
restoreHistoryContext:function()
- Remplacez la ligne par ce qui suit.
restoreHistoryContext:function(currencySymbol)
- Localisez la ligne de code suivante.
this.appendFilterPriceRange();
- Remplacez la ligne par ce qui suit.
this.appendFilterPriceRange(currencySymbol);
-
Ouvrez le fichier Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.FacetNavigation/FacetNavigation_HorizontalView_UI.jspf pour l'éditer.
- Localisez la ligne de code suivante.
<input id="low_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_LOWER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event);" class="range_input" type="tel"/>
- Remplacez la ligne par ce qui suit.
<input id="low_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_LOWER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event, '<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>');" class="range_input" type="tel"/>
- Localisez la ligne de code suivante.
<input id="high_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_UPPER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event);" class="range_input" type="tel"/>
- Remplacez la ligne par ce qui suit.
<input id="high_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_UPPER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event, '<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>');" class="range_input" type="tel"/>
- Localisez la ligne de code suivante.
setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext();", 200);
- Remplacez la ligne par ce qui suit.
setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext(\"<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>\");", 200);
-
Ouvrez le fichier Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.FacetNavigation/FacetNavigation_VerticalView_UI.jspf pour l'éditer.
- Localisez la ligne de code suivante.
<input id="low_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_LOWER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event);" class="range_input" type="tel"/>
- Remplacez la ligne par ce qui suit.
<input id="low_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_LOWER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event, '<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>');" class="range_input" type="tel"/>
- Localisez la ligne de code suivante.
<input id="high_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_UPPER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event);" class="range_input" type="tel"/>
- Remplacez la ligne par ce qui suit.
<input id="high_price_input" role="textbox" aria-label="<fmt:message key="LN_SEARCH_FACET_UPPER_BOUND" bundle="${widgetText}"/>" onkeyup="SearchBasedNavigationDisplayJS.checkPriceInput(event, '<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>');" class="range_input" type="tel"/>
- Localisez la ligne de code suivante.
setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext();", 200);
- Remplacez la ligne par ce qui suit.
setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext(\"<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>\");", 200);
-
Sauvegardez et fermez les fichiers.
Résultats
Votre magasin basé sur Aurora a été migré avec succès.