如果在「允許國家/地區」中未選取任何專案,則使用者無法將產品新增到購物車

本文為已知的Adobe Commerce 2.4.4及PHP 8.1問題提供修補程式,其中如果未選取 允許國家/地區,使用者無法新增產品至購物車。

說明 description

環境

Adobe Commerce 2.4.4與PHP 8.1

問題/症狀

如果未選取 允許國家/地區,使用者無法將產品新增到購物車。

要再現的步驟

  1. 登入Commerce管理員。
  2. 前往 存放區 > 組態 > 一般 > 國家選項
  3. 取消選取 允許國家 欄位中的所有選項。
  4. 按一下 儲存設定 以儲存設定。
  5. 前往店面,嘗試將產品新增到購物車。

預期結果:

您可以將產品新增到購物車。

實際結果:

您無法將產品新增至購物車。 您會收到下列主控台錯誤:

Failed to load resource: the server responded with a status of 400 (Bad Request)
customer-data.js:87 Uncaught Error: [ object Object]
    at Object.<anonymous> (customer-data.js:87:23)
    at fire (jquery.js:3500:50)
    at Object.fireWith [ as rejectWith]  (jquery.js:3630:29)
    at done (jquery.js:9798:30)
    at XMLHttpRequest.<anonymous> (jquery.js:10057:37)

原因

多選設定沒有任何選取的專案時,Adobe Commerce設定會擷取null。 在8.1之前的PHP版本中進一步成功處理此設定。但在PHP 8.1中,它無法正常運作,因為錯誤是由於Deprecate將null傳遞給PHP 8.1中內部函式的不可為空的引數所造成。

解決方法 resolution

解決方案

若要解決此問題,請套用下列修補程式:

AC-2655-2-4-4-patch.zip

如何套用修補程式

如需指示,請參閱Commerce on Cloud指南中的套用修補程式

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f