Migración del proyecto web de la tienda Aurora IBM Websphere Commerce Version 8

Para migrar la tienda IBM Websphere Commerce Version 8 a HCL Commerce Version 9.1, exporte el proyecto Stores desde IBM Websphere Commerce Version 8 y, a continuación, importe el proyecto al entorno de desarrollo HCL Commerce Version 9. A continuación, configure el proyecto de tienda importado para HCL Commerce Version 9.1.

El proceso de migración de tienda implica exportar los elementos siguientes como archivos de archivado y, a continuación, importar los archivos de archivado:
  • Elementos de tienda estáticos personalizados
  • Código Java personalizado
  • Archivos JSP personalizados
Las tiendas que se migran desde IBM Websphere Commerce Version 7 o IBM Websphere Commerce Version 8 a HCL Commerce Version 9.1 se implementan dentro de Transaction server, donde dan servicio al tráfico en tiempo real. Las tiendas que se crean en HCL Commerce Version 9.1 siguen el nuevo modelo de programación y se despliegan en un Store server independiente. Para obtener más información sobre cómo migrar o crear una tienda en HCL Commerce Version 9.1, consulte:

Procedimiento

  1. Exporte el proyecto web dinámico Stores de un espacio de trabajo del entorno de desarrollo de IBM Websphere Commerce Version 8.
    1. Abra el espacio de trabajo de entorno de desarrollo de IBM Websphere Commerce Version 8 y abra la perspectiva J2EE.
    2. En la vista Explorador de empresa, pulse el botón derecho del ratón en el proyecto Stores y, a continuación, pulse Exportar > Exportar....
      Aparecerá la ventana Exportar.
    3. Expanda la carpeta General, a continuación, pulse archivo de archivado > Siguiente.
    4. En el directorio Stores seleccione los subdirectorios siguientes.
      • WebContent
      • src
    5. Defina una vía de acceso donde se exporte el archivo de archivado.
      Por ejemplo, c:\stores.zip.
    6. En Opciones, asegúrese de que se definan las opciones de exportación siguientes.
      • Guardar en formato zip
      • Comprimir el contenido del archivo
      • Crear solo directorio seleccionados
    7. Pulse Finalizar.
      Se crea un archivo Stores.zip y está listo para ser importado al entorno de desarrollo de HCL Commerce Version 9.1.
      Importante: Cree una copia de seguridad de este archivador, ya que necesitará algunos de los archivos de configuración en la migración de Struts 2 más adelante.
    8. Opcional: Si el entorno de desarrollo de IBM Websphere Commerce Version 8 se encuentra en un sistema separado del desarrollo de HCL Commerce Version 9.1, copie el archivo Stores.zip al entorno de desarrollo de HCL Commerce Version 9.1.
  2. Importe el proyecto personalizado.
    1. Abra el espacio de trabajo de entorno de desarrollo de HCL Commerce Version 9 y, a continuación, abra la perspectiva Java EE.
    2. En la vista Explorador de empresa, pulse el botón derecho del ratón en el proyecto Stores y, a continuación, pulse Importar > Importar....
      Aparece la ventana Importar.
    3. Expanda la carpeta General, a continuación, pulse archivo de archivado > Siguiente.
    4. Pulse Examinar y, a continuación, seleccione el archivo Stores.zip que ha exportado del entorno de desarrollo de IBM Websphere Commerce Version 8.
    5. En el archivo comprimido Stores, seleccione los subdirectorios siguientes.
      • WebContent
      • src
    6. Defina el campo En carpeta como directorio Stores local.
    7. Pulse el recuadro de selección Sobrescribir recursos existentes sin aviso.
    8. Pulse Finalizar.
  3. En HCL Commerce Version 9.1, todos los servicios utilizan HTTPS. El proyecto de stores que ha importado en HCL Commerce Version 9.1 puede seguir utilizando valores HTTP. Revise los archivos siguientes y cambie el código value="http: por value="https:.
    Nota: Omita los archivos de la lista que no existan en el entorno.
    • /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
  4. Convierta los valores de número por valores de serie utilizando la función fn:trim () en las etiquetas JSP <c:if test>.

    Las clases base en la biblioteca de códigos JSP difieren entre IBM Websphere Commerce Version 8 y HCL Commerce Version 9.1. Si los archivos JSP de IBM Websphere Commerce Version 8 utilizan la etiqueta <c:if test> para evaluar expresiones, debe actualizar estos archivos JSP en HCL Commerce Version 9.1 para utilizar la función fn:trim (). En algunos archivos JSP, es posible que compare una serie con un número. La lógica de HCL Commerce Version 9.1 subyacente intenta convertir la serie en un número antes de compararlos. Si no hay caracteres no numéricos en la serie, se informa de un error de conversión. La función fn:trim () convierte a la fuerza series en números antes de compararlos con la lógica de HCL Commerce Version 9.1.

    El ejemplo de código siguiente muestra la etiqueta <c:if test> sin la función fn:trim () dentro del archivo /Stores/WebContent/AuroraStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp:
    <c:if test="${childWidget.slot.internalSlotId == slotNumber && !foundCurrentSlot}">
    El ejemplo de código siguiente muestra la etiqueta <c:if test> con la función añadida fn:trim () dentro del archivo /Stores/WebContent/AuroraStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp:
    <c:if test="${childWidget.slot.internalSlotId == fn:trim(slotNumber) && !foundCurrentSlot}">
    Nota: Observe cómo la función fn:trim () se aplica al valor slotNumber.
    1. En el entorno de desarrollo de HCL Commerce Version 9.1, abra los archivos JSP Página de resultados de búsqueda siguientes.
      • /Stores/WebContent/AuroraStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp
      • /Stores/WebContent/AuroraB2BStorefrontAssetStore/Container/SubCategoryPageContainerWithTabs.jsp
    2. Localice la línea de código siguiente en cada archivo.
      • <c:if test="${childWidget.slot.internalSlotId == slotNumber && !foundCurrentSlot}">
    3. Actualice las líneas de código añadiendo la función fn:trim () a los valores slotNumber, tal como se muestra en el ejemplo de código siguiente.
      • <c:if test="${childWidget.slot.internalSlotId == fn:trim(slotNumber) && !foundCurrentSlot}">
    4. Guarde y cierre los archivos.
    5. Abra los archivos JSP Página de detalles del producto.
      • /Stores/WebContent/AuroraStorefrontAssetStore/Container/ProductPageContainer.jsp
      • /Stores/WebContent/AuroraStorefrontAssetStore/Container/ProductPageContainerFullWidth.jsp
      • /Stores/WebContent/AuroraB2BStorefrontAssetStore/Container/ProductPageContainer.jsp
      • /Stores/WebContent/AuroraB2BStorefrontAssetStore/Container/ProductPageContainerFullWidth.jsp
    6. Localice la línea de código siguiente en cada archivo.
      • <c:if test="${childWidget.slot.internalSlotId == slotNumber && !foundCurrentSlot}">
    7. Actualice las líneas de código añadiendo la función fn:trim () a los valores slotNumber, tal como se muestra en el ejemplo de código siguiente.
      • <c:if test="${childWidget.slot.internalSlotId == fn:trim(slotNumber) && !foundCurrentSlot}">
    8. Guarde y cierre los archivos.
    9. Abra el archivo JSP Registrar página.
      • /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
    10. Localice la línea de código siguiente.
      • <c:if test="${language.localeName == preferredLanguage || language.languageId == preferredLanguage }">
    11. Actualice la línea de código añadiendo la función fn:trim () al valor preferredLanguage, tal como se muestra en el ejemplo de código siguiente.
      • <c:if test="${language.localeName == fn:trim(preferredLanguage) || language.languageId == preferredLanguage }">
    12. Guarde y cierre el archivo.
  5. Actualice los archivos JSTLEnvironmentSetupExtForRemoteWidgets.jspf.
    1. Abra los archivos siguientes:
      • \Stores\WebContent\AuroraB2BStorefrontAssetStore\Common\JSTLEnvironmentSetupExtForRemoteWidgets.jspf
      • \Stores\WebContent\AuroraStorefrontAssetStore\Common\JSTLEnvironmentSetupExtForRemoteWidgets.jspf
      • \Stores\WebContent\Widgets_701\Common\JSTLEnvironmentSetupExtForRemoteWidgets.jspf
      • \Stores\WebContent\Widgets_801\Common\JSTLEnvironmentSetupExtForRemoteWidgets.jspf
    2. Elimine el bloque de código siguiente:
      <c:when test="${!empty restNonSSLPort}">
          <c:set var="restURLPort" value="${restNonSSLPort}" scope="request"/>
          <c:set var="restURLScheme" value="http" scope="request"/>
      </c:when>
    3. Guarde y cierre los archivos que ha actualizado.
  6. Elimine la configuración de la tienda remota del archivo wc-component.xml de la fundación.
    1. Abra el archivo siguiente para editarlo.
      • workspace_dir/WC/xml/config/com.ibm.commerce.foundation/wc-component.xml
    2. Localice y elimine el configgrouping denominado RemoteStoreConfiguration.
      Por ejemplo, elimine el bloque de código siguiente:
      <_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>
    3. Guarde y cierre el archivo.
      Aviso: Este cambio deberá realizarse de nuevo después de actualizar el entorno de desarrollo a un FixPack superior, porque dicho procedimiento sobrescribirá el archivo wc-component.xml. El archivo recién cambiado tendrá que implementarse en el entorno de producción actualizado.
  7. Si está migrando a HCL Commerce versión 9.0.1+, tendrá que actualizar la configuración de Struts. Consulte Migración de aplicaciones web personalizadas de IBM Websphere Commerce Versión 7 Feature Pack 6 a Struts 2. Además, si existen personalizaciones en el archivo web.xml customization, debe actualizarlas manualmente para ajustarse al estándar de Struts 2. Consulte Cambios de archivo de configuración de Struts 2.
  8. Este paso solo es necesario si está migrando desde WebSphere Commerce 8.0.4.27 o anterior.
    1. Abra Stores\WebContent\Widgets_701\Common\CatalogEntry\CatalogEntryDisplay_MiniListView_UI.jspf
    2. Busque y suprima las siguientes líneas de código:
      <c:if test="${aStatus.first}">
      <c:set var="firstSwatchName" value="${swatchName}" />			
      </c:if>
    3. Localice la línea de código siguiente:
      <c:forEach var="swatchValue" items="${swatchValues}" varStatus="vStatus">
      <c:set var="index" value="${fn:trim(vStatus.count-1)}" />
    4. Agregue la siguiente línea de código después del código anterior:
      <c:set var="firstSwatchName" value="${swatchName}" />
    5. Abra los siguientes archivos para su edición.
      • \Stores\WebContent\AuroraStorefrontAssetStore\javascript\Common\ShoppingActions.js
      • \Stores\WebContent\AuroraB2BStorefrontAssetStore\javascript\Common\ShoppingActions.js
    6. Localice las siguientes líneas de código:
      for(attribute in entitledItem.Attributes){
      	var currentSwatch = attribute.substring(0, attribute.lastIndexOf("_|_"));
      	if(currentSwatch != doNotDisable && currentSwatch != swatchName){
    7. Sustituya las líneas anteriores por el código siguiente:
      for(attribute in entitledItem.Attributes){
      	var currentSwatch = attribute.substring(0, attribute.lastIndexOf("_|_"));
      	if(currentSwatch == doNotDisable && currentSwatch != swatchName){
    8. Guarde y cierre todos los archivos.
  9. Realice el cambio siguiente para asegurarse de que las categorías aparecen según lo previsto después de iniciar la sesión en el escaparate.
    1. Abra el archivo siguiente para editarlo.
      • WCDE_installdir\workspace\Stores\WebContent/store_name\Common\CommonJSToInclude.jspf
      Donde
      store_name
      El nombre base del directorio en el que se encuentran los elementos web específicos de la tienda, como los archivos JSP y de propiedades. Por ejemplo, AuroraStorefrontAssetStore.
    2. Localice <link rel="apple-touch-icon-precomposed" href="${jspStoreImgDir}images/touch-icon-152px.png" sizes="152x152"/> en el archivo y, a continuación, añada el siguiente script.
      <script type="text/javascript">
      //Redirect to HTTPS request in the browser when detect that using HTTP request,
      //since HTTP request is no longer supported in v9.
      var httpsProtocol = "https:";
      var securedPort = '<c:out value="${configValueMap[\'WebServer/SSLPort\']}"/>';
      if (window.location.protocol != httpsProtocol){
      var href = httpsProtocol + window.location.href.substring(window.location.protocol.length);
      var host = window.location.host;
      var hostname = window.location.hostname;
      var httpsHost = httpsHost = (securedPort != "" && securedPort != null) ? hostname + ":" + securedPort : hostname;
      href = href.replace(host, httpsHost);
      window.location.href = href;
      }
      </script>
    3. Guarde y cierre el archivo.
  10. Actualice la tabla STORECONFcon los ID de tienda de sitios ampliados.
    1. Abra un indicador de mandatos para la base de datos de desarrollo de la versión 9.
    2. Ejecute el mandato SQL siguiente para recuperar los ID de tienda para el tipo específico de tienda:
      select store_id from store where directory in ('store_name');
      Donde
      store_name
      El nombre base de la tienda, por ejemplo, AuroraESite.
    3. Para cada ID de tienda de sitio ampliado recuperado, inserte un registro correspondiente en la tabla STORECONF ejecutando el mandato siguiente:
      Insert into storeconf values(STOREENT_ID, 'wc.store.isRemote','0',0);
      Donde:
      STOREENT_ID
      El ID de la tienda que ha recuperado del mandato SQL anterior.
  11. Elimine EJB del encabezado de vista previa de la tienda.
    1. Abra el archivo \Stores\WebContent\tools\preview\StorePreviewerHeader.jsp para editarlo.
    2. Localice el fragmento de código siguiente.
      pageContext.setAttribute("workspaceId", abWorkspace.getWorkspaceIdInEJBType().toString());
    3. Sustituya el fragmento por lo siguiente.
      pageContext.setAttribute("workspaceId", abWorkspace.getWorkspaceId().toString());
    4. Guarde y cierre el archivo.
  12. Actualice las JSP relacionadas con la dirección para mostrar correctamente la dirección de envío y facturación en la página de pago.
    1. Abra los siguientes archivos para su edición.
      • Stores\WebContent\AuroraB2BStorefrontAssetStore\ShoppingArea\CheckoutSection\SingleShipment\ShippingAddressSelect.jsp
      • Stores\WebContent\AuroraStorefrontAssetStore\ShoppingArea\CheckoutSection\SingleShipment\ShippingAddressSelect.jsp
    2. Localice el fragmento de código siguiente.
      <c:set var="selectedAddressId" value="${param.addressId}"/>
    3. Sustitúyalo por el fragmento de código siguiente:
      <c:set var="selectedAddressId" value="${orderShipInfo.usableShippingAddress[0].addressId}"/>
    4. Guarde y cierre los archivos.
    5. Abra los siguientes archivos para su edición.
      • Stores\WebContent\AuroraStorefrontAssetStore\Snippets\Member\Address\AddressDisplay.jsp
      • Stores\WebContent\AuroraB2BStorefrontAssetStore\Snippets\Member\Address\AddressDisplay.jsp
    6. Localice el fragmento de código siguiente.
      <c:if test="${empty WCParam.addressId}" >
    7. Sustitúyalo por el fragmento de código siguiente:
      <c:if test="${empty WCParam.addressId || WCParam.addressId ne param.addressId }" >
    8. Guarde y cierre los archivos.
  13. Actualice Content_UI.jspf para visualizar correctamente el icono que simboliza la URL adjuntos para el contenido de marketing.
    1. Abra los siguientes archivos para su edición.
      • \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
    2. Localice el fragmento de código siguiente.
      <c:if test="${not empty fileType}">
    3. Debajo de este fragmento, agregue el siguiente código.
      <c:if test="${fileType eq 'html' || fileType eq 'htm' || mimeType eq 'text/html'}">
      	<c:set var="attachmentType" value="html"/>
      </c:if>
      
    4. Guarde y cierre los archivos.
  14. Actualice los archivos JSP relacionados con el filtro de precios que se utilizan para generar URL.
    1. Abra el archivo Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.CatalogEntryList/CatalogEntryList_UI.jspf para editarlo.
      • Localice la línea de código siguiente.
        SearchBasedNavigationDisplayJS.appendFilterPriceRange();
      • Sustituya la línea por la siguiente.
        SearchBasedNavigationDisplayJS.appendFilterPriceRange("<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>");
    2. Abra el archivo Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.CatalogEntryList/javascript/SearchBasedNavigationDisplay.js para editarlo.
      • Localice la línea de código siguiente.
        checkPriceInput:function(event)
      • Sustituya la línea por la siguiente.
        checkPriceInput:function(event, currencySymbol)
      • Localice la línea de código siguiente.
        this.appendFilterPriceRange();
      • Sustituya la línea por la siguiente.
        this.appendFilterPriceRange(currencySymbol);
      • Localice la línea de código siguiente.
        appendFilterPriceRange:function()
      • Sustituya la línea por la siguiente.
        appendFilterPriceRange:function(currencySymbol)
      • Localice la línea de código siguiente.
        var label = this.currencySymbol + byId("low_price_input").value + " - " + this.currencySymbol + byId("high_price_input").value;
      • Sustituya la línea por la siguiente.
        var label = currencySymbol + byId("low_price_input").value + " - " + currencySymbol + byId("high_price_input").value;
      • Localice la línea de código siguiente.
        restoreHistoryContext:function()
      • Sustituya la línea por la siguiente.
        restoreHistoryContext:function(currencySymbol)
      • Localice la línea de código siguiente.
        this.appendFilterPriceRange();
      • Sustituya la línea por la siguiente.
        this.appendFilterPriceRange(currencySymbol);
    3. Abra el archivo Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.FacetNavigation/FacetNavigation_HorizontalView_UI.jspf para editarlo.
      • Localice la línea de código siguiente.
        <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"/>
      • Sustituya la línea por la siguiente.
        <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"/>
      • Localice la línea de código siguiente.
        <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"/>
      • Sustituya la línea por la siguiente.
        <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"/>
      • Localice la línea de código siguiente.
        setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext();", 200);
      • Sustituya la línea por la siguiente.
        setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext(\"<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>\");", 200);
    4. Abra el archivo Stores/WebContent/Widgets_701/com.ibm.commerce.store.widgets.FacetNavigation/FacetNavigation_VerticalView_UI.jspf para editarlo.
      • Localice la línea de código siguiente.
        <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"/>
      • Sustituya la línea por la siguiente.
        <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"/>
      • Localice la línea de código siguiente.
        <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"/>
      • Sustituya la línea por la siguiente.
        <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"/>
      • Localice la línea de código siguiente.
        setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext();", 200);
      • Sustituya la línea por la siguiente.
        setTimeout("SearchBasedNavigationDisplayJS.restoreHistoryContext(\"<c:out value='${env_CurrencySymbolToFormat}' escapeXml='false'/>\");", 200);
    5. Guarde y cierre los archivos.

Resultados

La tienda basada en Aurora se ha migrado correctamente.
HCL Commerce Version 9.1.3.0 or laterNota: En HCL Commerce Versión 9.1.3.0 y posteriores, la característica de vista previa de la tienda es compatible con tiendas locales migradas de Struts 2, solo en entornos de contexto que no son de espacio de trabajo.

Para obtener más información sobre cómo habilitar la característica Vista previa de la tienda en el entorno de tienda local migrado, consulte el paso 4.c de Migración de la búsqueda basada en REST.