PWA Kit 版本 2.x 的混合穩定性升級

本指南介紹如何在 混合網店 中進行和驗證代碼更改,以便:

  • 在版本 2.8.4 或更低版本上更新 Progressive Web App (PWA) Kit 專案,以實現混合穩定性。這可能會提高購物車的性能。
  • 從 Plugin Shopper Login and API Access Service (Plugin SLAS) 版本 7.3.0 或更高版本升級到版本 7.4.0。

建議在非 Production 環境中測試這些步驟,然後再將變更部署到生產 Production 環境。

只有現有客戶才能存取此頁面上的某些連結。造訪 Salesforce Commerce Cloud GitHub 存放庫和存取,以瞭解有關如何存取 Commerce Cloud 存放庫的資訊。

為了提高混合網店的穩定性和性能,我們:

  • 刪除了對 PWA Kit 的 OCAPI /sessions 調用以消除工作階段改動(頻繁更改為 dwsid)。dwsid 有關詳細資訊,請參閱 瞭解 SFRA 和 PWA Kit 之間的會話管理
  • 在 Salesforce Commerce API (SCAPI) 調用中添加了標頭 (sfdc_dwsid) 以發送到 dwsid SCAPI,以確保來自給定購物者會話的請求被路由到同一應用程式伺服器。
  • 從 PWA Kit 配置中刪除了 Open Commerce API (OCAPI) 代理,這使得 PWA Kit 完全基於 SCAPI。

如果尚未執行此作,請完成以下步驟。

打開一個支援案例,請求 Salesforce 客戶支援為 dwsid 啟用會話覆蓋。在支援案例中:

  • 請求啟用父切換和子切換。
  • 提及正確的域ID和租戶ID。如果您不知道自己的領域ID,請諮詢您的客戶經理或 Customer Success Manager。

如果使用的是 PWA Kit 版本 2.8.4 或更早版本,請在專案中完成這些步驟。

  1. 檢查專案中的這些檔與此 拉取請求中更改的檔案之間的差異。

    • template-retail-react-app/app/commerce-api/auth.js
    • template-retail-react-app/app/commerce-api/index.js
    • template-retail-react-app/app/commerce-api/utils.js
  2. 使用拉取請求中的新代碼和更改的代碼更新專案。

如果您使用的是外掛程式 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 中的此示例。

無會話