Actualización de estabilidad híbrida para la versión 3.8.0 del PWA Kit

En esta guía se explica cómo realizar y verificar cambios de código en un storefront híbrido para:

  • Actualice un proyecto de kit de Progressive Web App (PWA) de la versión 3.5.0 o posterior a la versión 3.8.0.
  • Actualice de Plugin Shopper Login and API Access Service (Plugin SLAS) versión 7.3.0 o posterior a la versión 7.4.0.

Se recomienda probar los pasos en un entorno que no sea de producción antes de implementar los cambios en producción.

Para mejorar la estabilidad y el rendimiento de los storefronts híbridos, nosotros:

  • Se han eliminado las llamadas desde OCAPI /sessions PWA Kit para eliminar la pérdida de sesión (cambios frecuentes en dwsid). Para obtener más información acerca dwsid de , consulte Descripción de la administración de sesiones entre SFRA y PWA Kit.
  • Se agregó un encabezado a las llamadas de Salesforce Commerce API (SCAPI) para enviar las dwsid llamadas a SCAPI para garantizar que las solicitudes de una sesión de comprador determinada se enruten al mismo servidor de aplicaciones.
  • Se eliminó el proxy de Open Commerce API (OCAPI) de la configuración de PWA Kit, lo que hace que PWA Kit esté totalmente basado en SCAPI.

Si aún no lo has hecho, completa estos pasos.

Abra un caso de soporte que solicite al Soporte al cliente de Salesforce que habilite la anulación de sesión para dwsid. En el caso de soporte:

  • Solicite que se habiliten los alternancias primarios y secundarios.
  • Mencione su ID de realm e ID de inquilino correctos. Si no conoce su ID de realm, pregúntele a su ejecutivo de cuentas o Customer Success Manager.

Si usas PWA Kit versión 3.5.0 o posterior:

  1. Para actualizar a la versión más reciente de Commerce SDK React, ejecute:

    npm install @salesforce/commerce-sdk-react@latest

  2. Para actualizar a la última versión de Retail React App, ejecute este comando:

    npm install @salesforce/retail-react-app@latest

Si está utilizando Plugin SLAS versión 7.3.0 o posterior, complete estos pasos.

  1. En cartridges/plugin_slas/cartridge/controllers/Login.js:

    • Elimine la access_token cookie después de cerrar sesión en el /Login-Logout controlador
    • Agregue config.ACCESS_TOKEN_COOKIE_NAME a la cookiesToRemove matriz en el /Login-Logout controlador.
  2. En cartridges/plugin_slas/cartridge/scripts/helpers/slasAuthHelper.js, actualice la removeCookie función para eliminar los fragmentos de cookies existentes:

    • Cambie la condición de coincidencia exacta (==) a .startsWith.
  3. En cartridges/plugin_slas/cartridge/scripts/hooks/request/onSession.js, actualice la implementación del onSession enlace para el nuevo flujo de comprador invitado:

    • Extraiga el dwsid archivo from x-is-session_id header en una variable.
    • Use la variable en la llamada a getSLASAccessTokenForGuestSessionBridge.
    • Establezca la dwsid cookie en la respuesta para nuevos compradores invitados.

Vea los archivos modificados en esta solicitud de extracción.

  1. Confirme que PWA Kit no está realizando llamadas a OCAPI /sessions.

    • Vaya a su storefront y borre todos los datos del sitio.

      Si usas Chrome DevTools, consulta el artículo Eliminar todos los datos de caché.

    • Actualiza tu storefront o ve a cualquier página que esté basada en PWA Kit e inspecciona la pestaña Red en Chrome DevTools. Confirme que no ve solicitudes realizadas a 'dw/shop//sessions'. Consulta este ejemplo de Chrome DevTools.

Sin sesiones

  1. Confirme que dwsid se envía con todas las solicitudes de SCAPI.

    • Ve a tu storefront. Visite cualquier página basada en SFRA/SG y, a continuación, vaya a una página basada en PWA Kit.
    • Si usas Chrome DevTools, sigue estos pasos:
      • Abra Almacenamiento de cookies y busque dwsid valor en las cookies. Consulte Abrir el panel Cookies.
      • Abra la pestaña Red e inspeccione cualquier solicitud SCAPI (por ejemplo, /baskets). En los encabezados de solicitud, confirme que ve el sfdc_dwsid encabezado con el mismo valor que el dwsid que encontró en el paso anterior. Consulta este ejemplo de Chrome DevTools.

Sin sesiones