「国を許可」で何も選択されていない場合、ユーザーが買い物かごに製品を追加できない

この記事では、「国を許可」が選択されていない場合に商品を買い物かごに追加できない、PHP 8.1 を使用した既知のAdobe Commerce 2.4.4 の問題に対するパッチを提供します。

影響を受ける製品とバージョン

Adobe Commerce 2.4.4 と PHP 8.1

問題

「国を許可」が選択されていない場合、ユーザーは買い物かごに製品を追加できません。

再現手順 :

  1. Commerce Admin にログインします。
  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 では、「PHP 8.1 の内部関数の nullable でない引数に null を渡すのは非推奨にする」というエラーが原因で正しく動作しません

解決策

この問題を解決するには、次のパッチを適用します。

AC-2655_2.4.4.patch.zip

パッチの適用方法

手順については、サポートナレッジベースの Adobe Commerceが提供する Composer パッチの適用方法を参照してください。

役に立つリンク

クラウドインフラストラクチャー上のAdobe Commerceにカスタムパッチを適用するについては、開発者向けドキュメントを参照してください。

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a