PWA Kit 版本 3.8.0 的混合稳定性升级

本指南介绍如何在 混合网店 中进行和验证代码更改,以便:

  • 将 Progressive Web App (PWA) 工具包项目从版本 3.5.0 或更高版本更新到版本 3.8.0。
  • 从 Plugin Shopper Login and API Access Service (Plugin SLAS) 版本 7.3.0 或更高版本升级到版本 7.4.0。

建议在非生产环境中测试这些步骤,然后再将更改部署到生产环境。

只有现有客户才能访问此页面上的某些链接。请访问 Salesforce Commerce Cloud GitHub 存储库和访问权限,了解有关如何访问 Commerce Cloud 存储库的信息。

为了提高混合网店的稳定性和性能,我们:

  • 删除了对 PWA Kit 的 OCAPI /sessions 调用以消除会话改动(频繁更改为 dwsid)。dwsid 有关详细信息,请参阅 了解 SFRA 和 PWA Kit 之间的会话管理
  • 在 Salesforce Commerce API (SCAPI) 调用中添加了标头,以发送到 dwsid SCAPI,以确保来自给定购物者会话的请求被路由到同一应用程序服务器。
  • 从 PWA Kit 配置中删除了 Open Commerce API (OCAPI) 代理,这使得 PWA Kit 完全基于 SCAPI。

如果尚未执行此作,请完成以下步骤。

打开一个支持案例,请求 Salesforce 客户支持为 dwsid 启用会话覆盖。在支持案例中:

  • 请求启用父切换和子切换。
  • 提及正确的域 ID 和租户 ID。如果您不知道自己的领域 ID,请咨询您的客户经理或 Customer Success Manager。

如果使用的是 PWA Kit 版本 3.5.0 或更高版本:

  1. 要升级到最新版本的 Commerce SDK React,请运行:

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

  2. 要升级到最新版本的 Retail React App,请运行以下命令:

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

如果您使用的是插件 SLAS 版本 7.3.0 或更高版本,请完成以下步骤。

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

    • 在控制器中 /Login-Logout 注销后删除 access_token cookie
    • 添加到 config.ACCESS_TOKEN_COOKIE_NAME cookiesToRemove 控制器中的 /Login-Logout 数组。
  2. cartridges/plugin_slas/cartridge/scripts/helpers/slasAuthHelper.js 中,更新 removeCookie 函数以删除任何现有的 cookie 块:

    • 将条件从完全匹配 (==) 更改为 .startsWith
  3. 在 中 cartridges/plugin_slas/cartridge/scripts/hooks/request/onSession.js ,更新 onSession 新访客购物者流的钩子实现:

    • 将 from x-is-session_id header 提取 dwsid 到变量中。
    • 在调用 getSLASAccessTokenForGuestSessionBridge中使用变量。
    • dwsid Cookie 设置为对新访客购物者的响应。

查看此 拉取请求中更改的文件。

  1. 确认 PWA Kit 未拨打 OCAPI /sessions

    • 转到您的网店并清除所有站点数据。

      如果您使用的是 Chrome DevTools,请参阅 删除所有缓存数据

    • 刷新您的网店或转到基于 PWA Kit 的任何页面,然后检查 Chrome DevTools 中的“网络”选项卡。确认您没有看到向“dw/shop//sessions”发出的请求。请参阅 Chrome DevTools 中的此示例。

无会话

  1. 确认 dwsid 与所有 SCAPI 请求一起发送。

    • 转到您的网店。访问任何基于 SFRA/SG 的页面,然后转到基于 PWA Kit 的页面。
    • 如果您使用的是 Chrome DevTools:
      • 打开 Cookie 存储并在 Cookie 中寻找 dwsid 价值。请参阅 打开“Cookie”窗格
      • 打开“网络”选项卡并检查任何 SCAPI 请求(例如, /baskets)。在“请求标头”中,确认您看到的 sfdc_dwsid 标头的值与 dwsid 在上一步中找到的值相同。请参阅 Chrome DevTools 中的此示例。

无会话